{
  "vt100": {
    "class": "Machine",
    "type": "Terminal",
    "name": "VT100",
    "version": 3.00,
    "autoSave": false,
    "bindings": {
      "power": "powerVT100",
      "reset": "resetVT100",
      "clear": "clearVT100",
      "print": "printVT100"
    },
    "@doc": [
      "Configuration properties managed by the Machine device:",
      "- autoSave: preserves machine state across page loads, calling all onLoad()",
      "and onSave() handlers; default is true",
      "- autoStart: automatically powers all CPUs during the initial onPower() if no",
      "initialization errors; default is true",
      "Configuration properties provided for general use; see getMachineConfig():",
      "- ArrayBuffer: if true AND the memory bus dataWidth is 8, then Memory objects",
      "should use ArrayBuffer; default is true",
      "- connection: string of the form '{sourcePort}->{targetMachine}.{targetPort}' to",
      "establish a serial connection"
    ]
  },
  "clock": {
    "class": "Time",
    "cyclesPerSecond": 2764800,
    "bindings": {
      "run": "runVT100",
      "speed": "speedVT100",
      "step": "stepVT100"
    },
    "overrides": ["cyclesPerSecond"]
  },
  "busMemory": {
    "class": "Bus",
    "type": "static",
    "addrWidth": 16,
    "dataWidth": 8,
    "@doc": [
      "You can also specify a 'blockSize'; otherwise, it defaults to 1024 (1K) for machines",
      "with an 'addrWidth' of 16, or 4096 (4K) if 'addrWidth' is greater than 16.  The use of",
      "blocks means that if the debugger wants to watch accesses on a specific memory address,",
      "it will get notified on every access within the block containing that address, requiring",
      "it to filter out any accesses it doesn't care about."
    ]
  },
  "busIO": {
    "class": "Bus",
    "type": "dynamic",
    "addrWidth": 8,
    "dataWidth": 8
  },
  "cpu": {
    "class": "CPUx80",
    "busIO": "busIO",
    "busMemory": "busMemory"
  },
  "ledOnline": {
    "class": "LED",
    "type": "round",
    "color": "red",
    "optional": true,
    "bindings": {
      "container": "ledOnlineVT100"
    }
  },
  "ledLocal": {
    "class": "LED",
    "type": "round",
    "color": "red",
    "optional": true,
    "bindings": {
      "container": "ledLocalVT100"
    }
  },
  "ledLocked": {
    "class": "LED",
    "type": "round",
    "color": "red",
    "optional": true,
    "bindings": {
      "container": "ledLockedVT100"
    }
  },
  "led1": {
    "class": "LED",
    "type": "round",
    "color": "red",
    "optional": true,
    "bindings": {
      "container": "led1VT100"
    }
  },
  "led2": {
    "class": "LED",
    "type": "round",
    "color": "red",
    "optional": true,
    "bindings": {
      "container": "led2VT100"
    }
  },
  "led3": {
    "class": "LED",
    "type": "round",
    "color": "red",
    "optional": true,
    "bindings": {
      "container": "led3VT100"
    }
  },
  "led4": {
    "class": "LED",
    "type": "round",
    "color": "red",
    "optional": true,
    "bindings": {
      "container": "led4VT100"
    }
  },
  "ledCaps": {
    "class": "LED",
    "type": "square",
    "color": "green",
    "optional": true,
    "bindings": {
      "container": "ledCapsVT100"
    }
  },
  "ledDTR": {
    "class": "LED",
    "type": "round",
    "color": "red",
    "optional": true,
    "bindings": {
      "container": "ledDTRVT100"
    }
  },
  "ledRTS": {
    "class": "LED",
    "type": "round",
    "color": "red",
    "optional": true,
    "bindings": {
      "container": "ledRTSVT100"
    }
  },
  "ports": {
    "class": "Ports",
    "bus": "busIO",
    "addr": 0,
    "size": 256
  },
  "ram": {
    "class": "RAM",
    "addr": 8192,
    "size": 3072,
    "bus": "busMemory"
  },
  "rom": {
    "class": "ROM",
    "addr": 0,
    "size": 8192,
    "bus": "busMemory",
    "@doc": [
      "The following ROM dump was generated with 'fileimage --file=/machines/dec/vt100/rom/VT100.bin --format=bytes --decimal --symbols=array'"
    ],
    "values": [
      243,49,78,32,195,59,0,0,205,253,0,251,201,0,0,0,
      205,204,3,251,201,0,0,0,205,204,3,205,253,0,251,201,
      205,207,4,201,0,0,0,0,205,207,4,201,0,0,0,0,
      205,204,3,205,207,4,251,201,195,48,0,30,1,243,62,15,
      211,98,47,211,66,175,87,111,103,60,71,211,130,14,8,7,
      174,44,194,79,0,36,13,194,79,0,183,194,91,0,120,254,
      4,194,73,0,60,211,130,14,170,6,44,219,66,230,2,194,
      116,0,6,64,96,43,54,0,43,124,254,31,194,118,0,35,
      126,183,202,144,0,230,15,124,194,161,0,254,48,218,161,0,
      113,126,169,202,168,0,230,15,124,194,161,0,254,48,210,168,
      0,22,1,254,44,218,165,0,175,35,181,194,128,0,180,184,
      194,128,0,121,7,79,218,116,0,213,205,164,2,205,235,2,
      205,91,23,209,202,203,0,122,246,2,87,62,47,50,201,33,
      211,98,1,255,15,251,62,8,163,62,127,194,224,0,62,255,
      211,130,11,120,177,194,214,0,211,130,58,104,32,183,250,245,
      0,122,246,4,87,213,205,162,3,209,195,117,8,245,219,130,
      229,197,71,214,124,250,26,1,103,36,62,16,15,7,37,194,
      13,1,33,104,32,182,119,195,45,1,33,104,32,62,7,166,
      254,4,242,45,1,52,33,106,32,205,222,19,112,193,225,241,
      201,230,127,79,58,123,32,183,194,255,1,121,254,1,202,195,
      1,58,167,33,230,32,194,117,1,58,120,33,183,194,95,1,
      121,254,65,250,91,1,62,27,205,24,15,121,195,13,8,62,
      27,205,24,15,121,254,65,242,91,1,62,63,205,24,15,121,
      198,64,195,13,8,58,120,33,183,194,158,1,121,254,65,250,
      91,1,254,80,250,158,1,62,27,205,24,15,62,79,205,24,
      15,195,91,1,62,27,205,24,15,62,91,195,142,1,58,188,
      33,183,202,181,1,121,254,65,242,135,1,62,27,205,24,15,
      62,79,195,108,1,121,254,65,250,171,1,254,80,250,148,1,
      195,135,1,33,21,8,229,58,165,33,183,192,205,83,8,1,
      14,2,33,104,32,126,230,16,194,0,9,126,230,32,202,228,
      1,1,210,0,62,37,246,8,176,211,1,58,127,32,129,79,
      197,205,147,20,193,58,127,32,185,194,240,1,195,148,3,33,
      18,8,229,175,50,48,33,50,184,33,33,163,33,121,214,65,
      71,126,202,34,2,5,202,38,2,5,202,21,24,5,202,30,
      24,201,61,248,119,201,60,254,32,200,119,201,58,167,33,47,
      230,16,33,165,33,182,194,65,8,58,191,33,1,17,2,160,
      194,69,2,14,19,121,214,17,50,196,33,205,126,15,195,18,
      8,243,49,78,32,33,0,32,229,126,31,218,101,2,219,66,
      230,2,202,105,2,60,50,200,33,205,162,3,58,80,32,61,
      50,83,33,225,126,54,127,183,202,152,2,242,133,2,33,203,
      33,54,10,230,127,50,189,33,198,48,42,246,32,119,254,52,
      202,152,2,62,32,50,165,33,205,242,11,1,17,0,205,126,
      15,195,174,3,33,78,32,17,178,15,6,0,205,131,16,47,
      50,4,33,33,4,32,34,82,32,33,208,34,34,246,32,201,
      205,21,10,33,0,32,17,217,2,6,18,205,139,3,33,0,
      48,17,0,16,6,255,195,131,16,127,112,3,127,242,208,127,
      112,6,127,112,12,127,112,15,127,112,3,33,18,2,34,45,
      33,62,53,50,44,33,62,1,50,91,32,50,118,33,33,255,
      7,34,73,33,62,2,50,115,32,62,247,50,250,32,219,66,
      230,4,62,1,194,26,3,50,121,32,62,255,50,14,33,50,
      186,33,38,128,108,34,192,32,201,62,64,211,1,58,88,33,
      211,2,58,164,33,211,1,205,148,3,62,16,50,201,33,211,
      98,201,58,162,33,183,202,75,3,62,16,71,211,194,58,124,
      32,211,194,254,32,33,112,9,194,94,3,33,112,3,34,1,
      32,58,168,33,230,16,200,120,211,194,201,58,166,33,230,32,
      194,117,3,62,1,246,10,211,162,58,91,33,246,12,211,162,
      201,58,162,33,183,202,99,11,195,119,11,26,119,35,19,5,
      194,139,3,201,58,165,33,183,62,1,194,159,3,62,5,195,
      123,31,205,129,3,205,219,29,205,107,3,195,66,3,205,136,
      20,205,135,5,33,119,33,126,183,54,0,196,32,26,58,165,
      33,183,202,174,3,175,50,68,33,195,174,3,245,197,229,219,
      0,230,127,202,58,4,79,58,165,33,183,194,58,4,219,1,
      230,56,202,237,3,14,26,62,39,246,16,211,1,121,254,127,
      202,55,4,58,167,33,230,16,121,202,9,4,33,194,33,254,
      17,202,62,4,254,19,202,68,4,33,192,32,78,68,2,121,
      60,230,191,119,71,58,193,32,144,194,39,4,113,120,60,230,
      191,111,54,26,195,49,4,242,44,4,198,64,254,32,194,55,
      4,1,19,1,205,126,15,205,71,14,225,193,241,201,62,254,
      166,195,71,4,62,1,182,119,195,55,4,48,41,49,33,50,
      64,51,35,52,36,53,37,54,94,55,38,56,42,57,40,45,
      95,61,43,96,126,91,123,93,125,59,58,47,63,39,34,44,
      60,46,62,92,124,32,32,127,127,127,0,112,111,121,116,119,
      113,195,0,0,0,93,91,105,117,114,101,49,196,0,194,129,
      96,45,57,55,52,51,27,193,210,208,8,61,48,56,54,53,
      50,9,183,211,209,176,10,92,108,107,103,102,97,184,141,178,
      177,0,39,59,106,104,100,115,174,172,181,180,13,46,44,110,
      98,120,130,185,179,182,173,0,47,109,32,118,99,122,255,245,
      229,213,205,78,16,197,62,9,211,162,251,58,101,32,183,194,
      11,5,33,81,32,182,202,62,5,62,1,50,101,32,182,54,
      0,62,1,50,91,32,58,86,33,242,5,5,62,153,50,91,
      32,58,85,33,61,205,47,18,50,122,32,1,91,32,10,33,
      90,32,134,39,230,15,119,87,230,3,211,162,122,31,167,31,
      246,4,211,162,122,183,194,62,5,50,101,32,10,183,58,86,
      33,250,56,5,58,85,33,61,205,206,17,50,122,32,33,120,
      32,126,183,202,79,5,53,230,4,15,15,15,50,70,33,33,
      44,33,126,61,194,105,5,54,53,62,8,211,162,33,203,33,
      126,183,202,106,5,211,162,238,1,119,62,64,50,72,33,33,
      127,32,52,58,163,33,211,66,58,88,33,211,2,58,201,33,
      211,98,193,209,225,241,201,58,165,33,33,123,32,182,192,205,
      117,6,200,71,58,123,32,183,120,194,169,5,58,121,32,7,
      120,218,169,5,254,32,218,178,8,42,64,33,233,254,27,194,
      204,5,33,184,5,195,24,10,254,50,194,197,5,62,1,50,
      121,32,195,21,10,71,62,27,205,210,5,120,205,210,5,195,
      98,12,79,197,205,136,20,193,219,66,230,4,194,211,5,121,
      211,226,201,205,70,12,245,254,127,202,115,6,229,213,197,79,
      33,252,32,86,35,122,133,111,122,214,2,242,255,5,122,50,
      252,32,86,58,250,32,178,71,122,7,121,210,22,6,214,95,
      254,32,210,22,6,79,122,230,64,121,202,36,6,254,35,194,
      36,6,14,30,58,251,32,177,79,58,66,33,183,202,65,6,
      33,248,32,58,83,33,190,194,65,6,54,0,197,205,85,9,
      193,42,246,32,113,124,198,16,103,112,120,50,245,32,33,244,
      32,113,33,248,32,58,83,33,190,194,104,6,121,50,244,32,
      58,168,33,230,64,195,109,6,52,205,54,22,175,50,66,33,
      193,209,225,241,201,58,196,33,183,194,133,6,33,192,32,126,
      35,150,194,135,6,175,201,110,38,32,86,33,193,32,126,60,
      230,191,246,128,119,43,150,242,156,6,198,64,254,48,194,167,
      6,1,17,1,205,126,15,122,183,201,58,104,32,95,230,128,
      200,33,65,8,229,123,230,7,254,4,250,194,6,175,50,103,
      32,201,87,14,0,6,4,33,110,32,126,183,202,232,6,229,
      197,6,3,33,106,32,190,202,223,6,35,5,242,214,6,193,
      225,202,231,6,54,0,13,12,35,5,194,202,6,123,230,8,
      192,178,194,251,6,62,225,50,114,32,201,33,71,7,229,58,
      114,32,60,202,9,7,50,114,32,58,166,33,230,64,200,123,
      230,16,192,58,80,33,33,95,8,6,5,190,200,35,5,194,
      27,7,33,115,32,53,192,54,2,58,114,32,254,255,192,121,
      254,1,192,6,4,33,110,32,126,183,194,67,7,35,5,194,
      56,7,201,225,195,118,7,121,254,4,240,1,106,32,33,110,
      32,126,183,202,91,7,10,190,202,102,7,35,125,254,114,194,
      81,7,10,195,108,7,3,21,194,78,7,201,71,58,103,32,
      184,120,50,103,32,192,225,50,80,33,254,123,202,26,26,254,
      106,202,44,2,67,95,58,68,33,183,194,65,8,123,230,240,
      15,15,87,15,15,130,87,123,146,33,118,4,95,22,0,25,
      78,121,183,250,49,1,254,32,218,255,7,120,230,112,202,255,
      7,121,254,123,210,194,7,254,97,218,194,7,230,223,79,195,
      215,7,120,230,48,202,215,7,33,75,4,126,185,202,213,7,
      35,35,195,203,7,35,78,120,230,16,202,255,7,121,254,65,
      218,232,7,254,91,218,252,7,254,63,202,252,7,254,32,202,
      252,7,254,123,218,65,8,254,127,210,65,8,230,159,79,177,
      245,58,167,33,230,128,202,12,8,50,84,33,241,246,128,205,
      24,15,205,83,8,58,80,33,22,4,33,110,32,190,202,65,
      8,35,21,194,29,8,22,4,33,110,32,126,183,202,56,8,
      35,21,194,43,8,195,65,8,58,80,33,119,62,225,50,114,
      32,175,33,104,32,86,119,35,114,35,22,4,119,35,21,194,
      76,8,201,58,167,33,230,64,200,62,128,50,71,33,201,123,
      42,106,58,100,58,48,33,214,2,192,87,58,49,33,95,62,
      1,163,194,61,0,122,183,196,167,8,213,205,190,23,209,62,
      2,163,196,17,31,62,8,220,167,8,62,4,163,196,98,31,
      62,16,220,167,8,122,183,194,160,8,62,8,163,194,111,8,
      122,50,0,32,195,81,2,178,87,62,8,163,200,62,128,178,
      87,201,254,27,202,158,9,254,16,218,212,8,95,214,24,230,
      253,192,123,254,26,202,203,8,254,24,192,205,21,10,62,2,
      195,230,5,201,214,5,248,33,229,8,135,95,22,0,25,94,
      35,86,235,175,233,0,9,151,9,56,9,65,9,249,13,85,
      9,85,9,85,9,75,9,251,8,252,8,60,50,252,32,201,
      58,165,33,183,192,42,123,33,124,189,200,33,114,33,62,16,
      182,119,201,33,114,33,126,230,239,119,33,123,33,70,35,14,
      20,17,92,33,126,184,202,48,9,18,19,35,13,194,36,9,
      27,26,246,128,18,195,243,14,33,120,32,126,198,8,216,119,
      201,33,248,32,126,183,200,53,195,54,22,175,50,248,32,195,
      54,22,205,75,9,58,168,33,230,32,196,75,9,33,249,32,
      86,58,86,33,186,202,115,9,205,191,17,120,186,200,20,114,
      195,54,22,58,166,33,230,128,202,152,9,14,1,205,142,16,
      62,255,50,195,33,52,205,230,15,58,195,33,183,194,137,9,
      50,244,32,61,50,245,32,201,205,26,16,195,18,16,175,50,
      125,32,50,184,33,33,171,9,195,24,10,254,48,210,189,9,
      33,125,32,79,126,183,202,187,9,14,255,113,201,50,126,32,
      33,21,10,229,58,125,32,183,194,220,9,58,167,33,230,32,
      33,80,10,194,217,9,33,28,10,195,247,9,71,58,167,33,
      230,32,120,200,254,40,17,253,32,202,50,12,254,41,202,49,
      12,254,35,33,123,10,192,17,185,33,175,18,58,126,32,79,
      175,134,200,35,185,202,13,10,35,35,195,0,10,18,126,35,
      102,111,175,233,225,33,230,5,34,64,33,201,65,155,10,66,
      155,10,67,155,10,68,155,10,70,10,12,71,15,12,72,150,
      10,73,163,11,74,155,10,75,155,10,89,17,11,90,198,12,
      61,223,11,62,229,11,49,87,12,60,235,11,93,96,13,0,
      99,0,0,69,82,9,77,163,11,49,87,12,91,142,10,72,
      223,13,68,85,9,55,104,12,56,113,12,61,223,11,62,229,
      11,90,198,12,78,70,12,79,70,12,0,51,168,18,52,172,
      18,53,74,19,54,164,18,55,96,13,56,167,13,0,33,194,
      22,34,64,33,225,201,62,72,50,126,32,33,0,0,34,48,
      33,225,33,21,10,229,58,125,32,183,192,33,217,10,205,247,
      9,58,185,33,183,192,33,48,33,58,75,33,183,95,194,194,
      10,28,126,229,213,33,245,10,71,205,247,9,209,225,58,185,
      33,183,200,35,29,194,194,10,201,68,30,24,66,7,24,67,
      21,24,72,83,24,65,254,23,114,166,21,102,83,24,120,223,
      18,121,100,8,0,99,193,12,113,22,12,110,3,13,74,65,
      21,75,252,20,108,237,19,109,127,12,104,242,19,103,207,13,
      0,33,25,11,34,64,33,225,201,71,254,32,218,178,8,254,
      27,33,81,33,194,46,11,33,171,9,34,64,33,201,126,183,
      194,66,11,54,1,120,214,32,50,82,33,33,25,11,34,64,
      33,201,54,0,120,214,32,254,80,210,79,11,50,248,32,205,
      191,17,58,82,33,4,184,210,93,11,50,249,32,205,21,10,
      195,54,22,175,50,162,33,205,173,16,14,80,205,249,16,205,
      76,17,14,80,195,137,11,62,1,50,162,33,205,173,16,14,
      132,205,249,16,205,76,17,14,132,175,50,85,33,205,191,17,
      120,50,86,33,121,50,80,32,205,66,3,205,72,24,62,1,
      195,170,15,33,249,32,58,85,33,71,126,184,202,184,11,183,
      200,33,249,32,53,195,54,22,58,166,33,230,128,202,217,11,
      14,1,205,142,16,62,255,50,195,33,53,205,235,15,58,195,
      33,183,194,206,11,50,244,32,201,205,45,16,195,18,16,33,
      120,33,54,1,201,33,120,33,54,0,201,33,167,33,126,246,
      32,119,58,168,33,230,128,38,8,202,254,11,38,72,108,34,
      253,32,34,255,32,175,50,252,32,201,38,136,195,17,12,38,
      8,108,34,253,32,201,33,69,33,120,183,194,35,12,126,230,
      240,119,201,214,5,240,71,175,55,23,4,194,41,12,182,119,
      201,19,58,126,32,71,33,74,12,35,35,126,183,200,184,194,
      57,12,35,126,18,201,33,252,32,52,52,201,65,72,66,8,
      48,136,49,0,50,128,0,33,121,32,126,183,202,20,10,54,
      129,225,33,173,5,195,24,10,33,2,33,17,248,32,195,119,
      12,33,248,32,17,2,33,6,11,205,139,3,195,54,22,33,
      138,12,120,183,202,151,12,195,255,9,1,162,12,4,167,12,
      5,179,12,7,187,12,0,50,251,32,33,250,32,126,246,247,
      119,201,62,251,195,181,12,58,200,33,183,194,187,12,62,253,
      195,181,12,62,254,33,250,32,166,119,201,62,128,50,251,32,
      201,58,48,33,183,192,33,114,33,126,246,4,119,201,62,251,
      205,191,13,58,167,33,230,32,194,227,12,54,218,43,54,47,
      195,243,14,54,63,35,62,49,205,185,13,219,66,71,47,230,
      6,79,120,230,8,202,249,12,12,121,246,48,119,35,54,227,
      195,243,14,58,184,33,183,192,120,33,114,33,254,6,202,50,
      13,254,5,192,126,246,8,119,201,62,247,205,191,13,6,3,
      58,189,33,183,120,194,41,13,175,246,48,119,35,54,238,195,
      243,14,126,246,1,119,201,62,254,205,191,13,58,249,32,71,
      58,1,33,183,202,74,13,58,85,33,79,120,145,60,205,122,
      13,205,187,13,58,248,32,60,205,122,13,54,210,195,243,14,
      219,66,230,4,192,14,129,205,142,16,62,255,211,226,0,205,
      136,20,219,66,230,4,194,111,13,201,95,22,48,14,100,205,
      153,13,202,136,13,119,35,21,14,10,205,153,13,202,147,13,
      21,119,35,123,246,48,119,35,201,123,6,48,4,145,242,156,
      13,129,5,95,120,186,201,62,69,50,199,33,205,129,3,62,
      69,50,244,32,175,50,199,33,201,119,35,54,59,35,201,33,
      114,33,166,119,33,92,33,54,27,35,54,91,35,201,66,120,
      183,194,216,13,205,229,13,201,254,3,192,205,236,13,201,205,
      35,14,182,119,201,205,35,14,47,166,119,201,33,145,33,175,
      119,35,125,254,162,194,239,13,201,205,35,14,12,183,31,218,
      11,14,87,166,122,202,252,13,195,21,14,35,125,254,162,62,
      128,194,2,14,13,58,83,33,185,218,29,14,121,50,248,32,
      195,54,22,58,248,32,79,87,33,145,33,15,15,15,230,31,
      133,111,122,230,7,87,62,128,21,248,15,195,56,14,58,165,
      33,33,123,32,182,71,192,219,66,230,1,200,33,193,33,126,
      183,54,0,43,200,126,211,0,201,243,205,62,14,251,120,183,
      194,109,14,219,66,230,1,200,58,194,33,183,192,33,115,33,
      126,183,202,121,14,42,116,33,233,58,114,33,183,200,30,0,
      31,218,137,14,28,28,195,128,14,22,0,33,148,14,25,126,
      35,102,111,233,55,13,240,18,206,12,25,13,19,9,160,14,
      33,92,32,70,84,93,19,14,8,26,119,35,19,13,194,169,
      14,33,67,33,53,126,79,194,193,14,33,114,33,126,230,223,
      119,58,165,33,183,194,207,14,121,254,5,210,210,14,175,50,
      68,33,120,230,128,23,63,31,50,115,33,33,160,14,34,116,
      33,120,230,127,71,58,165,33,33,123,32,182,120,194,147,5,
      211,0,201,33,1,15,34,116,33,175,50,113,33,60,50,115,
      33,33,113,33,126,52,33,92,33,133,111,70,120,183,242,225,
      14,175,50,115,33,195,225,14,229,213,87,58,167,33,230,16,
      202,43,15,122,214,145,230,253,202,97,15,33,114,33,126,246,
      32,119,33,67,33,126,52,33,92,32,95,133,111,114,62,141,
      186,194,78,15,58,168,33,230,32,22,138,194,50,15,58,165,
      33,183,194,91,15,62,5,187,62,0,31,50,68,33,209,225,
      201,122,230,127,87,33,193,33,126,183,194,117,15,43,126,186,
      194,117,15,35,114,74,6,2,205,126,15,195,94,15,58,167,
      33,230,16,200,58,165,33,183,192,121,33,191,33,254,19,120,
      202,158,15,47,166,119,245,230,2,50,196,33,241,192,182,119,
      121,33,192,33,190,200,119,35,119,201,33,127,32,134,190,200,
      229,245,58,123,32,183,204,136,20,241,225,195,174,15,42,78,
      32,124,246,240,103,34,78,32,58,80,32,71,124,230,15,246,
      32,103,198,16,87,93,62,255,54,0,18,19,35,5,194,216,
      15,60,50,195,33,201,6,255,195,237,15,6,1,33,85,33,
      86,35,94,120,183,122,242,250,15,123,205,230,19,123,146,79,
      58,43,33,86,119,120,133,111,13,122,242,3,16,230,127,50,
      43,33,62,255,50,14,33,195,54,22,205,145,17,58,86,33,
      205,47,18,205,230,15,58,85,33,61,195,62,16,205,145,17,
      58,85,33,61,205,47,18,205,235,15,58,86,33,61,205,206,
      17,251,50,122,32,33,86,33,126,43,150,254,23,192,33,122,
      32,126,54,0,183,200,42,86,32,235,42,88,32,114,35,115,
      42,121,33,235,42,117,32,114,35,115,33,86,32,34,88,32,
      34,117,32,201,205,227,19,230,128,50,87,33,205,141,19,34,
      78,33,201,112,35,27,122,179,194,131,16,201,14,0,33,81,
      32,243,58,101,32,182,251,202,167,16,121,31,197,220,136,20,
      205,147,20,193,195,142,16,121,23,208,195,145,17,33,112,6,
      34,4,32,175,50,81,32,50,101,32,50,90,32,211,162,62,
      4,211,162,205,106,16,251,62,1,205,170,15,33,208,34,124,
      198,16,87,93,1,47,13,58,199,33,119,35,62,255,18,19,
      11,120,177,194,215,16,58,199,33,50,244,32,175,50,249,32,
      50,248,32,62,255,50,245,32,201,175,50,81,32,58,101,32,
      183,194,253,16,33,208,34,6,0,9,205,191,17,12,205,54,
      17,229,6,1,205,54,17,225,54,127,35,34,84,32,54,112,
      35,54,6,121,205,222,19,54,127,13,62,3,50,2,32,33,
      242,208,34,4,32,201,54,127,35,84,93,19,19,122,246,240,
      119,35,115,121,205,222,19,5,194,54,17,201,33,194,32,12,
      12,12,17,208,34,6,0,62,25,115,35,114,35,235,9,235,
      61,194,89,17,50,85,33,205,191,17,120,50,86,33,60,50,
      43,33,42,242,32,62,23,184,202,126,17,42,222,32,124,246,
      240,103,34,78,32,33,19,33,175,119,44,60,5,242,137,17,
      201,243,58,122,32,183,202,160,17,251,205,136,20,195,145,17,
      58,101,32,183,194,176,17,58,81,32,183,251,200,195,153,17,
      58,91,32,33,90,32,134,39,230,15,202,153,17,251,201,229,
      6,23,58,162,33,33,200,33,166,225,200,6,13,201,183,242,
      232,17,33,4,32,229,126,35,110,246,240,103,34,78,32,205,
      144,18,225,66,75,195,10,18,205,127,18,205,144,18,229,213,
      235,205,144,18,66,75,209,122,246,240,103,107,34,78,32,225,
      124,246,159,60,194,17,18,205,153,18,243,34,117,32,195,40,
      18,205,157,18,58,80,32,15,87,205,222,19,35,243,34,117,
      32,122,205,222,19,112,35,113,96,105,34,121,33,251,201,245,
      205,190,15,241,183,33,4,32,250,72,18,205,127,18,124,246,
      159,60,194,82,18,205,153,18,243,34,88,32,70,35,78,195,
      113,18,205,157,18,58,80,32,15,71,205,222,19,35,243,34,
      88,32,120,70,35,78,205,222,19,235,42,78,32,235,115,43,
      114,42,78,32,34,86,32,205,153,18,112,35,113,251,201,60,
      71,33,4,32,126,35,110,103,5,200,205,153,18,195,132,18,
      229,205,153,18,86,35,94,225,201,205,219,19,35,124,230,15,
      246,32,103,201,205,176,18,80,205,176,18,48,205,176,18,16,
      205,145,17,33,19,33,58,249,32,133,111,126,246,128,119,205,
      141,19,205,195,19,225,126,205,149,19,58,83,33,33,248,32,
      183,31,190,210,18,16,33,244,32,34,246,32,195,18,16,58,
      48,33,254,2,208,50,118,33,33,114,33,126,246,2,119,201,
      62,253,205,191,13,58,118,33,246,50,205,185,13,58,169,33,
      245,230,192,246,24,135,60,242,16,19,31,7,246,4,230,127,
      205,185,13,6,49,241,230,32,194,28,19,4,120,205,185,13,
      58,171,33,15,205,122,13,205,187,13,58,172,33,15,205,122,
      13,205,187,13,62,49,205,185,13,58,170,33,230,240,15,15,
      15,15,205,122,13,54,248,195,243,14,33,87,33,126,183,200,
      205,145,17,33,19,33,58,249,32,133,111,126,230,127,119,205,
      141,19,58,80,32,15,71,205,222,19,175,119,35,5,194,107,
      19,62,240,50,14,33,205,149,19,175,50,87,33,195,54,22,
      58,249,32,205,230,19,33,194,32,135,133,111,201,205,128,19,
      126,35,102,111,201,230,112,71,58,249,32,61,33,4,32,250,
      189,19,205,230,19,87,230,127,205,134,19,205,144,19,58,80,
      32,15,95,35,20,21,22,0,25,252,189,19,25,126,230,143,
      176,119,201,58,80,32,15,84,93,205,222,19,235,205,219,19,
      6,3,126,18,19,35,5,194,210,19,201,58,80,32,133,111,
      208,36,201,58,249,32,33,19,33,133,111,126,201,14,0,195,
      244,19,14,255,58,184,33,183,33,38,20,202,4,20,254,63,
      192,33,10,20,120,65,205,255,9,201,1,42,20,2,47,20,
      3,87,20,4,71,20,5,78,20,6,63,20,7,102,20,8,
      95,20,9,109,20,0,20,56,20,0,33,188,33,112,201,205,
      118,20,167,33,32,195,242,11,205,118,20,168,33,32,201,33,
      1,33,112,205,72,24,201,205,118,20,166,33,128,201,205,118,
      20,166,33,32,195,107,3,33,162,33,112,205,129,3,201,205,
      118,20,166,33,64,201,205,118,20,168,33,64,201,205,118,20,
      168,33,16,195,66,3,225,94,35,86,35,126,35,235,79,47,
      166,119,120,161,182,119,235,233,205,147,20,230,16,204,170,6,
      195,89,14,219,66,230,128,200,33,68,33,126,183,202,162,20,
      62,16,33,165,33,182,33,69,33,182,35,182,35,182,54,0,
      35,182,54,0,211,130,33,116,32,52,58,119,32,183,192,58,
      101,32,33,81,32,182,192,42,45,33,43,124,181,202,212,20,
      34,45,33,201,58,186,33,238,255,50,186,33,33,18,2,194,
      229,20,33,9,1,34,45,33,42,246,32,70,58,89,33,168,
      119,17,0,16,25,58,90,33,174,119,201,116,120,183,202,21,
      21,61,202,10,21,61,192,205,21,21,58,248,32,71,4,42,
      78,33,195,41,21,58,248,32,71,58,87,33,183,58,80,32,
      202,36,21,15,144,71,42,246,32,124,198,16,87,93,62,255,
      18,54,0,35,19,5,194,48,21,50,245,32,175,50,244,32,
      201,120,183,202,106,21,61,202,85,21,61,192,205,85,21,205,
      106,21,195,74,19,33,249,32,126,245,71,175,119,14,255,205,
      134,21,241,119,205,116,16,195,10,21,58,248,32,183,204,74,
      19,205,21,21,33,249,32,126,245,79,62,23,145,71,205,134,
      21,241,119,195,116,16,5,248,12,113,197,229,205,227,19,230,
      127,119,62,112,205,149,19,205,116,16,58,80,32,71,205,41,
      21,225,193,195,134,21,14,129,205,142,16,205,191,17,58,48,
      33,183,202,182,21,61,87,58,49,33,183,194,192,21,120,60,
      61,95,120,187,216,122,187,208,33,85,33,114,35,115,75,66,
      121,144,60,95,33,4,32,120,183,202,232,21,80,126,230,127,
      119,205,43,22,21,194,221,21,126,246,128,119,205,43,22,29,
      194,232,21,62,23,145,202,5,22,87,126,230,127,119,205,43,
      22,21,194,250,21,120,50,85,33,121,50,86,33,33,19,33,
      14,24,126,183,242,35,22,229,205,134,19,126,35,102,111,205,
      195,19,225,35,13,194,18,22,195,72,24,35,110,230,15,246,
      32,103,35,195,219,19,33,13,0,34,45,33,175,50,186,33,
      42,246,32,58,244,32,71,119,124,198,16,103,58,245,32,119,
      58,80,32,61,95,58,123,32,183,194,123,22,58,249,32,33,
      14,33,190,202,127,22,119,205,116,16,175,50,84,33,33,87,
      33,126,183,202,123,22,123,61,183,31,95,123,50,83,33,33,
      83,33,17,248,32,26,190,218,140,22,126,18,58,187,33,198,
      8,150,194,161,22,35,182,202,161,22,205,56,9,175,50,84,
      33,58,248,32,50,187,33,42,78,33,205,222,19,34,246,32,
      126,50,244,32,71,124,198,16,103,126,50,245,32,42,246,32,
      112,201,71,33,241,22,34,64,33,175,50,47,33,50,75,33,
      50,125,32,33,48,33,14,15,175,119,35,13,194,217,22,33,
      184,33,54,0,120,254,64,210,242,22,254,60,218,242,22,119,
      201,71,120,254,58,210,23,23,214,48,250,23,23,79,33,47,
      33,126,254,26,210,19,23,7,71,7,7,128,218,19,23,129,
      210,21,23,62,255,119,201,17,48,33,245,33,75,33,78,6,
      0,235,9,1,47,33,10,119,175,2,26,254,15,202,50,23,
      60,18,241,71,254,59,200,230,192,120,202,67,23,50,126,32,
      195,162,10,33,125,32,134,210,76,23,62,255,119,33,51,23,
      34,64,33,201,22,0,6,1,195,98,23,205,192,2,6,10,
      22,1,197,213,205,190,23,209,243,33,123,33,30,51,14,1,
      175,50,174,33,121,50,173,33,213,229,122,183,126,50,175,33,
      204,174,24,205,163,24,225,209,58,175,33,29,202,158,23,119,
      58,173,33,7,174,79,35,58,174,33,60,195,113,23,190,193,
      14,0,202,172,23,5,194,98,23,205,208,23,121,183,245,14,
      64,62,99,205,43,25,33,242,208,34,4,32,241,201,17,236,
      23,6,7,33,204,33,205,139,3,33,113,204,34,4,32,201,
      33,123,33,6,39,54,128,35,5,194,213,23,17,243,23,6,
      11,205,139,3,14,1,62,48,50,120,32,201,87,97,105,116,
      127,112,6,0,8,110,32,208,80,0,32,0,224,224,58,85,
      33,1,255,0,195,15,24,205,191,17,58,86,33,14,1,33,
      249,32,195,37,24,58,83,33,1,1,255,195,34,24,175,1,
      255,0,33,248,32,87,58,184,33,183,194,21,10,58,48,33,
      183,194,53,24,60,95,126,186,202,68,24,184,202,68,24,129,
      29,194,55,24,119,195,54,22,33,0,0,34,48,33,62,255,
      50,14,33,58,1,33,79,33,48,33,126,183,202,96,24,61,
      71,121,183,202,105,24,58,85,33,128,71,121,183,58,86,33,
      194,121,24,72,205,191,17,120,65,184,218,126,24,120,50,249,
      32,35,126,183,202,136,24,61,71,121,183,194,149,24,58,80,
      32,61,195,152,24,58,83,33,184,218,157,24,120,50,248,32,
      195,54,22,14,64,205,40,25,205,193,24,195,188,24,14,64,
      205,40,25,205,168,25,205,119,25,205,214,25,62,48,211,98,
      201,219,66,161,202,193,24,219,66,161,194,199,24,62,45,211,
      98,219,66,161,202,209,24,219,66,161,194,215,24,62,47,211,
      98,33,211,33,6,14,219,66,161,202,230,24,219,66,161,194,
      236,24,62,37,211,98,219,66,161,202,246,24,219,66,119,35,
      219,66,161,194,0,25,5,194,246,24,62,47,211,98,17,211,
      33,6,14,33,0,0,41,26,230,32,7,7,7,181,111,19,
      5,194,22,25,34,175,33,201,58,174,33,6,255,4,214,10,
      242,45,25,198,10,33,211,33,30,35,22,20,115,35,21,194,
      60,25,54,47,33,211,33,95,22,0,25,54,34,33,211,33,
      62,10,128,95,25,54,34,219,66,161,194,87,25,33,211,33,
      6,21,219,66,161,202,98,25,5,248,219,66,161,194,106,25,
      126,211,98,35,195,98,25,42,175,33,41,41,17,211,33,6,
      14,62,32,41,23,18,19,5,194,129,25,62,47,18,33,211,
      33,6,15,219,66,161,202,147,25,219,66,161,194,153,25,126,
      211,98,35,5,194,147,25,201,219,66,161,202,168,25,219,66,
      161,194,174,25,62,43,211,98,205,192,25,62,47,211,98,201,
      33,59,1,219,66,161,202,195,25,219,66,161,194,201,25,43,
      124,181,194,195,25,201,219,66,161,202,214,25,219,66,161,194,
      220,25,62,41,211,98,205,192,25,62,47,211,98,201,254,32,
      14,67,202,255,1,33,176,27,229,254,13,202,75,9,254,9,
      202,249,13,254,58,210,96,27,214,48,248,135,33,162,26,205,
      222,19,205,144,19,120,17,172,33,233,50,119,33,195,18,8,
      58,123,32,238,255,50,123,32,202,97,26,14,128,205,142,16,
      42,64,33,34,17,33,33,238,25,34,64,33,33,0,0,34,
      67,33,34,114,33,42,4,32,34,197,33,42,248,32,34,13,
      33,205,186,27,34,78,33,175,50,248,32,205,249,27,195,54,
      22,42,17,33,34,64,33,205,186,27,17,0,16,25,58,80,
      32,54,255,35,61,194,113,26,33,13,33,126,50,248,32,62,
      255,35,119,205,54,22,42,197,33,34,4,32,175,50,196,33,
      50,194,33,219,66,230,8,202,161,26,58,118,33,183,204,232,
      18,201,207,26,9,27,208,26,242,26,254,26,10,27,34,27,
      64,27,65,27,182,26,205,82,27,175,50,14,33,50,13,33,
      58,162,33,183,245,204,119,11,241,196,99,11,195,69,26,199,
      205,82,27,58,248,32,183,200,205,35,14,174,119,205,35,14,
      166,6,84,194,232,26,6,0,120,50,244,32,58,248,32,195,
      234,30,205,82,27,205,236,13,205,205,28,195,230,26,33,165,
      33,126,238,32,119,175,50,68,33,201,205,75,9,33,90,34,
      126,238,3,119,50,101,34,230,1,50,190,33,202,211,28,195,
      53,28,205,89,27,33,166,33,58,248,32,214,2,254,40,208,
      0,0,0,0,87,205,43,14,174,119,205,219,29,195,211,28,
      27,235,205,89,27,50,248,32,126,198,16,119,205,219,29,195,
      211,28,58,190,33,183,192,225,201,58,190,33,183,200,225,201,
      58,105,32,230,32,200,120,254,83,194,114,27,205,84,23,195,
      129,27,254,82,194,134,27,205,91,23,251,205,162,3,205,43,
      26,251,205,249,27,201,254,65,192,205,89,27,205,75,9,62,
      65,205,230,5,62,61,205,230,5,62,32,205,230,5,33,159,
      30,34,64,33,225,201,152,254,97,248,254,123,240,230,223,201,
      205,148,3,33,238,25,34,64,33,201,42,78,32,195,195,27,
      33,204,33,124,230,15,246,32,103,201,205,186,27,205,200,15,
      229,54,127,35,235,205,192,27,124,230,15,246,112,18,19,125,
      18,225,58,80,32,95,6,84,123,205,39,14,166,202,244,27,
      123,205,234,30,29,194,232,27,201,1,173,28,33,83,34,62,
      250,205,113,28,14,1,6,16,205,138,28,1,173,28,62,250,
      205,113,28,14,1,6,80,205,138,28,1,182,28,62,253,205,
      113,28,14,19,205,136,28,54,127,35,235,205,186,27,124,246,
      112,18,19,125,18,205,192,27,58,80,32,71,62,49,119,35,
      79,230,15,121,194,73,28,238,128,60,39,210,80,28,246,128,
      230,143,246,48,5,194,62,28,205,159,28,205,202,27,62,1,
      50,190,33,33,83,34,124,101,230,15,246,48,111,34,4,32,
      201,229,17,0,16,25,209,245,10,183,202,134,28,18,241,119,
      35,19,3,195,119,28,241,201,6,112,235,54,127,35,84,93,
      19,19,122,230,15,176,119,35,115,35,13,194,139,28,201,54,
      127,84,93,35,122,230,15,246,112,119,35,115,201,83,69,84,
      45,85,80,32,65,0,84,79,32,69,88,73,84,32,80,82,
      69,83,83,32,34,83,69,84,45,85,80,34,0,205,186,27,
      195,200,15,205,205,28,205,192,27,229,62,78,205,203,15,225,
      229,35,35,30,0,6,4,219,66,230,8,245,202,240,28,4,
      14,4,205,204,29,246,176,119,28,35,13,194,242,28,14,4,
      54,0,28,35,13,194,0,29,5,194,240,28,14,4,241,245,
      194,23,29,121,198,8,79,54,0,35,13,194,23,29,17,75,
      29,58,171,33,205,97,29,17,86,29,58,172,33,205,97,29,
      205,159,28,17,8,0,14,4,241,202,61,29,12,62,49,225,
      119,60,25,13,194,64,29,175,195,96,28,32,32,32,84,32,
      83,80,69,69,68,32,32,32,32,82,32,83,80,69,69,68,
      32,79,6,11,205,139,3,121,15,15,79,15,15,129,79,6,
      0,17,124,29,235,9,235,6,5,195,139,3,32,32,32,53,
      48,32,32,32,55,53,32,32,49,49,48,32,32,49,51,52,
      32,32,49,53,48,32,32,50,48,48,32,32,51,48,48,32,
      32,54,48,48,32,49,50,48,48,32,49,56,48,48,32,50,
      48,48,48,32,50,52,48,48,32,51,54,48,48,32,52,56,
      48,48,32,57,54,48,48,49,57,50,48,48,229,33,166,33,
      83,123,205,43,14,166,225,200,62,1,201,58,172,33,230,240,
      15,15,15,15,71,58,171,33,230,240,176,50,88,33,230,240,
      254,32,58,164,33,202,255,29,230,63,246,128,195,3,30,230,
      63,246,192,50,164,33,219,66,230,8,202,25,30,33,167,33,
      126,246,16,119,62,110,195,49,30,58,169,33,230,192,71,58,
      169,33,230,32,15,246,32,176,15,15,71,58,164,33,230,195,
      176,50,164,33,58,169,33,230,16,202,62,30,62,16,198,32,
      50,124,32,58,166,33,230,16,202,77,30,62,1,205,110,30,
      205,41,3,58,248,32,254,21,204,66,3,254,29,204,66,3,
      254,12,204,242,11,254,18,204,242,11,205,54,22,201,183,202,
      121,30,50,91,33,175,195,148,30,219,66,230,2,194,144,30,
      50,89,33,62,1,50,91,33,62,2,50,90,33,195,107,3,
      175,50,91,33,50,90,33,62,128,50,89,33,195,107,3,205,
      221,30,33,123,33,119,35,34,180,33,71,17,20,0,205,131,
      16,33,184,30,34,64,33,201,205,221,30,42,180,33,71,58,
      123,33,79,184,202,211,30,125,254,144,202,211,30,112,35,34,
      180,33,201,113,205,205,28,205,75,9,195,176,27,245,254,32,
      210,229,30,62,1,205,227,5,241,201,229,33,78,32,79,58,
      162,33,183,194,252,30,121,254,80,242,15,31,126,35,102,111,
      124,230,15,246,32,103,121,133,111,210,13,31,36,112,120,225,
      201,213,175,50,165,33,6,0,120,50,88,33,211,2,14,1,
      121,211,0,33,0,192,197,229,205,117,6,225,193,194,72,31,
      35,124,181,194,38,31,62,5,211,1,58,88,33,211,2,62,
      37,50,165,33,175,55,209,201,230,127,185,194,54,31,121,7,
      254,128,79,194,32,31,120,198,17,71,254,16,194,24,31,175,
      209,201,213,22,7,122,205,123,31,205,161,31,186,194,54,31,
      21,194,101,31,62,5,211,1,175,209,201,71,230,2,15,15,
      15,15,246,16,50,201,33,211,98,14,5,120,230,1,202,147,
      31,14,37,120,230,4,202,157,31,121,246,2,79,121,211,1,
      201,219,34,71,14,1,120,230,144,202,179,31,254,144,62,255,
      192,14,0,120,230,64,202,189,31,121,246,2,79,219,1,15,
      15,47,230,32,168,230,32,62,255,192,120,230,32,194,212,31,
      121,246,4,79,183,121,201,0,0,0,0,0,0,0,0,0,
      0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
      0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    ],
    "symbols":[
      "00B3","@","reset",
      "00D2","@","beep",
      "00FD","@","kbdint",
      "0040",";","0x0f to NVR latch",
      "0042",";","invert A (0xf0)",
      "0043",";","0xf0 to brightness",
      "0045",";","zero A",
      "0046",";","zero D, L, H",
      "0049",";","next 2K ROM",
      "004A",";","store the current ROM # in B",
      "004B",";","show current ROM on LEDs",
      "004D",";","Checksum over 8 256B blocks",
      "004F",";","   Rotate A left",
      "0050",";","   A <- A ^ memory",
      "0051",";","   next memory address",
      "0052",";","   ... repeat until end of block",
      "0055",";","next block",
      "0056",";","decrement block count",
      "0057",";","... repeat until end of chip",
      "005A",";","Check the value of the accumulator",
      "005B",";","If it's not zero, hang forever",
      "005E",";","Put the ROM # back in the accumulator",
      "005F",";","If it's not 4...",
      "0061",";","repeat for the next ROM",
      "0065",";","write 5 to LEDs (turns on L2 and L4)",
      "0067",";","Test pattern: 0xaa",
      "0069",";","0x2c is the top of RAM on the basic board",
      "006D",";","flags buffer &= 0x02 : is AVO installed?",
      "006F",";","if bit 2 is not set, AVO is installed",
      "0072",";","0x40 is the top of RAM on the AVO",
      "0074",";","load HL with top of RAM",
      "0075",";","dec HL",
      "0076",";","M <- 0",
      "0078",";","dec HL",
      "0079",";","a <- h",
      "007A",";","compare to 1f (top of ROM)",
      "007C",";","continue to zero if not at ROM",
      "0080",";","read a byte of memory",
      "0082",";","if it's zero, skip ahead",
      "0088",";","err",
      "008D",";","err",
      "0090",";","run test pattern through ram",
      "0093",";","jump to 00a8 if ok",
      "0099",";","err",
      "009E",";","ok",
      "00A5",";","Hang if non-AVO memory",
      "00B3",";","Repeat mem test with pattern 0x55",
      "00BA",";","zero scratch and screen mem",
      "00BD",";","Set a number of scratch values to fixed values",
      "00C0",";",".... more memory initialization",
      "00FE",";","Read from keyboard port",
      "0102",";","copy b <- a",
      "0103",";","subtract 0x7c from a",
      "0105",";","jump to 011a if a is a normal key",
      "0108",";","otherwise h <- a",
      "0109",";","h++",
      "010A",";","a <- 0x10",
      "0112",";","load keys flag addresss",
      "0115",";","or in control bit",
      "0116",";","store again",
      "0117",";","jump to end to interrupt",
      "011A",";","load keys flag address",
      "011F",";","load key counter",
      "0120",";","if overflow.. (>3 keys)",
      "0122",";","discard keypress and end interrupt",
      "0125",";","otherwise increment key counter",
      "0126",";","load key address buffer?",
      "0129",";","add key counter to address buffer",
      "012C",";","save key to address buffer",
      "02A4",";","HL <- 0x204e (top of stack)",
      "02A7",";","DE <- 0x0fb2",
      "02AA",";","B  <- 0",
      "02AC",";","memset(0x204e,0,0xfb2)",
      "02AF",";","invert A",
      "02B0",";","store A in 0x2104",
      "02B3",";","HL <- 0x2004",
      "02B6",";","*(0x2052) = 0x2004",
      "02B9",";","HL <- 0x22d0",
      "02BC",";","*(20f6) = 0x22d0",
      "02C0",";","0x2140 = 0xe605",
      "02C3",";","HL = 0x2000",
      "02C6",";","DE = 0x02d9",
      "02C9",";","B = 18",
      "02CB",";","copy 18 bytes from 0x02d9 to 0x2000",
      "02CE",";","HL = 0x3000",
      "02D1",";","DE = 0x1000",
      "02D4",";","B = 0xFF",
      "02D6",";","Set all of attribute RAM to 0xFF and return",
      "02EB",";","HL = 0x0212",
      "02EE",";","Store 0x1202 at 0x212d",
      "02F1",";","A = 0x35",
      "02F3",";","0x212c = 0x35",
      "02F6",";","A = 1",
      "02F8",";","0x205b = 1",
      "02FB",";","0x2176 = 1",
      "02FE",";","HL = 0x07ff",
      "0301",";","store 0xff07 at 0x2149",
      "0304",";","A = 2",
      "0306",";","0x2073 = 2",
      "0309",";","A = 0xf7",
      "030B",";","0x20fa = 0xf7",
      "030E",";","read flags buffer",
      "0310",";","And it with 0x04 (check graphics flag)",
      "0312",";","A=1",
      "0314",";","if no graphics skip",
      "0317",";","else store 1 in 0x2079",
      "031A",";","A = 0xff",
      "031C",";","0x210e = 0xff",
      "031F",";","0x21ba = 0xff",
      "0322",";","H = 0x80",
      "0324",";","L = 0x80",
      "0325",";","Store 0x8080 at 0x20c0",
      "038B",";","Load memory at DE into accumulator",
      "038C",";","Store it at HL",
      "038D",";","HL++",
      "038E",";","DE++",
      "038F",";","B--",
      "0390",";","until B is zero",
      "03CF",";","Read from PUSART data",
      "03DE",";","Read from PUSART ctrl",
      "08D4",";","subtract 5 from A and return if negative",
      "08D7",";","load jump table at 8e5",
      "08DA",";","double a",
      "08DE",";","hl = X08e5 + 2A",
      "08DF",";","load DE from (HL) little-endian",
      "08E3",";","zero A",
      "08E4",";","jump to address",
      "08E7",";","immediate return",
      "08ED",";","MYSTERY ADDRESS: this isn't even in AVO!!!",
      "0A15",";","HL = 0x05e6",
      "0A18",";","0x2140 = 0xe605",
      "1083",";","M <- B",
      "1084",";","HL++",
      "1085",";","DE--",
      "1087",";","A = D | E",
      "1088",";","repeat if A != 0",
      "1493",";","Read flags buffer",
      "1495",";","check if transmit buffer is empty",
      "1497",";","if zero, return",
      "1498",";","HL = 0x2144",
      "149B",";","Load from 2144",
      "149C",";","Check if zero",
      "14A0",";","If not, A = 10 (else A is zero)",
      "14A5",";","or bits from 0x21a5",
      "14A9",";","or bits from 0x2145",
      "14AB",";","... and 0x2146",
      "14AD",";","... and 0x2147",
      "14AE",";","zero 0x2147",
      "14B1",";","... and 0x2148",
      "14B2",";","zero 0x2148",
      "14B4",";","Write to keyboard buffer",
      "14B9",";","Increment what's at 0x2074",
      "14BA",";","load what's at 0x2077",
      "14BD",";","return if it's not zero",
      "14BF",";","A =  0x2065",
      "14C5",";","return if [0x2065] | [0x2051] != 0",
      "175B",";","Initialize start of screen RAM and wipe attribute RAM to 0xff",
      "175E",";","B = 0x0a",
      "1760",";","D = 1",
      "1762",";","push B, D",
      "1764",";","Display wait message",
      "1767",";","pop D",
      "1768",";","disable interrupts(???)",
      "1769",";","HL = 0x217b",
      "176C",";","E = 0x33",
      "176E",";","C = 1",
      "1770",";","A = 0",
      "1771",";","0x21ae = A",
      "1774",";","A = C",
      "1775",";","0x21ad = A",
      "1778",";","push D,H",
      "177A",";","A=D",
      "177B",";","or A",
      "177C",";","load A from HL",
      "177D",";","store it in 0x21af",
      "1780",";","if A is 0 call X18ae",
      "1783",";","call X18a3",
      "1786",";","pop H,D",
      "17BE",";","DE = 0x17ec",
      "17C1",";","B = 7",
      "17C3",";","HL = 0x21cc",
      "17C6",";","Initialize 0x21cc to Wait message",
      "17C9",";","HL = 0xcc71",
      "17CC",";","retarget screen ram to display wait message",
      "17DC",";","DE = 0x17f3",
      "17DF",";","B = 11",
      "17E1",";","store",
      "18CD",";","Write READ command to NVR latch",
      "18DD",";","Write 0x2fh (standby) to nvr latch",
      "18E1",";","HL=X21d3",
      "18E4",";","B= 14 -- we're reading 14 bits",
      "18EF",";","wait for NVR clock L",
      "18F2",";","shft bit out of nvr",
      "18F9",";","wait for NVR clock H",
      "18FC",";","read bit and store it in memory",
      "1903",";","wait for NVR clock L",
      "1907",";","read next bit",
      "190A",";","send standby",
      "190E",";","DE=0x21d3",
      "1911",";","B = 14",
      "1913",";","HL = 0",
      "1917",";","load next char",
      "1918",";","and with NVR data bit",
      "191A",";","rotate NVR bit to high bit",
      "1924",";","Store the finished data in 21af and 21ae",
      "1928",";","Load accumulator from 0x21ae -- (0x42)",
      "192B",";","B = 0xff",
      "192D",";","increment B",
      "192E",";","subtract 0x0a from accumulator",
      "1930",";","repeat while accumulator is positive",
      "1933",";","add 0x0a to accumulator",
      "1935",";","HL = 0x21d3",
      "1938",";","E = 0x23",
      "193A",";","D = 0x14",
      "193D",";","HL++",
      "193E",";","D--",
      "193F",";","repeat until D is zero",
      "1942",";","Store 0x2f in 21e7",
      "1944",";","HL = 0x21d3",
      "1947",";","copy A to E",
      "1948",";","clear D",
      "194A",";","add DE to HL -- calculate address of bit A",
      "194B",";","Store 0x22 in M",
      "194D",";","HL = 0x21d3",
      "1950",";","A = 0x0a",
      "1952",";","A = 0x0a + B",
      "1964",";","Flags Buffer & C",
      "1969",";","Return if B is negative"
    ]
  },
  "input": {
    "class": "Input",
    "releaseDelay": 50
  },
  "chips": {
    "class": "VT100Chips"
  },
  "keyboard": {
    "class": "VT100Keyboard",
    "leds": ["ledLocal", "ledLocked", "led1", "led2", "led3", "led4"],
    "@doc": [
      "We used to use an Array of direct bindings, but since we want to support multiple machines on the same page, we can no longer do that."
    ],
    "bindings": {
      "keySetup": "keySetupVT100",
      "keyLineFeed": "keyLineFeedVT100",
      "keyTab": "keyTabVT100",
      "keyEsc": "keyEscVT100",
      "keyBreak": "keyBreakVT100",
      "keyShiftLock": "keyShiftLockVT100",
      "keyCtrlLock": "keyCtrlLockVT100",
      "keyCtrlC": "keyCtrlCVT100",
      "keyCapsLock": "keyCapsLockVT100"
    }
  },
  "serialPort": {
    "class": "VT100Serial"
  },
  "sdf": {
    "class": "SocketIO",
    "url": "wss://connect.sdf.org:3000/socket.io/?EIO=4&transport=websocket",
    "cols": 80,
    "rows": 24
  },
  "video": {
    "class": "VT100Video",
    "bus": "busMemory",
    "monitorWidth": 1600,
    "monitorHeight": 960,
    "monitorColor": "black",
    "bufferAddr": 8192,
    "bufferRAM": true,
    "bufferWidth": 80,
    "bufferHeight": 24,
    "cellWidth": 10,
    "cellHeight": 10,
    "interruptRate": 60,
    "bindings": {
      "monitor": "monitorVT100",
      "overlay": "overlayVT100",
      "surface": "surfaceVT100",
      "fullScreen": "zoomVT100"
    },
    "diagnostics": true,
    "touchType": true,
    "avo": false,
    "overrides": ["avo"],
    "@doc": [
      "Set 'avo' to true to install the Advanced Video Option (AVO); it can also be set as a machine property,",
      "or overridden with a URL parameter (eg, '?avo=true').",
      "The following ROM dump was generated with 'fileimage --file=/machines/dec/vt100/rom/23-018E2.bin --format=bytes --decimal'"
    ],
    "fontROM": [
      0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
      16,56,124,254,124,56,16,0,0,0,0,0,0,0,0,0,
      146,68,146,68,146,68,146,0,0,0,0,0,0,0,0,0,
      136,136,248,136,136,62,8,8,8,0,0,0,0,0,0,0,
      240,128,224,128,158,16,28,16,16,0,0,0,0,0,0,0,
      120,128,128,120,60,34,60,34,34,0,0,0,0,0,0,0,
      128,128,128,248,62,32,60,32,32,0,0,0,0,0,0,0,
      56,68,68,56,0,0,0,0,0,0,0,0,0,0,0,0,
      0,16,16,254,16,16,254,0,0,0,0,0,0,0,0,0,
      136,200,168,152,136,32,32,32,62,0,0,0,0,0,0,0,
      136,136,80,32,62,8,8,8,8,0,0,0,0,0,0,0,
      16,16,16,240,0,0,0,0,0,0,0,0,0,0,0,16,
      0,0,0,240,16,16,16,16,16,0,0,0,0,0,0,0,
      0,0,0,31,16,16,16,16,16,0,0,0,0,0,0,0,
      16,16,16,31,0,0,0,0,0,0,0,0,0,0,0,16,
      16,16,16,255,16,16,16,16,16,0,0,0,0,0,0,16,
      0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,
      0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
      0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,
      0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,
      0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,
      16,16,16,31,16,16,16,16,16,0,0,0,0,0,0,16,
      16,16,16,240,16,16,16,16,16,0,0,0,0,0,0,16,
      16,16,16,255,0,0,0,0,0,0,0,0,0,0,0,16,
      0,0,0,255,16,16,16,16,16,0,0,0,0,0,0,0,
      16,16,16,16,16,16,16,16,16,0,0,0,0,0,0,16,
      2,8,32,128,32,8,2,254,0,0,0,0,0,0,0,0,
      128,32,8,2,8,32,128,254,0,0,0,0,0,0,0,0,
      0,0,254,36,36,36,68,0,0,0,0,0,0,0,0,0,
      2,4,254,16,254,64,128,0,0,0,0,0,0,0,0,0,
      28,34,32,248,32,120,166,64,0,0,0,0,0,0,0,0,
      0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,
      0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
      16,16,16,16,16,0,16,0,0,0,0,0,0,0,0,0,
      36,36,36,0,0,0,0,0,0,0,0,0,0,0,0,0,
      72,72,252,72,252,72,72,0,0,0,0,0,0,0,0,0,
      16,124,144,124,18,124,16,0,0,0,0,0,0,0,0,0,
      194,196,8,16,32,70,134,0,0,0,0,0,0,0,0,0,
      112,136,136,112,138,132,122,0,0,0,0,0,0,0,0,0,
      24,16,32,0,0,0,0,0,0,0,0,0,0,0,0,0,
      8,16,32,32,32,16,8,0,0,0,0,0,0,0,0,0,
      32,16,8,8,8,16,32,0,0,0,0,0,0,0,0,0,
      0,68,40,254,40,68,0,0,0,0,0,0,0,0,0,0,
      0,16,16,254,16,16,0,0,0,0,0,0,0,0,0,0,
      0,0,0,0,0,48,32,64,0,0,0,0,0,0,0,0,
      0,0,0,254,0,0,0,0,0,0,0,0,0,0,0,0,
      0,0,0,0,0,48,48,0,0,0,0,0,0,0,0,0,
      2,4,8,16,32,64,128,0,0,0,0,0,0,0,0,0,
      56,68,130,130,130,68,56,0,0,0,0,0,0,0,0,0,
      16,48,80,16,16,16,124,0,0,0,0,0,0,0,0,0,
      120,132,2,28,96,128,254,0,0,0,0,0,0,0,0,0,
      254,4,8,28,2,130,124,0,0,0,0,0,0,0,0,0,
      8,24,40,72,254,8,8,0,0,0,0,0,0,0,0,0,
      254,128,188,194,2,130,124,0,0,0,0,0,0,0,0,0,
      60,66,128,188,194,66,60,0,0,0,0,0,0,0,0,0,
      254,2,4,8,16,32,64,0,0,0,0,0,0,0,0,0,
      124,130,130,124,130,130,124,0,0,0,0,0,0,0,0,0,
      120,132,134,122,2,132,120,0,0,0,0,0,0,0,0,0,
      0,48,48,0,0,48,48,0,0,0,0,0,0,0,0,0,
      0,48,48,0,0,48,32,64,0,0,0,0,0,0,0,0,
      2,8,32,128,32,8,2,0,0,0,0,0,0,0,0,0,
      0,0,254,0,254,0,0,0,0,0,0,0,0,0,0,0,
      128,32,8,2,8,32,128,0,0,0,0,0,0,0,0,0,
      124,130,12,16,16,0,16,0,0,0,0,0,0,0,0,0,
      124,130,138,146,156,128,124,0,0,0,0,0,0,0,0,0,
      16,40,68,130,254,130,130,0,0,0,0,0,0,0,0,0,
      252,66,66,124,66,66,252,0,0,0,0,0,0,0,0,0,
      60,66,128,128,128,66,60,0,0,0,0,0,0,0,0,0,
      248,68,66,66,66,68,248,0,0,0,0,0,0,0,0,0,
      254,128,128,248,128,128,254,0,0,0,0,0,0,0,0,0,
      254,128,128,248,128,128,128,0,0,0,0,0,0,0,0,0,
      60,66,128,128,142,66,60,0,0,0,0,0,0,0,0,0,
      130,130,130,254,130,130,130,0,0,0,0,0,0,0,0,0,
      124,16,16,16,16,16,124,0,0,0,0,0,0,0,0,0,
      14,4,4,4,4,132,120,0,0,0,0,0,0,0,0,0,
      130,140,176,192,176,140,130,0,0,0,0,0,0,0,0,0,
      128,128,128,128,128,128,254,0,0,0,0,0,0,0,0,0,
      130,198,170,146,130,130,130,0,0,0,0,0,0,0,0,0,
      130,194,162,146,138,134,130,0,0,0,0,0,0,0,0,0,
      124,130,130,130,130,130,124,0,0,0,0,0,0,0,0,0,
      252,130,130,252,128,128,128,0,0,0,0,0,0,0,0,0,
      124,130,130,130,138,132,122,0,0,0,0,0,0,0,0,0,
      252,130,130,252,136,132,130,0,0,0,0,0,0,0,0,0,
      124,130,128,124,2,130,124,0,0,0,0,0,0,0,0,0,
      254,16,16,16,16,16,16,0,0,0,0,0,0,0,0,0,
      130,130,130,130,130,130,124,0,0,0,0,0,0,0,0,0,
      130,130,68,68,40,40,16,0,0,0,0,0,0,0,0,0,
      130,130,130,146,146,170,68,0,0,0,0,0,0,0,0,0,
      130,68,40,16,40,68,130,0,0,0,0,0,0,0,0,0,
      130,68,40,16,16,16,16,0,0,0,0,0,0,0,0,0,
      254,4,8,16,32,64,254,0,0,0,0,0,0,0,0,0,
      60,32,32,32,32,32,60,0,0,0,0,0,0,0,0,0,
      128,64,32,16,8,4,2,0,0,0,0,0,0,0,0,0,
      120,8,8,8,8,8,120,0,0,0,0,0,0,0,0,0,
      16,40,68,130,0,0,0,0,0,0,0,0,0,0,0,0,
      0,0,0,0,0,0,254,0,0,0,0,0,0,0,0,0,
      48,16,8,0,0,0,0,0,0,0,0,0,0,0,0,0,
      0,0,124,2,126,130,126,0,0,0,0,0,0,0,0,0,
      128,128,188,194,130,194,188,0,0,0,0,0,0,0,0,0,
      0,0,60,66,128,64,62,0,0,0,0,0,0,0,0,0,
      2,2,122,134,130,134,122,0,0,0,0,0,0,0,0,0,
      0,0,124,130,254,128,124,0,0,0,0,0,0,0,0,0,
      28,34,32,248,32,32,32,0,0,0,0,0,0,0,0,0,
      0,2,122,132,132,124,4,132,120,0,0,0,0,0,0,0,
      128,128,188,194,130,130,130,0,0,0,0,0,0,0,0,0,
      16,0,48,16,16,16,124,0,0,0,0,0,0,0,0,0,
      4,0,4,4,4,4,132,132,120,0,0,0,0,0,0,0,
      128,128,136,144,224,136,130,0,0,0,0,0,0,0,0,0,
      48,16,16,16,16,16,56,0,0,0,0,0,0,0,0,0,
      0,0,196,170,146,146,130,0,0,0,0,0,0,0,0,0,
      0,0,188,194,130,130,130,0,0,0,0,0,0,0,0,0,
      0,0,124,130,130,130,124,0,0,0,0,0,0,0,0,0,
      0,0,188,194,194,188,128,128,128,0,0,0,0,0,0,0,
      0,0,122,134,134,122,2,2,2,0,0,0,0,0,0,0,
      0,0,156,98,64,64,64,0,0,0,0,0,0,0,0,0,
      0,0,124,128,124,2,252,0,0,0,0,0,0,0,0,0,
      32,32,248,32,32,36,24,0,0,0,0,0,0,0,0,0,
      0,0,132,132,132,132,122,0,0,0,0,0,0,0,0,0,
      0,0,130,130,68,40,16,0,0,0,0,0,0,0,0,0,
      0,0,130,130,146,170,68,0,0,0,0,0,0,0,0,0,
      0,0,132,72,48,72,132,0,0,0,0,0,0,0,0,0,
      0,0,132,132,140,116,4,132,120,0,0,0,0,0,0,0,
      0,0,254,4,24,32,254,0,0,0,0,0,0,0,0,0,
      14,16,16,96,16,16,14,0,0,0,0,0,0,0,0,0,
      16,16,16,0,0,16,16,16,0,0,0,0,0,0,0,0,
      224,16,16,12,16,16,224,0,0,0,0,0,0,0,0,0,
      98,146,140,0,0,0,0,0,0,0,0,0,0,0,0,0,
      0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    ]
  },
  "debugger": {
    "class": "Dbgx80",
    "@doc": [
      "It's best to initialize the Debugger last, so that it can find any device it wants -- at the very least, the CPU."
    ]
  }
}
