Advertisement
Guest User

runEmulator.js

a guest
Feb 21st, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. let computer_grenade_graphic = [
  2.     0x60, 0x10, 0x61, 0x04, 0xA2, 0xA2, 0xD0, 0x1B, 0x70, 0x08, 0xA2, 0xB8, 0xD0, 0x13, 0x70, 0x08, 0xD0, 0x13,
  3.     0x70, 0x08, 0xA2, 0xAD, 0xD0, 0x1B, 0x60, 0x10, 0x71, 0x0B, 0xA2, 0xBB, 0xD0, 0x1F, 0x70, 0x08, 0x71, 0x07,
  4.     0xA2, 0xD9, 0xD0, 0x18, 0x70, 0x08, 0xD0, 0x18, 0x70, 0x08, 0x71, 0xF9, 0xA2, 0xCA, 0xD0, 0x1F, 0x6A, 0x18,
  5.     0x6B, 0x20, 0x6C, 0x07, 0x69, 0x00, 0x68, 0x0F, 0x22, 0x54, 0x22, 0x54, 0x79, 0x01, 0x89, 0x82, 0x22, 0x54,
  6.     0x6F, 0x04, 0xFF, 0x15, 0xFF, 0x07, 0x3F, 0x00, 0x12, 0x4C, 0x12, 0x40, 0xA2, 0x62, 0xF9, 0x1E, 0xDA, 0xCF,
  7.     0xA2, 0x82, 0xF9, 0x1E, 0xDB, 0xCF, 0x00, 0xEE, 0x0F, 0x30, 0x7C, 0x7C, 0xF8, 0xF4, 0xE0, 0xE8, 0xF0, 0xE8,
  8.     0xE0, 0x68, 0x70, 0x34, 0x08, 0x00, 0x0F, 0x30, 0x7C, 0x7C, 0xF8, 0xF4, 0xE0, 0xE8, 0xF0, 0xE8, 0xE0, 0x68,
  9.     0x70, 0x34, 0x08, 0x00, 0xF0, 0x0C, 0x46, 0x66, 0x33, 0x13, 0x0B, 0x0B, 0x1F, 0x0F, 0x0F, 0x1E, 0x1E, 0x1C,
  10.     0x30, 0x00, 0xF0, 0x0C, 0x46, 0x66, 0x33, 0x13, 0x0B, 0x0B, 0x1F, 0x0F, 0x0F, 0x1E, 0x1E, 0x1C, 0x30, 0x00,
  11.     0x3F, 0x3F, 0x3F, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0xFC, 0xFC, 0xFC, 0x3C, 0x3C, 0x3C, 0x3C,
  12.     0x3C, 0x3C, 0x3C, 0x3C, 0xFF, 0xFF, 0xFF, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3F, 0x3F, 0x3F, 0x00,
  13.     0x07, 0x1C, 0x73, 0x7F, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0xFC, 0xFC, 0xFC, 0x00, 0xE0, 0xD8, 0x26,
  14.     0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0x33, 0xCC, 0x33, 0xFF
  15. ];
  16.  
  17. let puzzle15 = [
  18.     0x00, 0xE0, 0x6C, 0x00, 0x4C, 0x00, 0x6E, 0x0F, 0xA2, 0x03, 0x60, 0x20, 0xF0, 0x55, 0x00, 0xE0,
  19.     0x22, 0xBE, 0x22, 0x76, 0x22, 0x8E, 0x22, 0x5E, 0x22, 0x46, 0x12, 0x10, 0x61, 0x00, 0x62, 0x17,
  20.     0x63, 0x04, 0x41, 0x10, 0x00, 0xEE, 0xA2, 0xE8, 0xF1, 0x1E, 0xF0, 0x65, 0x40, 0x00, 0x12, 0x34,
  21.     0xF0, 0x29, 0xD2, 0x35, 0x71, 0x01, 0x72, 0x05, 0x64, 0x03, 0x84, 0x12, 0x34, 0x00, 0x12, 0x22,
  22.     0x62, 0x17, 0x73, 0x06, 0x12, 0x22, 0x64, 0x03, 0x84, 0xE2, 0x65, 0x03, 0x85, 0xD2, 0x94, 0x50,
  23.     0x00, 0xEE, 0x44, 0x03, 0x00, 0xEE, 0x64, 0x01, 0x84, 0xE4, 0x22, 0xA6, 0x12, 0x46, 0x64, 0x03,
  24.     0x84, 0xE2, 0x65, 0x03, 0x85, 0xD2, 0x94, 0x50, 0x00, 0xEE, 0x44, 0x00, 0x00, 0xEE, 0x64, 0xFF,
  25.     0x84, 0xE4, 0x22, 0xA6, 0x12, 0x5E, 0x64, 0x0C, 0x84, 0xE2, 0x65, 0x0C, 0x85, 0xD2, 0x94, 0x50,
  26.     0x00, 0xEE, 0x44, 0x00, 0x00, 0xEE, 0x64, 0xFC, 0x84, 0xE4, 0x22, 0xA6, 0x12, 0x76, 0x64, 0x0C,
  27.     0x84, 0xE2, 0x65, 0x0C, 0x85, 0xD2, 0x94, 0x50, 0x00, 0xEE, 0x44, 0x0C, 0x00, 0xEE, 0x64, 0x04,
  28.     0x84, 0xE4, 0x22, 0xA6, 0x12, 0x8E, 0xA2, 0xE8, 0xF4, 0x1E, 0xF0, 0x65, 0xA2, 0xE8, 0xFE, 0x1E,
  29.     0xF0, 0x55, 0x60, 0x00, 0xA2, 0xE8, 0xF4, 0x1E, 0xF0, 0x55, 0x8E, 0x40, 0x00, 0xEE, 0x3C, 0x00,
  30.     0x12, 0xD2, 0x22, 0x1C, 0x22, 0xD8, 0x22, 0x1C, 0xA2, 0xF8, 0xFD, 0x1E, 0xF0, 0x65, 0x8D, 0x00,
  31.     0x00, 0xEE, 0x7C, 0xFF, 0xCD, 0x0F, 0x00, 0xEE, 0x7D, 0x01, 0x60, 0x0F, 0x8D, 0x02, 0xED, 0x9E,
  32.     0x12, 0xD8, 0xED, 0xA1, 0x12, 0xE2, 0x00, 0xEE, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
  33.     0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x00, 0x0D, 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x08,
  34.     0x09, 0x0A, 0x0C, 0x0E, 0x03, 0x07, 0x0B, 0x0F, 0x84, 0xE4, 0x22, 0xA6, 0x12, 0x76, 0x64, 0x0C,
  35.     0x84, 0xE2, 0x65, 0x0C, 0x85, 0xD2, 0x94, 0x50, 0x00, 0xEE, 0x44, 0x0C, 0x00, 0xEE, 0x64, 0x04,
  36.     0x84, 0xE4, 0x22, 0xA6, 0x12, 0x8E, 0xA2, 0xE8, 0xF4, 0x1E, 0xF0, 0x65, 0xA2, 0xE8, 0xFE, 0x1E,
  37.     0xF0, 0x55, 0x60, 0x00, 0xA2, 0xE8, 0xF4, 0x1E, 0xF0, 0x55, 0x8E, 0x40, 0x00, 0xEE, 0x3C, 0x00,
  38.     0x12, 0xD2, 0x22, 0x1C, 0x22, 0xD8, 0x22, 0x1C, 0xA2, 0xF8, 0xFD, 0x1E, 0xF0, 0x65, 0x8D, 0x00,
  39.     0x00, 0xEE, 0x7C, 0xFF, 0xCD, 0x0F, 0x00, 0xEE, 0x7D, 0x01, 0x60, 0x0F, 0x8D, 0x02, 0xED, 0x9E,
  40.     0x12, 0xD8, 0xED, 0xA1, 0x12, 0xE2, 0x00, 0xEE, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
  41.     0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x00, 0x0D, 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x08
  42. ];
  43.  
  44. let blinky = [
  45.     0x12, 0x1A, 0x32, 0x2E, 0x30, 0x30, 0x20, 0x43, 0x2E, 0x20, 0x45, 0x67, 0x65, 0x62, 0x65, 0x72,
  46.     0x67, 0x20, 0x31, 0x38, 0x2F, 0x38, 0x2D, 0x27, 0x39, 0x31, 0x80, 0x03, 0x81, 0x13, 0xA8, 0xC8,
  47.     0xF1, 0x55, 0x60, 0x05, 0xA8, 0xCC, 0xF0, 0x55, 0x87, 0x73, 0x86, 0x63, 0x27, 0x72, 0x00, 0xE0,
  48.     0x27, 0x94, 0x6E, 0x40, 0x87, 0xE2, 0x6E, 0x27, 0x87, 0xE1, 0x68, 0x1A, 0x69, 0x0C, 0x6A, 0x38,
  49.     0x6B, 0x00, 0x6C, 0x02, 0x6D, 0x1A, 0x27, 0x50, 0xA8, 0xED, 0xDA, 0xB4, 0xDC, 0xD4, 0x23, 0xD0,
  50.     0x3E, 0x00, 0x12, 0x7C, 0xA8, 0xCC, 0xF0, 0x65, 0x85, 0x00, 0xC4, 0xFF, 0x84, 0x52, 0x24, 0xF6,
  51.     0xC4, 0xFF, 0x84, 0x52, 0x26, 0x1E, 0x60, 0x01, 0xE0, 0xA1, 0x27, 0xD6, 0x36, 0xF7, 0x12, 0x4E,
  52.     0x8E, 0x60, 0x28, 0x7A, 0x6E, 0x64, 0x28, 0x7A, 0x27, 0xD6, 0x12, 0x2A, 0xF0, 0x07, 0x40, 0x00,
  53.     0x13, 0x10, 0x80, 0x80, 0x80, 0x06, 0x81, 0xA0, 0x81, 0x06, 0x80, 0x15, 0x40, 0x00, 0x12, 0x9A,
  54.     0x40, 0x01, 0x12, 0x9A, 0x40, 0xFF, 0x12, 0x9A, 0x12, 0xC8, 0x80, 0x90, 0x80, 0x06, 0x81, 0xB0,
  55.     0x81, 0x06, 0x80, 0x15, 0x40, 0x00, 0x12, 0xB2, 0x40, 0x01, 0x12, 0xB2, 0x40, 0xFF, 0x12, 0xB2,
  56.     0x12, 0xC8, 0xA8, 0xED, 0xDA, 0xB4, 0x6A, 0x38, 0x6B, 0x00, 0xDA, 0xB4, 0x6E, 0xF3, 0x87, 0xE2,
  57.     0x6E, 0x04, 0x87, 0xE1, 0x6E, 0x32, 0x28, 0x7A, 0x80, 0x80, 0x80, 0x06, 0x81, 0xC0, 0x81, 0x06,
  58.     0x80, 0x15, 0x40, 0x00, 0x12, 0xE0, 0x40, 0x01, 0x12, 0xE0, 0x40, 0xFF, 0x12, 0xE0, 0x12, 0x54,
  59.     0x80, 0x90, 0x80, 0x06, 0x81, 0xD0, 0x81, 0x06, 0x80, 0x15, 0x40, 0x00, 0x12, 0xF8, 0x40, 0x01,
  60.     0x12, 0xF8, 0x40, 0xFF, 0x12, 0xF8, 0x12, 0x54, 0xA8, 0xED, 0xDC, 0xD4, 0x6C, 0x02, 0x6D, 0x1A,
  61.     0xDC, 0xD4, 0x6E, 0xCF, 0x87, 0xE2, 0x6E, 0x20, 0x87, 0xE1, 0x6E, 0x19, 0x28, 0x7A, 0x12, 0x54,
  62.     0x60, 0x3F, 0x28, 0xA8, 0x27, 0x50, 0xA8, 0xED, 0xDA, 0xB4, 0xDC, 0xD4, 0x6E, 0x40, 0x87, 0xE3,
  63.     0x80, 0x70, 0x80, 0xE2, 0x30, 0x00, 0x12, 0x32, 0x8E, 0x60, 0x28, 0x7A, 0x28, 0x8A, 0x00, 0xE0,
  64.     0x66, 0x11, 0x67, 0x0A, 0xA8, 0xCA, 0x27, 0xE6, 0x66, 0x11, 0x67, 0x10, 0xA8, 0xC8, 0x27, 0xE6,
  65.     0x64, 0x00, 0x65, 0x08, 0x66, 0x00, 0x67, 0x0F, 0xAB, 0x19, 0xD4, 0x69, 0xAB, 0x22, 0xD5, 0x69,
  66.     0x60, 0x03, 0x28, 0xA8, 0x3E, 0x00, 0x13, 0xC6, 0xAB, 0x19, 0xD4, 0x69, 0xAB, 0x22, 0xD5, 0x69,
  67.     0x74, 0x02, 0x75, 0x02, 0x34, 0x30, 0x13, 0x48, 0xAB, 0x19, 0xD4, 0x69, 0xAB, 0x22, 0xD5, 0x69,
  68.     0x60, 0x03, 0x28, 0xA8, 0x3E, 0x00, 0x13, 0xC6, 0xAB, 0x19, 0xD4, 0x69, 0xAB, 0x22, 0xD5, 0x69,
  69.     0x76, 0x02, 0x36, 0x16, 0x13, 0x68, 0xAB, 0x19, 0xD4, 0x69, 0xAB, 0x22, 0xD5, 0x69, 0x60, 0x03,
  70.     0x28, 0xA8, 0x3E, 0x00, 0x13, 0xC6, 0xAB, 0x19, 0xD4, 0x69, 0xAB, 0x22, 0xD5, 0x69, 0x74, 0xFE,
  71.     0x75, 0xFE, 0x34, 0x00, 0x13, 0x86, 0xAB, 0x19, 0xD4, 0x69, 0xAB, 0x22, 0xD5, 0x69, 0x60, 0x03,
  72.     0x28, 0xA8, 0x3E, 0x00, 0x13, 0xC6, 0xAB, 0x19, 0xD4, 0x69, 0xAB, 0x22, 0xD5, 0x69, 0x76, 0xFE,
  73.     0x36, 0x00, 0x13, 0xA6, 0x13, 0x48, 0xAB, 0x22, 0xD5, 0x69, 0xAB, 0x2B, 0xD5, 0x69, 0x12, 0x1A,
  74.     0x83, 0x70, 0x6E, 0x03, 0x83, 0xE2, 0x84, 0x80, 0x85, 0x90, 0x6E, 0x06, 0xEE, 0xA1, 0x14, 0x32,
  75.     0x6E, 0x03, 0xEE, 0xA1, 0x14, 0x4A, 0x6E, 0x08, 0xEE, 0xA1, 0x14, 0x62, 0x6E, 0x07, 0xEE, 0xA1,
  76.     0x14, 0x7A, 0x43, 0x03, 0x75, 0x02, 0x43, 0x00, 0x75, 0xFE, 0x43, 0x02, 0x74, 0x02, 0x43, 0x01,
  77.     0x74, 0xFE, 0x80, 0x40, 0x81, 0x50, 0x27, 0xBA, 0x82, 0x00, 0x6E, 0x08, 0x80, 0xE2, 0x30, 0x00,
  78.     0x14, 0x92, 0x6E, 0x07, 0x80, 0x20, 0x82, 0xE2, 0x42, 0x05, 0x14, 0x9A, 0x42, 0x06, 0x14, 0xB2,
  79.     0x42, 0x07, 0x14, 0xEC, 0x27, 0x50, 0x6E, 0xFC, 0x87, 0xE2, 0x87, 0x31, 0x88, 0x40, 0x89, 0x50,
  80.     0x17, 0x50, 0x80, 0x40, 0x81, 0x50, 0x71, 0x02, 0x27, 0xBA, 0x82, 0x00, 0x6E, 0x08, 0x80, 0xE2,
  81.     0x30, 0x00, 0x13, 0xF2, 0x63, 0x03, 0x75, 0x02, 0x14, 0x0E, 0x80, 0x40, 0x81, 0x50, 0x71, 0xFE,
  82.     0x27, 0xBA, 0x82, 0x00, 0x6E, 0x08, 0x80, 0xE2, 0x30, 0x00, 0x13, 0xF2, 0x63, 0x00, 0x75, 0xFE,
  83.     0x14, 0x0E, 0x80, 0x40, 0x81, 0x50, 0x70, 0x02, 0x27, 0xBA, 0x82, 0x00, 0x6E, 0x08, 0x80, 0xE2,
  84.     0x30, 0x00, 0x13, 0xF2, 0x63, 0x02, 0x74, 0x02, 0x14, 0x0E, 0x80, 0x40, 0x81, 0x50, 0x70, 0xFE,
  85.     0x27, 0xBA, 0x82, 0x00, 0x6E, 0x08, 0x80, 0xE2, 0x30, 0x00, 0x13, 0xF2, 0x63, 0x01, 0x74, 0xFE,
  86.     0x14, 0x0E, 0x27, 0x50, 0xD8, 0x94, 0x8E, 0xF0, 0x00, 0xEE, 0x6E, 0xF0, 0x80, 0xE2, 0x80, 0x31,
  87.     0xF0, 0x55, 0xA8, 0xF1, 0xD4, 0x54, 0x76, 0x01, 0x61, 0x05, 0xF0, 0x07, 0x40, 0x00, 0xF1, 0x18,
  88.     0x14, 0x24, 0x6E, 0xF0, 0x80, 0xE2, 0x80, 0x31, 0xF0, 0x55, 0xA8, 0xF5, 0xD4, 0x54, 0x76, 0x04,
  89.     0x80, 0xA0, 0x81, 0xB0, 0x27, 0xBA, 0x6E, 0xF0, 0x80, 0xE2, 0x30, 0x00, 0x14, 0xD2, 0x6E, 0x0C,
  90.     0x87, 0xE3, 0x80, 0xC0, 0x81, 0xD0, 0x27, 0xBA, 0x6E, 0xF0, 0x80, 0xE2, 0x30, 0x00, 0x14, 0xE4,
  91.     0x6E, 0x30, 0x87, 0xE3, 0x60, 0xFF, 0xF0, 0x18, 0xF0, 0x15, 0x14, 0x24, 0x43, 0x01, 0x64, 0x3A,
  92.     0x43, 0x02, 0x64, 0x00, 0x14, 0x24, 0x82, 0x70, 0x83, 0x70, 0x6E, 0x0C, 0x82, 0xE2, 0x80, 0xA0,
  93.     0x81, 0xB0, 0x27, 0xBA, 0xA8, 0xED, 0x6E, 0xF0, 0x80, 0xE2, 0x30, 0x00, 0x15, 0x24, 0xDA, 0xB4,
  94.     0x42, 0x0C, 0x7B, 0x02, 0x42, 0x00, 0x7B, 0xFE, 0x42, 0x08, 0x7A, 0x02, 0x42, 0x04, 0x7A, 0xFE,
  95.     0xDA, 0xB4, 0x00, 0xEE, 0x6E, 0x80, 0xF1, 0x07, 0x31, 0x00, 0x15, 0xD4, 0x34, 0x00, 0x15, 0xD4,
  96.     0x81, 0x00, 0x83, 0x0E, 0x3F, 0x00, 0x15, 0x56, 0x83, 0x90, 0x83, 0xB5, 0x4F, 0x00, 0x15, 0x8C,
  97.     0x33, 0x00, 0x15, 0x74, 0x87, 0xE3, 0x83, 0x80, 0x83, 0xA5, 0x4F, 0x00, 0x15, 0xBC, 0x33, 0x00,
  98.     0x15, 0xA4, 0x87, 0xE3, 0x15, 0xD4, 0x83, 0x80, 0x83, 0xA5, 0x4F, 0x00, 0x15, 0xBC, 0x33, 0x00,
  99.     0x15, 0xA4, 0x87, 0xE3, 0x83, 0x90, 0x83, 0xB5, 0x4F, 0x00, 0x15, 0x8C, 0x33, 0x00, 0x15, 0x74,
  100.     0x87, 0xE3, 0x15, 0xD4, 0x63, 0x40, 0x81, 0x32, 0x41, 0x00, 0x15, 0xD4, 0xDA, 0xB4, 0x7B, 0x02,
  101.     0xDA, 0xB4, 0x6E, 0xF3, 0x87, 0xE2, 0x62, 0x0C, 0x87, 0x21, 0x00, 0xEE, 0x63, 0x10, 0x81, 0x32,
  102.     0x41, 0x00, 0x15, 0xD4, 0xDA, 0xB4, 0x7B, 0xFE, 0xDA, 0xB4, 0x6E, 0xF3, 0x87, 0xE2, 0x62, 0x00,
  103.     0x87, 0x21, 0x00, 0xEE, 0x63, 0x20, 0x81, 0x32, 0x41, 0x00, 0x15, 0xD4, 0xDA, 0xB4, 0x7A, 0x02,
  104.     0xDA, 0xB4, 0x6E, 0xF3, 0x87, 0xE2, 0x62, 0x08, 0x87, 0x21, 0x00, 0xEE, 0x63, 0x80, 0x81, 0x32,
  105.     0x41, 0x00, 0x15, 0xD4, 0xDA, 0xB4, 0x7A, 0xFE, 0xDA, 0xB4, 0x6E, 0xF3, 0x87, 0xE2, 0x62, 0x04,
  106.     0x87, 0x21, 0x00, 0xEE, 0xC1, 0xF0, 0x80, 0x12, 0x30, 0x00, 0x15, 0xE4, 0x6E, 0x0C, 0x87, 0xE3,
  107.     0x82, 0xE3, 0x15, 0x0E, 0xDA, 0xB4, 0x80, 0x0E, 0x4F, 0x00, 0x15, 0xF2, 0x62, 0x04, 0x7A, 0xFE,
  108.     0x16, 0x14, 0x80, 0x0E, 0x4F, 0x00, 0x15, 0xFE, 0x62, 0x0C, 0x7B, 0x02, 0x16, 0x14, 0x80, 0x0E,
  109.     0x4F, 0x00, 0x16, 0x0A, 0x62, 0x08, 0x7A, 0x02, 0x16, 0x14, 0x80, 0x0E, 0x4F, 0x00, 0x15, 0xDC,
  110.     0x62, 0x00, 0x7B, 0xFE, 0xDA, 0xB4, 0x6E, 0xF3, 0x87, 0xE2, 0x87, 0x21, 0x00, 0xEE, 0x82, 0x70,
  111.     0x83, 0x70, 0x6E, 0x30, 0x82, 0xE2, 0x80, 0xC0, 0x81, 0xD0, 0x27, 0xBA, 0xA8, 0xED, 0x6E, 0xF0,
  112.     0x80, 0xE2, 0x30, 0x00, 0x16, 0x4C, 0xDC, 0xD4, 0x42, 0x30, 0x7D, 0x02, 0x42, 0x00, 0x7D, 0xFE,
  113.     0x42, 0x20, 0x7C, 0x02, 0x42, 0x10, 0x7C, 0xFE, 0xDC, 0xD4, 0x00, 0xEE, 0x6E, 0x80, 0xF1, 0x07,
  114.     0x31, 0x00, 0x17, 0x04, 0x34, 0x00, 0x17, 0x04, 0x81, 0x00, 0x83, 0x0E, 0x4F, 0x00, 0x16, 0x7E,
  115.     0x83, 0x90, 0x83, 0xD5, 0x4F, 0x00, 0x16, 0xB6, 0x33, 0x00, 0x16, 0x9C, 0x87, 0xE3, 0x83, 0x80,
  116.     0x83, 0xC5, 0x4F, 0x00, 0x16, 0xEA, 0x33, 0x00, 0x16, 0xD0, 0x87, 0xE3, 0x17, 0x04, 0x83, 0x80,
  117.     0x83, 0xC5, 0x4F, 0x00, 0x16, 0xEA, 0x33, 0x00, 0x16, 0xD0, 0x87, 0xE3, 0x83, 0x90, 0x83, 0xD5,
  118.     0x4F, 0x00, 0x16, 0xB6, 0x33, 0x00, 0x16, 0x9C, 0x87, 0xE3, 0x17, 0x04, 0x63, 0x40, 0x81, 0x32,
  119.     0x41, 0x00, 0x17, 0x04, 0xDC, 0xD4, 0x7D, 0x02, 0xDC, 0xD4, 0x87, 0xE3, 0x6E, 0xCF, 0x87, 0xE2,
  120.     0x62, 0x30, 0x87, 0x21, 0x00, 0xEE, 0x63, 0x10, 0x81, 0x32, 0x41, 0x00, 0x17, 0x04, 0xDC, 0xD4,
  121.     0x7D, 0xFE, 0xDC, 0xD4, 0x87, 0xE3, 0x6E, 0xCF, 0x87, 0xE2, 0x62, 0x00, 0x87, 0x21, 0x00, 0xEE,
  122.     0x63, 0x20, 0x81, 0x32, 0x41, 0x00, 0x17, 0x04, 0xDC, 0xD4, 0x7C, 0x02, 0xDC, 0xD4, 0x87, 0xE3,
  123.     0x6E, 0xCF, 0x87, 0xE2, 0x62, 0x20, 0x87, 0x21, 0x00, 0xEE, 0x63, 0x80, 0x81, 0x32, 0x41, 0x00,
  124.     0x17, 0x04, 0xDC, 0xD4, 0x7C, 0xFE, 0xDC, 0xD4, 0x87, 0xE3, 0x6E, 0xCF, 0x87, 0xE2, 0x62, 0x10,
  125.     0x87, 0x21, 0x00, 0xEE, 0xC1, 0xF0, 0x80, 0x12, 0x30, 0x00, 0x17, 0x16, 0x87, 0xE3, 0x6E, 0x30,
  126.     0x87, 0xE3, 0x82, 0xE3, 0x16, 0x36, 0xDC, 0xD4, 0x80, 0x0E, 0x4F, 0x00, 0x17, 0x24, 0x62, 0x90,
  127.     0x7C, 0xFE, 0x17, 0x46, 0x80, 0x0E, 0x4F, 0x00, 0x17, 0x30, 0x62, 0x30, 0x7D, 0x02, 0x17, 0x46,
  128.     0x80, 0x0E, 0x4F, 0x00, 0x17, 0x3C, 0x62, 0xA0, 0x7C, 0x02, 0x17, 0x46, 0x80, 0x0E, 0x4F, 0x00,
  129.     0x17, 0x0C, 0x62, 0x00, 0x7D, 0xFE, 0xDC, 0xD4, 0x6E, 0x4F, 0x87, 0xE2, 0x87, 0x21, 0x00, 0xEE,
  130.     0x80, 0x70, 0x6E, 0x03, 0x80, 0xE2, 0x80, 0x0E, 0x81, 0x80, 0x81, 0x94, 0x6E, 0x02, 0x81, 0xE2,
  131.     0x41, 0x00, 0x70, 0x01, 0x80, 0x0E, 0x80, 0x0E, 0xA8, 0xCD, 0xF0, 0x1E, 0xD8, 0x94, 0x8E, 0xF0,
  132.     0x00, 0xEE, 0x6E, 0x00, 0xA9, 0x19, 0xFE, 0x1E, 0xFE, 0x1E, 0xFE, 0x1E, 0xFE, 0x1E, 0xF3, 0x65,
  133.     0xAB, 0x34, 0xFE, 0x1E, 0xFE, 0x1E, 0xFE, 0x1E, 0xFE, 0x1E, 0xF3, 0x55, 0x7E, 0x01, 0x3E, 0x80,
  134.     0x17, 0x74, 0x00, 0xEE, 0x82, 0x23, 0x83, 0x33, 0x6E, 0x0F, 0x80, 0x20, 0x81, 0x30, 0x27, 0xBE,
  135.     0x80, 0xE2, 0x80, 0x0E, 0xA8, 0xF9, 0xF0, 0x1E, 0xD2, 0x32, 0x72, 0x02, 0x32, 0x40, 0x17, 0x9A,
  136.     0x82, 0x23, 0x73, 0x02, 0x43, 0x20, 0x00, 0xEE, 0x17, 0x9A, 0x70, 0x02, 0x71, 0x02, 0x80, 0x06,
  137.     0x81, 0x06, 0x81, 0x0E, 0x81, 0x0E, 0x81, 0x0E, 0x81, 0x0E, 0xAB, 0x34, 0xF1, 0x1E, 0xF1, 0x1E,
  138.     0xF0, 0x1E, 0xF0, 0x65, 0x00, 0xEE, 0xA8, 0xCC, 0xF0, 0x65, 0x80, 0x06, 0xF0, 0x55, 0x60, 0x01,
  139.     0xE0, 0xA1, 0x17, 0xE0, 0x00, 0xEE, 0xF1, 0x65, 0x6E, 0x01, 0x84, 0x43, 0x82, 0x00, 0x83, 0x10,
  140.     0x65, 0x10, 0x83, 0x55, 0x4F, 0x00, 0x82, 0xE5, 0x4F, 0x00, 0x18, 0x0C, 0x65, 0x27, 0x82, 0x55,
  141.     0x4F, 0x00, 0x18, 0x0C, 0x80, 0x20, 0x81, 0x30, 0x84, 0xE4, 0x17, 0xF0, 0xF4, 0x29, 0xD6, 0x75,
  142.     0x76, 0x06, 0x84, 0x43, 0x82, 0x00, 0x83, 0x10, 0x65, 0xE8, 0x83, 0x55, 0x4F, 0x00, 0x82, 0xE5,
  143.     0x4F, 0x00, 0x18, 0x34, 0x65, 0x03, 0x82, 0x55, 0x4F, 0x00, 0x18, 0x34, 0x80, 0x20, 0x81, 0x30,
  144.     0x84, 0xE4, 0x18, 0x18, 0xF4, 0x29, 0xD6, 0x75, 0x76, 0x06, 0x84, 0x43, 0x82, 0x00, 0x83, 0x10,
  145.     0x65, 0x64, 0x83, 0x55, 0x4F, 0x00, 0x82, 0xE5, 0x4F, 0x00, 0x18, 0x54, 0x80, 0x20, 0x81, 0x30,
  146.     0x84, 0xE4, 0x18, 0x40, 0xF4, 0x29, 0xD6, 0x75, 0x76, 0x06, 0x84, 0x43, 0x82, 0x00, 0x83, 0x10,
  147.     0x65, 0x0A, 0x83, 0x55, 0x4F, 0x00, 0x18, 0x6E, 0x81, 0x30, 0x84, 0xE4, 0x18, 0x60, 0xF4, 0x29,
  148.     0xD6, 0x75, 0x76, 0x06, 0xF1, 0x29, 0xD6, 0x75, 0x00, 0xEE, 0xA8, 0xC8, 0xF1, 0x65, 0x81, 0xE4,
  149.     0x3F, 0x00, 0x70, 0x01, 0xA8, 0xC8, 0xF1, 0x55, 0x00, 0xEE, 0xA8, 0xC8, 0xF3, 0x65, 0x8E, 0x00,
  150.     0x8E, 0x25, 0x4F, 0x00, 0x00, 0xEE, 0x3E, 0x00, 0x18, 0xA2, 0x8E, 0x10, 0x8E, 0x35, 0x4F, 0x00,
  151.     0x00, 0xEE, 0xA8, 0xCA, 0xF1, 0x55, 0x00, 0xEE, 0x8E, 0xE3, 0x62, 0x0F, 0x63, 0xFF, 0x61, 0x10,
  152.     0xE2, 0xA1, 0x18, 0xC4, 0x81, 0x34, 0x31, 0x00, 0x18, 0xB0, 0x61, 0x10, 0x80, 0x34, 0x30, 0x00,
  153.     0x18, 0xB0, 0x00, 0xEE, 0x6E, 0x01, 0x00, 0xEE, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x50, 0x70,
  154.     0x20, 0x00, 0x50, 0x70, 0x20, 0x00, 0x60, 0x30, 0x60, 0x00, 0x60, 0x30, 0x60, 0x00, 0x30, 0x60,
  155.     0x30, 0x00, 0x30, 0x60, 0x30, 0x00, 0x20, 0x70, 0x50, 0x00, 0x20, 0x70, 0x50, 0x00, 0x20, 0x70,
  156.     0x70, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  157.     0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00,
  158.     0x00, 0xC0, 0x80, 0x80, 0x80, 0xC0, 0x00, 0x80, 0x00, 0x0C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
  159.     0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0D, 0x0C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
  160.     0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0D, 0x0A, 0x65, 0x05, 0x05, 0x05, 0x05, 0xE5,
  161.     0x05, 0x05, 0xE5, 0x05, 0x05, 0x05, 0x05, 0xC5, 0x0A, 0x0A, 0x65, 0x05, 0x05, 0x05, 0x05, 0xE5,
  162.     0x05, 0x05, 0xE5, 0x05, 0x05, 0x05, 0x05, 0xC5, 0x0A, 0x0A, 0x05, 0x0C, 0x08, 0x08, 0x0F, 0x05,
  163.     0x0C, 0x0D, 0x05, 0x08, 0x08, 0x08, 0x0D, 0x05, 0x0E, 0x0F, 0x05, 0x0C, 0x08, 0x08, 0x0F, 0x05,
  164.     0x0C, 0x0D, 0x05, 0x08, 0x08, 0x08, 0x0D, 0x05, 0x0A, 0x0A, 0x05, 0x0A, 0x65, 0x06, 0x05, 0x95,
  165.     0x0A, 0x0A, 0x35, 0x05, 0x05, 0xC5, 0x0A, 0x35, 0x05, 0x05, 0x95, 0x0A, 0x65, 0x05, 0x05, 0x95,
  166.     0x0A, 0x0A, 0x35, 0x05, 0x06, 0xC5, 0x0A, 0x05, 0x0A, 0x0A, 0x05, 0x0F, 0x05, 0x08, 0x08, 0x08,
  167.     0x08, 0x08, 0x0C, 0x08, 0x0F, 0x05, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0F, 0x05, 0x08, 0x08, 0x0C,
  168.     0x08, 0x08, 0x08, 0x08, 0x0F, 0x05, 0x0F, 0x05, 0x0A, 0x0A, 0x75, 0x05, 0xB5, 0x05, 0x05, 0x05,
  169.     0x05, 0xC5, 0x0A, 0x65, 0x05, 0xB5, 0x05, 0xE5, 0x05, 0x05, 0xE5, 0x05, 0xB5, 0x05, 0xC5, 0x0A,
  170.     0x65, 0x05, 0x05, 0x05, 0x05, 0xB5, 0x05, 0xD5, 0x0A, 0x0A, 0x05, 0x0C, 0x08, 0x08, 0x08, 0x08,
  171.     0x0D, 0x05, 0x0F, 0x05, 0x0C, 0x08, 0x0F, 0x05, 0x08, 0x0F, 0x05, 0x08, 0x08, 0x0D, 0x05, 0x0F,
  172.     0x05, 0x0C, 0x08, 0x08, 0x08, 0x08, 0x0D, 0x05, 0x0A, 0x0F, 0x05, 0x0F, 0x65, 0x05, 0x05, 0xC5,
  173.     0x0A, 0x35, 0xE5, 0x95, 0x0A, 0x65, 0x05, 0xB0, 0x05, 0x05, 0xB5, 0x05, 0xC5, 0x0A, 0x35, 0xE5,
  174.     0x95, 0x0A, 0x65, 0x05, 0x05, 0xC5, 0x0F, 0x05, 0x0F, 0x07, 0x74, 0x05, 0xD5, 0x08, 0x0F, 0x05,
  175.     0x0E, 0x0F, 0x05, 0x08, 0x0F, 0x05, 0x0C, 0x08, 0x08, 0x08, 0x08, 0x0D, 0x05, 0x08, 0x0F, 0x05,
  176.     0x08, 0x0F, 0x05, 0x08, 0x0F, 0x75, 0x05, 0xD4, 0x07, 0x0A, 0x05, 0x0A, 0x35, 0x05, 0x05, 0xF5,
  177.     0x05, 0x05, 0xB5, 0x05, 0x05, 0xD5, 0x08, 0x08, 0x0D, 0x0C, 0x08, 0x0F, 0x75, 0x05, 0x05, 0xB5,
  178.     0x05, 0x05, 0xF5, 0x05, 0x05, 0x95, 0x0A, 0x05, 0x0A, 0x0A, 0x05, 0x08, 0x08, 0x08, 0x0D, 0x05,
  179.     0x0C, 0x08, 0x08, 0x08, 0x0D, 0x35, 0x05, 0xC5, 0x0A, 0x0A, 0x65, 0x05, 0x95, 0x0C, 0x08, 0x08,
  180.     0x08, 0x0D, 0x05, 0x0C, 0x08, 0x08, 0x0F, 0x05, 0x0A, 0x0A, 0x75, 0x05, 0x06, 0xC5, 0x0A, 0x05,
  181.     0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0F, 0x05, 0x08, 0x0F, 0x05, 0x08, 0x08, 0x08, 0x08, 0x08,
  182.     0x08, 0x0F, 0x05, 0x0A, 0x65, 0x06, 0x05, 0xD5, 0x0A, 0x0A, 0x05, 0x0C, 0x0D, 0x05, 0x0A, 0x35,
  183.     0x05, 0x05, 0x05, 0x05, 0xE5, 0x05, 0x05, 0xF5, 0x05, 0x05, 0xF5, 0x05, 0x05, 0xE5, 0x05, 0x05,
  184.     0x05, 0x05, 0x95, 0x0A, 0x05, 0x0C, 0x0D, 0x05, 0x0A, 0x0A, 0x05, 0x08, 0x0F, 0x05, 0x08, 0x08,
  185.     0x08, 0x08, 0x08, 0x0F, 0x05, 0x0C, 0x0D, 0x05, 0x08, 0x0F, 0x05, 0x0C, 0x0D, 0x05, 0x08, 0x08,
  186.     0x08, 0x08, 0x08, 0x0F, 0x05, 0x08, 0x0F, 0x05, 0x0A, 0x0A, 0x35, 0x05, 0x05, 0xB5, 0x05, 0x05,
  187.     0x05, 0x05, 0x05, 0x05, 0x95, 0x0A, 0x0A, 0x35, 0x05, 0x05, 0x95, 0x0A, 0x0A, 0x35, 0x05, 0x05,
  188.     0x05, 0x05, 0x05, 0x05, 0xB5, 0x05, 0x05, 0x95, 0x0A, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
  189.     0x08, 0x08, 0x08, 0x08, 0x08, 0x0F, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0F, 0x08, 0x08, 0x08, 0x08,
  190.     0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0F, 0x3C, 0x42, 0x99, 0x99, 0x42, 0x3C, 0x01,
  191.     0x10, 0x0F, 0x78, 0x84, 0x32, 0x32, 0x84, 0x78, 0x00, 0x10, 0xE0, 0x78, 0xFC, 0xFE, 0xFE, 0x84,
  192.     0x78, 0x00, 0x10, 0xE0
  193. ];
  194.  
  195. let blitz = [
  196.     0x12, 0x17, 0x42, 0x4C, 0x49, 0x54, 0x5A, 0x20, 0x42, 0x79, 0x20, 0x44, 0x61, 0x76, 0x69, 0x64,
  197.     0x20, 0x57, 0x49, 0x4E, 0x54, 0x45, 0x52, 0xA3, 0x41, 0x60, 0x04, 0x61, 0x09, 0x62, 0x0E, 0x67,
  198.     0x04, 0xD0, 0x1E, 0xF2, 0x1E, 0x70, 0x0C, 0x30, 0x40, 0x12, 0x21, 0xF0, 0x0A, 0x00, 0xE0, 0x22,
  199.     0xD9, 0xF0, 0x0A, 0x00, 0xE0, 0x8E, 0x70, 0xA3, 0x1E, 0x6B, 0x1F, 0xCC, 0x1F, 0x8C, 0xC4, 0xDC,
  200.     0xB2, 0x3F, 0x01, 0x12, 0x49, 0xDC, 0xB2, 0x12, 0x39, 0xCA, 0x07, 0x7A, 0x01, 0x7B, 0xFE, 0xDC,
  201.     0xB2, 0x7A, 0xFF, 0x3A, 0x00, 0x12, 0x4D, 0x7E, 0xFF, 0x3E, 0x00, 0x12, 0x39, 0x6B, 0x00, 0x8C,
  202.     0x70, 0x6D, 0x00, 0x6E, 0x00, 0xA3, 0x1B, 0xDD, 0xE3, 0x3F, 0x00, 0x12, 0xC1, 0x3B, 0x00, 0x12,
  203.     0x81, 0x60, 0x05, 0xE0, 0x9E, 0x12, 0x87, 0x6B, 0x01, 0x88, 0xD0, 0x78, 0x02, 0x89, 0xE0, 0x79,
  204.     0x03, 0xA3, 0x1E, 0xD8, 0x91, 0x81, 0xF0, 0x60, 0x05, 0xF0, 0x15, 0xF0, 0x07, 0x30, 0x00, 0x12,
  205.     0x8B, 0x3B, 0x01, 0x12, 0xAB, 0xA3, 0x1E, 0x31, 0x01, 0xD8, 0x91, 0x79, 0x01, 0x39, 0x20, 0x12,
  206.     0xAB, 0x6B, 0x00, 0x31, 0x00, 0x7C, 0xFF, 0x4C, 0x00, 0x12, 0xBB, 0xA3, 0x1B, 0xDD, 0xE3, 0x7D,
  207.     0x02, 0x3D, 0x40, 0x12, 0xB9, 0x6D, 0x00, 0x7E, 0x01, 0x12, 0x65, 0x00, 0xE0, 0x77, 0x02, 0x12,
  208.     0x2D, 0xA3, 0x1B, 0xDD, 0xE3, 0x60, 0x14, 0x61, 0x02, 0x62, 0x0B, 0xA3, 0x20, 0xD0, 0x1B, 0xF2,
  209.     0x1E, 0x70, 0x08, 0x30, 0x2C, 0x12, 0xCD, 0x12, 0xD7, 0x60, 0x0A, 0x61, 0x0D, 0x62, 0x05, 0xA3,
  210.     0x07, 0xD0, 0x15, 0xF2, 0x1E, 0x70, 0x08, 0x30, 0x2A, 0x12, 0xE1, 0x80, 0x70, 0x70, 0xFE, 0x80,
  211.     0x06, 0xA3, 0x87, 0xF0, 0x33, 0xF2, 0x65, 0x60, 0x2D, 0xF1, 0x29, 0x61, 0x0D, 0xD0, 0x15, 0x70,
  212.     0x05, 0xF2, 0x29, 0xD0, 0x15, 0x00, 0xEE, 0x83, 0x82, 0x83, 0x82, 0xFB, 0xE8, 0x08, 0x88, 0x05,
  213.     0xE2, 0xBE, 0xA0, 0xB8, 0x20, 0x3E, 0x80, 0x80, 0x80, 0x80, 0xF8, 0x80, 0xF8, 0xFC, 0xC0, 0xC0,
  214.     0xF9, 0x81, 0xDB, 0xCB, 0xFB, 0x00, 0xFA, 0x8A, 0x9A, 0x99, 0xF8, 0xEF, 0x2A, 0xE8, 0x29, 0x29,
  215.     0x00, 0x6F, 0x68, 0x2E, 0x4C, 0x8F, 0xBE, 0xA0, 0xB8, 0xB0, 0xBE, 0x00, 0xBE, 0x22, 0x3E, 0x34,
  216.     0xB2, 0xD8, 0xD8, 0x00, 0xC3, 0xC3, 0x00, 0xD8, 0xD8, 0x00, 0xC3, 0xC3, 0x00, 0xD8, 0xD8, 0xC0,
  217.     0xC0, 0x00, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x00, 0xDB, 0xDB, 0xDB, 0xDB, 0x00,
  218.     0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0xDB, 0xDB, 0xDB, 0xDB, 0x00, 0x18, 0x18,
  219.     0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0xDB, 0xDB, 0x00, 0x03, 0x03, 0x00, 0x18,
  220.     0x18, 0x00, 0xC0, 0xC0, 0x00, 0xDB, 0xDB
  221. ];
  222.  
  223. let brix = [
  224.     0x6E, 0x05, 0x65, 0x00, 0x6B, 0x06, 0x6A, 0x00, 0xA3, 0x0C, 0xDA, 0xB1, 0x7A, 0x04, 0x3A, 0x40,
  225.     0x12, 0x08, 0x7B, 0x02, 0x3B, 0x12, 0x12, 0x06, 0x6C, 0x20, 0x6D, 0x1F, 0xA3, 0x10, 0xDC, 0xD1,
  226.     0x22, 0xF6, 0x60, 0x00, 0x61, 0x00, 0xA3, 0x12, 0xD0, 0x11, 0x70, 0x08, 0xA3, 0x0E, 0xD0, 0x11,
  227.     0x60, 0x40, 0xF0, 0x15, 0xF0, 0x07, 0x30, 0x00, 0x12, 0x34, 0xC6, 0x0F, 0x67, 0x1E, 0x68, 0x01,
  228.     0x69, 0xFF, 0xA3, 0x0E, 0xD6, 0x71, 0xA3, 0x10, 0xDC, 0xD1, 0x60, 0x04, 0xE0, 0xA1, 0x7C, 0xFE,
  229.     0x60, 0x06, 0xE0, 0xA1, 0x7C, 0x02, 0x60, 0x3F, 0x8C, 0x02, 0xDC, 0xD1, 0xA3, 0x0E, 0xD6, 0x71,
  230.     0x86, 0x84, 0x87, 0x94, 0x60, 0x3F, 0x86, 0x02, 0x61, 0x1F, 0x87, 0x12, 0x47, 0x1F, 0x12, 0xAC,
  231.     0x46, 0x00, 0x68, 0x01, 0x46, 0x3F, 0x68, 0xFF, 0x47, 0x00, 0x69, 0x01, 0xD6, 0x71, 0x3F, 0x01,
  232.     0x12, 0xAA, 0x47, 0x1F, 0x12, 0xAA, 0x60, 0x05, 0x80, 0x75, 0x3F, 0x00, 0x12, 0xAA, 0x60, 0x01,
  233.     0xF0, 0x18, 0x80, 0x60, 0x61, 0xFC, 0x80, 0x12, 0xA3, 0x0C, 0xD0, 0x71, 0x60, 0xFE, 0x89, 0x03,
  234.     0x22, 0xF6, 0x75, 0x01, 0x22, 0xF6, 0x45, 0x60, 0x12, 0xDE, 0x12, 0x46, 0x69, 0xFF, 0x80, 0x60,
  235.     0x80, 0xC5, 0x3F, 0x01, 0x12, 0xCA, 0x61, 0x02, 0x80, 0x15, 0x3F, 0x01, 0x12, 0xE0, 0x80, 0x15,
  236.     0x3F, 0x01, 0x12, 0xEE, 0x80, 0x15, 0x3F, 0x01, 0x12, 0xE8, 0x60, 0x20, 0xF0, 0x18, 0xA3, 0x0E,
  237.     0x7E, 0xFF, 0x80, 0xE0, 0x80, 0x04, 0x61, 0x00, 0xD0, 0x11, 0x3E, 0x00, 0x12, 0x30, 0x12, 0xDE,
  238.     0x78, 0xFF, 0x48, 0xFE, 0x68, 0xFF, 0x12, 0xEE, 0x78, 0x01, 0x48, 0x02, 0x68, 0x01, 0x60, 0x04,
  239.     0xF0, 0x18, 0x69, 0xFF, 0x12, 0x70, 0xA3, 0x14, 0xF5, 0x33, 0xF2, 0x65, 0xF1, 0x29, 0x63, 0x37,
  240.     0x64, 0x00, 0xD3, 0x45, 0x73, 0x05, 0xF2, 0x29, 0xD3, 0x45, 0x00, 0xEE, 0xE0, 0x00, 0x80, 0x00,
  241.     0xFC, 0x00, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00
  242. ];
  243.  
  244. let connect4 = [
  245.     0x12, 0x1A, 0x43, 0x4F, 0x4E, 0x4E, 0x45, 0x43, 0x54, 0x34, 0x20, 0x62, 0x79, 0x20, 0x44, 0x61,
  246.     0x76, 0x69, 0x64, 0x20, 0x57, 0x49, 0x4E, 0x54, 0x45, 0x52, 0xA2, 0xBB, 0xF6, 0x65, 0xA2, 0xB4,
  247.     0xF6, 0x55, 0x69, 0x00, 0x68, 0x01, 0x6B, 0x00, 0x6D, 0x0F, 0x6E, 0x1F, 0xA2, 0xA5, 0x60, 0x0D,
  248.     0x61, 0x32, 0x62, 0x00, 0xD0, 0x2F, 0xD1, 0x2F, 0x72, 0x0F, 0x32, 0x1E, 0x12, 0x34, 0xD0, 0x21,
  249.     0xD1, 0x21, 0x72, 0x01, 0x60, 0x0A, 0xA2, 0x9F, 0xD0, 0x21, 0xD1, 0x21, 0xA2, 0x9F, 0xDD, 0xE1,
  250.     0xFC, 0x0A, 0xDD, 0xE1, 0x4C, 0x05, 0x12, 0x7E, 0x3C, 0x04, 0x12, 0x6A, 0x7B, 0xFF, 0x7D, 0xFB,
  251.     0x3D, 0x0A, 0x12, 0x7A, 0x6B, 0x06, 0x6D, 0x2D, 0x12, 0x7A, 0x3C, 0x06, 0x12, 0x98, 0x7B, 0x01,
  252.     0x7D, 0x05, 0x3D, 0x32, 0x12, 0x7A, 0x6B, 0x00, 0x6D, 0x0F, 0xDD, 0xE1, 0x12, 0x50, 0xA2, 0xB4,
  253.     0xFB, 0x1E, 0xF0, 0x65, 0x40, 0xFC, 0x12, 0x98, 0x8A, 0x00, 0x70, 0xFB, 0xF0, 0x55, 0x89, 0x83,
  254.     0xA2, 0x9E, 0x39, 0x00, 0xA2, 0xA1, 0xDD, 0xA4, 0xA2, 0x9F, 0xDD, 0xE1, 0x12, 0x50, 0x60, 0xF0,
  255.     0xF0, 0x60, 0x90, 0x90, 0x60, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
  256.     0x80, 0x80, 0x80, 0x80, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A,
  257.     0x1A, 0x1A
  258. ];
  259.  
  260. let guess = [
  261.     0x6E, 0x01, 0x00, 0xE0, 0x6D, 0x01, 0x6A, 0x01, 0x6B, 0x01, 0x8C, 0xD0, 0x8C, 0xE2, 0x4C, 0x00,
  262.     0x12, 0x20, 0x88, 0xD0, 0x22, 0x3E, 0x3A, 0x40, 0x12, 0x20, 0x6A, 0x01, 0x7B, 0x06, 0x3C, 0x3F,
  263.     0x7D, 0x01, 0x3D, 0x3F, 0x12, 0x0A, 0xF0, 0x0A, 0x40, 0x05, 0x89, 0xE4, 0x8E, 0xE4, 0x3E, 0x40,
  264.     0x12, 0x02, 0x6A, 0x1C, 0x6B, 0x0D, 0x88, 0x90, 0x00, 0xE0, 0x22, 0x3E, 0x12, 0x3C, 0xA2, 0x94,
  265.     0xF8, 0x33, 0xF2, 0x65, 0x22, 0x54, 0xDA, 0xB5, 0x7A, 0x04, 0x81, 0x20, 0x22, 0x54, 0xDA, 0xB5,
  266.     0x7A, 0x05, 0x00, 0xEE, 0x83, 0x10, 0x83, 0x34, 0x83, 0x34, 0x83, 0x14, 0xA2, 0x62, 0xF3, 0x1E,
  267.     0x00, 0xEE, 0xE0, 0xA0, 0xA0, 0xA0, 0xE0, 0x40, 0x40, 0x40, 0x40, 0x40, 0xE0, 0x20, 0xE0, 0x80,
  268.     0xE0, 0xE0, 0x20, 0xE0, 0x20, 0xE0, 0xA0, 0xA0, 0xE0, 0x20, 0x20, 0xE0, 0x80, 0xE0, 0x20, 0xE0,
  269.     0xE0, 0x80, 0xE0, 0xA0, 0xE0, 0xE0, 0x20, 0x20, 0x20, 0x20, 0xE0, 0xA0, 0xE0, 0xA0, 0xE0, 0xE0,
  270.     0xA0, 0xE0, 0x20, 0xE0
  271. ];
  272.  
  273. let hidden = [
  274.     0x12, 0x1D, 0x48, 0x49, 0x44, 0x44, 0x45, 0x4E, 0x21, 0x20, 0x31, 0x2E, 0x30, 0x20, 0x42, 0x79,
  275.     0x20, 0x44, 0x61, 0x76, 0x69, 0x64, 0x20, 0x57, 0x49, 0x4E, 0x54, 0x45, 0x52, 0xA4, 0x3F, 0x60,
  276.     0x00, 0x61, 0x40, 0xF1, 0x55, 0xA4, 0x3F, 0x60, 0x00, 0xF0, 0x55, 0x00, 0xE0, 0xA4, 0x7E, 0x60,
  277.     0x0C, 0x61, 0x08, 0x62, 0x0F, 0xD0, 0x1F, 0x70, 0x08, 0xF2, 0x1E, 0x30, 0x34, 0x12, 0x35, 0xF0,
  278.     0x0A, 0x00, 0xE0, 0xA4, 0xC9, 0x60, 0x13, 0x61, 0x0D, 0x62, 0x04, 0xD0, 0x14, 0x70, 0x08, 0xF2,
  279.     0x1E, 0x30, 0x2B, 0x12, 0x4B, 0xA4, 0x1F, 0xFF, 0x65, 0xA4, 0x2F, 0xFF, 0x55, 0x63, 0x40, 0x66,
  280.     0x08, 0xC1, 0x0F, 0xC2, 0x0F, 0xA4, 0x2F, 0xF1, 0x1E, 0xF0, 0x65, 0x84, 0x00, 0xA4, 0x2F, 0xF2,
  281.     0x1E, 0xF0, 0x65, 0x85, 0x00, 0x80, 0x40, 0xF0, 0x55, 0xA4, 0x2F, 0xF1, 0x1E, 0x80, 0x50, 0xF0,
  282.     0x55, 0x73, 0xFF, 0x33, 0x00, 0x12, 0x61, 0x00, 0xE0, 0x60, 0x00, 0x61, 0x00, 0xA4, 0x77, 0xD0,
  283.     0x17, 0x70, 0x08, 0x30, 0x20, 0x12, 0x8F, 0x60, 0x00, 0x71, 0x08, 0x31, 0x20, 0x12, 0x8F, 0x6C,
  284.     0x00, 0x6D, 0x00, 0x6E, 0x00, 0xA4, 0x3F, 0xF0, 0x65, 0x70, 0x01, 0xF0, 0x55, 0x23, 0xB9, 0x6A,
  285.     0x10, 0x23, 0x5D, 0x23, 0xCD, 0x8A, 0x90, 0x87, 0xD0, 0x88, 0xE0, 0x23, 0x5D, 0x23, 0xCD, 0x23,
  286.     0xB9, 0xA4, 0x2F, 0xF9, 0x1E, 0xF0, 0x65, 0x81, 0x00, 0xA4, 0x2F, 0xFA, 0x1E, 0xF0, 0x65, 0x50,
  287.     0x10, 0x13, 0x2B, 0x23, 0xDF, 0x60, 0x20, 0x24, 0x01, 0x23, 0xDF, 0x60, 0x00, 0xA4, 0x2F, 0xF9,
  288.     0x1E, 0xF0, 0x55, 0xA4, 0x2F, 0xFA, 0x1E, 0xF0, 0x55, 0x76, 0xFF, 0x36, 0x00, 0x12, 0xA5, 0xA4,
  289.     0x3F, 0xF1, 0x65, 0x82, 0x00, 0x80, 0x15, 0x3F, 0x00, 0x13, 0x01, 0x80, 0x20, 0x81, 0x20, 0xF1,
  290.     0x55, 0x00, 0xE0, 0xA5, 0x19, 0x60, 0x10, 0x61, 0x07, 0x62, 0x0E, 0xD0, 0x1F, 0x70, 0x08, 0xF2,
  291.     0x1E, 0x30, 0x30, 0x13, 0x0B, 0xA4, 0x3F, 0xF1, 0x65, 0x84, 0x10, 0x83, 0x00, 0x66, 0x09, 0x24,
  292.     0x0B, 0x66, 0x0F, 0x83, 0x40, 0x24, 0x0B, 0xF0, 0x0A, 0x12, 0x25, 0x23, 0xDB, 0x60, 0x80, 0x24,
  293.     0x01, 0x23, 0xDB, 0xA4, 0x2F, 0xFA, 0x1E, 0xF0, 0x65, 0x70, 0xFF, 0x23, 0xF3, 0xA4, 0x41, 0xF0,
  294.     0x1E, 0xD7, 0x87, 0xA4, 0x77, 0xD7, 0x87, 0xA4, 0x2F, 0xF9, 0x1E, 0xF0, 0x65, 0x70, 0xFF, 0x23,
  295.     0xF3, 0xA4, 0x41, 0xF0, 0x1E, 0xDD, 0xE7, 0xA4, 0x77, 0xDD, 0xE7, 0x12, 0xA5, 0xA4, 0x71, 0xDD,
  296.     0xE7, 0xFB, 0x0A, 0xDD, 0xE7, 0x3B, 0x04, 0x13, 0x71, 0x4D, 0x00, 0x13, 0x5D, 0x7D, 0xF8, 0x7C,
  297.     0xFF, 0x3B, 0x06, 0x13, 0x7D, 0x4D, 0x18, 0x13, 0x5D, 0x7D, 0x08, 0x7C, 0x01, 0x3B, 0x02, 0x13,
  298.     0x89, 0x4E, 0x00, 0x13, 0x5D, 0x7E, 0xF8, 0x7C, 0xFC, 0x3B, 0x08, 0x13, 0x95, 0x4E, 0x18, 0x13,
  299.     0x5D, 0x7E, 0x08, 0x7C, 0x04, 0x3B, 0x05, 0x13, 0x5D, 0xA4, 0x2F, 0xFC, 0x1E, 0xF0, 0x65, 0x40,
  300.     0x00, 0x13, 0x5D, 0x89, 0xC0, 0x99, 0xA0, 0x13, 0x5D, 0x70, 0xFF, 0xA4, 0x77, 0xDD, 0xE7, 0xA4,
  301.     0x41, 0x23, 0xF3, 0xF0, 0x1E, 0xDD, 0xE7, 0x00, 0xEE, 0xA4, 0xD5, 0x60, 0x24, 0x61, 0x0A, 0x62,
  302.     0x0B, 0xD0, 0x1B, 0x70, 0x08, 0xF2, 0x1E, 0x30, 0x3C, 0x13, 0xC1, 0x00, 0xEE, 0x60, 0x34, 0x61,
  303.     0x10, 0xA4, 0xF1, 0xD0, 0x15, 0xA4, 0xF6, 0xD0, 0x15, 0x00, 0xEE, 0xA4, 0xFB, 0x13, 0xE1, 0xA5,
  304.     0x0A, 0x60, 0x24, 0x61, 0x0D, 0x62, 0x05, 0xD0, 0x15, 0x70, 0x08, 0xF2, 0x1E, 0x30, 0x3C, 0x13,
  305.     0xE7, 0x00, 0xEE, 0x81, 0x00, 0x81, 0x14, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x15, 0x00,
  306.     0xEE, 0xF0, 0x15, 0xF0, 0x07, 0x30, 0x00, 0x14, 0x03, 0x00, 0xEE, 0xA4, 0x2F, 0xF3, 0x33, 0xF2,
  307.     0x65, 0x65, 0x23, 0xF1, 0x29, 0xD5, 0x65, 0x65, 0x28, 0xF2, 0x29, 0xD5, 0x65, 0x00, 0xEE, 0x01,
  308.     0x02, 0x03, 0x04, 0x08, 0x07, 0x06, 0x05, 0x05, 0x06, 0x07, 0x08, 0x04, 0x03, 0x02, 0x01, 0x01,
  309.     0x02, 0x03, 0x04, 0x08, 0x07, 0x06, 0x05, 0x05, 0x06, 0x07, 0x08, 0x04, 0x03, 0x02, 0x01, 0x00,
  310.     0x00, 0xFE, 0xEE, 0xC6, 0x82, 0xC6, 0xEE, 0xFE, 0xFE, 0xC6, 0xC6, 0xC6, 0xFE, 0xFE, 0xC6, 0xAA,
  311.     0x82, 0xAA, 0xC6, 0xFE, 0xC6, 0x82, 0x82, 0x82, 0xC6, 0xFE, 0xBA, 0xD6, 0xEE, 0xD6, 0xBA, 0xFE,
  312.     0xEE, 0xEE, 0x82, 0xEE, 0xEE, 0xFE, 0x82, 0xFE, 0x82, 0xFE, 0x82, 0xFE, 0xAA, 0xAA, 0xAA, 0xAA,
  313.     0xAA, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xAA, 0xD6, 0xAA, 0xD6, 0xAA, 0xFE, 0x8B, 0x88,
  314.     0xF8, 0x88, 0x8B, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x48, 0x48, 0x48, 0xF2, 0xEF, 0x84, 0x84,
  315.     0x84, 0xEF, 0x00, 0x08, 0x08, 0x0A, 0x00, 0x8A, 0x8A, 0xAA, 0xAA, 0x52, 0x3C, 0x92, 0x92, 0x92,
  316.     0x3C, 0x00, 0xE2, 0xA3, 0xE3, 0x00, 0x8B, 0xC8, 0xA8, 0x98, 0x88, 0xFA, 0x83, 0xE2, 0x82, 0xFA,
  317.     0x00, 0x28, 0xB8, 0x90, 0x00, 0xEF, 0x88, 0x8E, 0x88, 0x8F, 0x21, 0x21, 0xA1, 0x60, 0x21, 0x00,
  318.     0x00, 0x00, 0x00, 0x00, 0xBC, 0x22, 0x3C, 0x28, 0xA4, 0x89, 0x8A, 0xAB, 0x52, 0x97, 0x51, 0xD1,
  319.     0x51, 0xC0, 0x00, 0x00, 0x15, 0x6A, 0x8A, 0x8E, 0x8A, 0x6A, 0x00, 0x64, 0x8A, 0x8E, 0x8A, 0x6A,
  320.     0x44, 0xAA, 0xAA, 0xAA, 0x44, 0x00, 0xCC, 0xAA, 0xCA, 0xAA, 0xAC, 0x6E, 0x88, 0x4C, 0x28, 0xCE,
  321.     0x00, 0x04, 0x0C, 0x04, 0x04, 0x0E, 0x0C, 0x12, 0x04, 0x08, 0x1E, 0x63, 0x94, 0x94, 0x94, 0x63,
  322.     0x38, 0xA5, 0xB8, 0xA0, 0x21, 0xE1, 0x01, 0xC1, 0x20, 0xC1, 0x89, 0x8A, 0x52, 0x22, 0x21, 0xCF,
  323.     0x28, 0x2F, 0x28, 0xC8, 0x02, 0x82, 0x02, 0x00, 0x02, 0xFF, 0x80, 0x8F, 0x90, 0x8E, 0x81, 0x9E,
  324.     0x80, 0x91, 0x91, 0x9F, 0x91, 0x91, 0x80, 0xFF, 0x00, 0x3C, 0x40, 0x40, 0x40, 0x3C, 0x00, 0x7C,
  325.     0x10, 0x10, 0x10, 0x7C, 0x00, 0xFF, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00,
  326.     0x80, 0x00, 0x00, 0xFF, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
  327.     0x01, 0xFF
  328. ];
  329.  
  330. let invaders = [
  331.     0x12, 0x25, 0x53, 0x50, 0x41, 0x43, 0x45, 0x20, 0x49, 0x4E, 0x56, 0x41, 0x44, 0x45, 0x52, 0x53,
  332.     0x20, 0x76, 0x30, 0x2E, 0x39, 0x20, 0x42, 0x79, 0x20, 0x44, 0x61, 0x76, 0x69, 0x64, 0x20, 0x57,
  333.     0x49, 0x4E, 0x54, 0x45, 0x52, 0x60, 0x00, 0x61, 0x00, 0x62, 0x08, 0xA3, 0xD3, 0xD0, 0x18, 0x71,
  334.     0x08, 0xF2, 0x1E, 0x31, 0x20, 0x12, 0x2D, 0x70, 0x08, 0x61, 0x00, 0x30, 0x40, 0x12, 0x2D, 0x69,
  335.     0x05, 0x6C, 0x15, 0x6E, 0x00, 0x23, 0x87, 0x60, 0x0A, 0xF0, 0x15, 0xF0, 0x07, 0x30, 0x00, 0x12,
  336.     0x4B, 0x23, 0x87, 0x7E, 0x01, 0x12, 0x45, 0x66, 0x00, 0x68, 0x1C, 0x69, 0x00, 0x6A, 0x04, 0x6B,
  337.     0x0A, 0x6C, 0x04, 0x6D, 0x3C, 0x6E, 0x0F, 0x00, 0xE0, 0x23, 0x6B, 0x23, 0x47, 0xFD, 0x15, 0x60,
  338.     0x04, 0xE0, 0x9E, 0x12, 0x7D, 0x23, 0x6B, 0x38, 0x00, 0x78, 0xFF, 0x23, 0x6B, 0x60, 0x06, 0xE0,
  339.     0x9E, 0x12, 0x8B, 0x23, 0x6B, 0x38, 0x39, 0x78, 0x01, 0x23, 0x6B, 0x36, 0x00, 0x12, 0x9F, 0x60,
  340.     0x05, 0xE0, 0x9E, 0x12, 0xE9, 0x66, 0x01, 0x65, 0x1B, 0x84, 0x80, 0xA3, 0xCF, 0xD4, 0x51, 0xA3,
  341.     0xCF, 0xD4, 0x51, 0x75, 0xFF, 0x35, 0xFF, 0x12, 0xAD, 0x66, 0x00, 0x12, 0xE9, 0xD4, 0x51, 0x3F,
  342.     0x01, 0x12, 0xE9, 0xD4, 0x51, 0x66, 0x00, 0x83, 0x40, 0x73, 0x03, 0x83, 0xB5, 0x62, 0xF8, 0x83,
  343.     0x22, 0x62, 0x08, 0x33, 0x00, 0x12, 0xC9, 0x23, 0x73, 0x82, 0x06, 0x43, 0x08, 0x12, 0xD3, 0x33,
  344.     0x10, 0x12, 0xD5, 0x23, 0x73, 0x82, 0x06, 0x33, 0x18, 0x12, 0xDD, 0x23, 0x73, 0x82, 0x06, 0x43,
  345.     0x20, 0x12, 0xE7, 0x33, 0x28, 0x12, 0xE9, 0x23, 0x73, 0x3E, 0x00, 0x13, 0x07, 0x79, 0x06, 0x49,
  346.     0x18, 0x69, 0x00, 0x6A, 0x04, 0x6B, 0x0A, 0x6C, 0x04, 0x7D, 0xF4, 0x6E, 0x0F, 0x00, 0xE0, 0x23,
  347.     0x47, 0x23, 0x6B, 0xFD, 0x15, 0x12, 0x6F, 0xF7, 0x07, 0x37, 0x00, 0x12, 0x6F, 0xFD, 0x15, 0x23,
  348.     0x47, 0x8B, 0xA4, 0x3B, 0x12, 0x13, 0x1B, 0x7C, 0x02, 0x6A, 0xFC, 0x3B, 0x02, 0x13, 0x23, 0x7C,
  349.     0x02, 0x6A, 0x04, 0x23, 0x47, 0x3C, 0x18, 0x12, 0x6F, 0x00, 0xE0, 0xA4, 0xD3, 0x60, 0x14, 0x61,
  350.     0x08, 0x62, 0x0F, 0xD0, 0x1F, 0x70, 0x08, 0xF2, 0x1E, 0x30, 0x2C, 0x13, 0x33, 0xF0, 0x0A, 0x00,
  351.     0xE0, 0xA6, 0xF4, 0xFE, 0x65, 0x12, 0x25, 0xA3, 0xB7, 0xF9, 0x1E, 0x61, 0x08, 0x23, 0x5F, 0x81,
  352.     0x06, 0x23, 0x5F, 0x81, 0x06, 0x23, 0x5F, 0x81, 0x06, 0x23, 0x5F, 0x7B, 0xD0, 0x00, 0xEE, 0x80,
  353.     0xE0, 0x80, 0x12, 0x30, 0x00, 0xDB, 0xC6, 0x7B, 0x0C, 0x00, 0xEE, 0xA3, 0xCF, 0x60, 0x1C, 0xD8,
  354.     0x04, 0x00, 0xEE, 0x23, 0x47, 0x8E, 0x23, 0x23, 0x47, 0x60, 0x05, 0xF0, 0x18, 0xF0, 0x15, 0xF0,
  355.     0x07, 0x30, 0x00, 0x13, 0x7F, 0x00, 0xEE, 0x6A, 0x00, 0x8D, 0xE0, 0x6B, 0x04, 0xE9, 0xA1, 0x12,
  356.     0x57, 0xA6, 0x02, 0xFD, 0x1E, 0xF0, 0x65, 0x30, 0xFF, 0x13, 0xA5, 0x6A, 0x00, 0x6B, 0x04, 0x6D,
  357.     0x01, 0x6E, 0x01, 0x13, 0x8D, 0xA5, 0x00, 0xF0, 0x1E, 0xDB, 0xC6, 0x7B, 0x08, 0x7D, 0x01, 0x7A,
  358.     0x01, 0x3A, 0x07, 0x13, 0x8D, 0x00, 0xEE, 0x3C, 0x7E, 0xFF, 0xFF, 0x99, 0x99, 0x7E, 0xFF, 0xFF,
  359.     0x24, 0x24, 0xE7, 0x7E, 0xFF, 0x3C, 0x3C, 0x7E, 0xDB, 0x81, 0x42, 0x3C, 0x7E, 0xFF, 0xDB, 0x10,
  360.     0x38, 0x7C, 0xFE, 0x00, 0x00, 0x7F, 0x00, 0x3F, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01,
  361.     0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x3F, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3F,
  362.     0x08, 0x08, 0xFF, 0x00, 0x00, 0xFE, 0x00, 0xFC, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x7E, 0x42, 0x42,
  363.     0x62, 0x62, 0x62, 0x62, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
  364.     0x00, 0x00, 0xFF, 0x00, 0x7D, 0x00, 0x41, 0x7D, 0x05, 0x7D, 0x7D, 0x00, 0x00, 0xC2, 0xC2, 0xC6,
  365.     0x44, 0x6C, 0x28, 0x38, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
  366.     0x00, 0x00, 0xFF, 0x00, 0xF7, 0x10, 0x14, 0xF7, 0xF7, 0x04, 0x04, 0x00, 0x00, 0x7C, 0x44, 0xFE,
  367.     0xC2, 0xC2, 0xC2, 0xC2, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
  368.     0x00, 0x00, 0xFF, 0x00, 0xEF, 0x20, 0x28, 0xE8, 0xE8, 0x2F, 0x2F, 0x00, 0x00, 0xF9, 0x85, 0xC5,
  369.     0xC5, 0xC5, 0xC5, 0xF9, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
  370.     0x00, 0x00, 0xFF, 0x00, 0xBE, 0x00, 0x20, 0x30, 0x20, 0xBE, 0xBE, 0x00, 0x00, 0xF7, 0x04, 0xE7,
  371.     0x85, 0x85, 0x84, 0xF4, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
  372.     0x00, 0x00, 0xFF, 0x00, 0x00, 0x7F, 0x00, 0x3F, 0x00, 0x7F, 0x00, 0x00, 0x00, 0xEF, 0x28, 0xEF,
  373.     0x00, 0xE0, 0x60, 0x6F, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
  374.     0x00, 0x00, 0xFF, 0x00, 0x00, 0xFE, 0x00, 0xFC, 0x00, 0xFE, 0x00, 0x00, 0x00, 0xC0, 0x00, 0xC0,
  375.     0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0xFC, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0xFC,
  376.     0x10, 0x10, 0xFF, 0xF9, 0x81, 0xB9, 0x8B, 0x9A, 0x9A, 0xFA, 0x00, 0xFA, 0x8A, 0x9A, 0x9A, 0x9B,
  377.     0x99, 0xF8, 0xE6, 0x25, 0x25, 0xF4, 0x34, 0x34, 0x34, 0x00, 0x17, 0x14, 0x34, 0x37, 0x36, 0x26,
  378.     0xC7, 0xDF, 0x50, 0x50, 0x5C, 0xD8, 0xD8, 0xDF, 0x00, 0xDF, 0x11, 0x1F, 0x12, 0x1B, 0x19, 0xD9,
  379.     0x7C, 0x44, 0xFE, 0x86, 0x86, 0x86, 0xFC, 0x84, 0xFE, 0x82, 0x82, 0xFE, 0xFE, 0x80, 0xC0, 0xC0,
  380.     0xC0, 0xFE, 0xFC, 0x82, 0xC2, 0xC2, 0xC2, 0xFC, 0xFE, 0x80, 0xF8, 0xC0, 0xC0, 0xFE, 0xFE, 0x80,
  381.     0xF0, 0xC0, 0xC0, 0xC0, 0xFE, 0x80, 0xBE, 0x86, 0x86, 0xFE, 0x86, 0x86, 0xFE, 0x86, 0x86, 0x86,
  382.     0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x18, 0x18, 0x18, 0x48, 0x48, 0x78, 0x9C, 0x90, 0xB0, 0xC0,
  383.     0xB0, 0x9C, 0x80, 0x80, 0xC0, 0xC0, 0xC0, 0xFE, 0xEE, 0x92, 0x92, 0x86, 0x86, 0x86, 0xFE, 0x82,
  384.     0x86, 0x86, 0x86, 0x86, 0x7C, 0x82, 0x86, 0x86, 0x86, 0x7C, 0xFE, 0x82, 0xFE, 0xC0, 0xC0, 0xC0,
  385.     0x7C, 0x82, 0xC2, 0xCA, 0xC4, 0x7A, 0xFE, 0x86, 0xFE, 0x90, 0x9C, 0x84, 0xFE, 0xC0, 0xFE, 0x02,
  386.     0x02, 0xFE, 0xFE, 0x10, 0x30, 0x30, 0x30, 0x30, 0x82, 0x82, 0xC2, 0xC2, 0xC2, 0xFE, 0x82, 0x82,
  387.     0x82, 0xEE, 0x38, 0x10, 0x86, 0x86, 0x96, 0x92, 0x92, 0xEE, 0x82, 0x44, 0x38, 0x38, 0x44, 0x82,
  388.     0x82, 0x82, 0xFE, 0x30, 0x30, 0x30, 0xFE, 0x02, 0x1E, 0xF0, 0x80, 0xFE, 0x00, 0x00, 0x00, 0x00,
  389.     0x06, 0x06, 0x00, 0x00, 0x00, 0x60, 0x60, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18,
  390.     0x18, 0x18, 0x00, 0x18, 0x7C, 0xC6, 0x0C, 0x18, 0x00, 0x18, 0x00, 0x00, 0xFE, 0xFE, 0x00, 0x00,
  391.     0xFE, 0x82, 0x86, 0x86, 0x86, 0xFE, 0x08, 0x08, 0x08, 0x18, 0x18, 0x18, 0xFE, 0x02, 0xFE, 0xC0,
  392.     0xC0, 0xFE, 0xFE, 0x02, 0x1E, 0x06, 0x06, 0xFE, 0x84, 0xC4, 0xC4, 0xFE, 0x04, 0x04, 0xFE, 0x80,
  393.     0xFE, 0x06, 0x06, 0xFE, 0xC0, 0xC0, 0xC0, 0xFE, 0x82, 0xFE, 0xFE, 0x02, 0x02, 0x06, 0x06, 0x06,
  394.     0x7C, 0x44, 0xFE, 0x86, 0x86, 0xFE, 0xFE, 0x82, 0xFE, 0x06, 0x06, 0x06, 0x44, 0xFE, 0x44, 0x44,
  395.     0xFE, 0x44, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0x6C, 0x5A, 0x00, 0x0C, 0x18, 0xA8, 0x30,
  396.     0x4E, 0x7E, 0x00, 0x12, 0x18, 0x66, 0x6C, 0xA8, 0x5A, 0x66, 0x54, 0x24, 0x66, 0x00, 0x48, 0x48,
  397.     0x18, 0x12, 0xA8, 0x06, 0x90, 0xA8, 0x12, 0x00, 0x7E, 0x30, 0x12, 0xA8, 0x84, 0x30, 0x4E, 0x72,
  398.     0x18, 0x66, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0x90, 0x54, 0x78, 0xA8, 0x48, 0x78, 0x6C, 0x72,
  399.     0xA8, 0x12, 0x18, 0x6C, 0x72, 0x66, 0x54, 0x90, 0xA8, 0x72, 0x2A, 0x18, 0xA8, 0x30, 0x4E, 0x7E,
  400.     0x00, 0x12, 0x18, 0x66, 0x6C, 0xA8, 0x72, 0x54, 0xA8, 0x5A, 0x66, 0x18, 0x7E, 0x18, 0x4E, 0x72,
  401.     0xA8, 0x72, 0x2A, 0x18, 0x30, 0x66, 0xA8, 0x30, 0x4E, 0x7E, 0x00, 0x6C, 0x30, 0x54, 0x4E, 0x9C,
  402.     0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0x48, 0x54, 0x7E, 0x18, 0xA8, 0x90, 0x54, 0x78, 0x66,
  403.     0xA8, 0x6C, 0x2A, 0x30, 0x5A, 0xA8, 0x84, 0x30, 0x72, 0x2A, 0xA8, 0xD8, 0xA8, 0x00, 0x4E, 0x12,
  404.     0xA8, 0xE4, 0xA2, 0xA8, 0x00, 0x4E, 0x12, 0xA8, 0x6C, 0x2A, 0x54, 0x54, 0x72, 0xA8, 0x84, 0x30,
  405.     0x72, 0x2A, 0xA8, 0xDE, 0x9C, 0xA8, 0x72, 0x2A, 0x18, 0xA8, 0x0C, 0x54, 0x48, 0x5A, 0x78, 0x72,
  406.     0x18, 0x66, 0xA8, 0x72, 0x18, 0x42, 0x42, 0x6C, 0xA8, 0x72, 0x2A, 0x00, 0x72, 0xA8, 0x72, 0x2A,
  407.     0x18, 0xA8, 0x30, 0x4E, 0x7E, 0x00, 0x12, 0x18, 0x66, 0x6C, 0xA8, 0x30, 0x4E, 0x0C, 0x66, 0x18,
  408.     0x00, 0x6C, 0x18, 0xA8, 0x72, 0x2A, 0x18, 0x30, 0x66, 0xA8, 0x1E, 0x54, 0x66, 0x0C, 0x18, 0x9C,
  409.     0xA8, 0x24, 0x54, 0x54, 0x12, 0xA8, 0x42, 0x78, 0x0C, 0x3C, 0xA8, 0xAE, 0xA8, 0xA8, 0xA8, 0xA8,
  410.     0xA8, 0xA8, 0xA8, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  411.     0x00, 0x00, 0x00
  412. ];
  413.  
  414. let kaleid = [
  415.     0x60, 0x00, 0x63, 0x80, 0x61, 0x1F, 0x62, 0x0F, 0x22, 0x32, 0xA2, 0x00, 0xF3, 0x1E, 0xF0, 0x0A,
  416.     0xF0, 0x55, 0x40, 0x00, 0x12, 0x1C, 0x73, 0x01, 0x33, 0x00, 0x12, 0x08, 0x63, 0x80, 0xA2, 0x00,
  417.     0xF3, 0x1E, 0xF0, 0x65, 0x40, 0x00, 0x12, 0x1C, 0x73, 0x01, 0x43, 0x00, 0x12, 0x1C, 0x22, 0x32,
  418.     0x12, 0x1E, 0x40, 0x02, 0x72, 0xFF, 0x40, 0x04, 0x71, 0xFF, 0x40, 0x06, 0x71, 0x01, 0x40, 0x08,
  419.     0x72, 0x01, 0xA2, 0x77, 0x6A, 0xE0, 0x8A, 0x12, 0x6B, 0x1F, 0x81, 0xB2, 0x3A, 0x00, 0x72, 0x01,
  420.     0x6A, 0xF0, 0x8A, 0x22, 0x6B, 0x0F, 0x82, 0xB2, 0x3A, 0x00, 0x71, 0x01, 0x6B, 0x1F, 0x81, 0xB2,
  421.     0xD1, 0x21, 0x8A, 0x10, 0x6B, 0x1F, 0x8B, 0x25, 0xDA, 0xB1, 0x6A, 0x3F, 0x8A, 0x15, 0xDA, 0xB1,
  422.     0x8B, 0x20, 0xDA, 0xB1, 0x00, 0xEE, 0x01, 0x80
  423. ];
  424.  
  425. let maze = [
  426.     0xA2, 0x1E, 0xC2, 0x01, 0x32, 0x01, 0xA2, 0x1A, 0xD0, 0x14, 0x70, 0x04, 0x30, 0x40, 0x12, 0x00,
  427.     0x60, 0x00, 0x71, 0x04, 0x31, 0x20, 0x12, 0x00, 0x12, 0x18, 0x80, 0x40, 0x20, 0x10, 0x20, 0x40,
  428.     0x80, 0x10
  429. ];
  430.  
  431. let merlin = [
  432.     0x12, 0x19, 0x20, 0x4D, 0x45, 0x52, 0x4C, 0x49, 0x4E, 0x20, 0x42, 0x79, 0x20, 0x44, 0x61, 0x76,
  433.     0x69, 0x64, 0x20, 0x57, 0x49, 0x4E, 0x54, 0x45, 0x52, 0x22, 0xF9, 0xA3, 0x1D, 0x60, 0x10, 0x61,
  434.     0x00, 0x22, 0xCB, 0xA3, 0x31, 0x60, 0x0B, 0x61, 0x1B, 0x22, 0xCB, 0x64, 0x04, 0x22, 0xDF, 0x65,
  435.     0x00, 0x62, 0x28, 0x22, 0xC1, 0xC2, 0x03, 0x80, 0x20, 0xA3, 0x59, 0xF5, 0x1E, 0xF0, 0x55, 0x60,
  436.     0x17, 0x61, 0x08, 0x63, 0x01, 0x83, 0x22, 0x33, 0x00, 0x70, 0x0A, 0x63, 0x02, 0x83, 0x22, 0x33,
  437.     0x00, 0x71, 0x0A, 0xA3, 0x17, 0xD0, 0x16, 0x62, 0x14, 0x22, 0xC1, 0xD0, 0x16, 0x62, 0x05, 0x22,
  438.     0xC1, 0x75, 0x01, 0x54, 0x50, 0x12, 0x35, 0x65, 0x00, 0x60, 0x17, 0x61, 0x08, 0xA3, 0x17, 0xF3,
  439.     0x0A, 0x33, 0x04, 0x12, 0x79, 0x63, 0x00, 0x12, 0x97, 0x33, 0x05, 0x12, 0x83, 0x70, 0x0A, 0x63,
  440.     0x01, 0x12, 0x97, 0x33, 0x07, 0x12, 0x8D, 0x71, 0x0A, 0x63, 0x02, 0x12, 0x97, 0x33, 0x08, 0x12,
  441.     0x69, 0x70, 0x0A, 0x71, 0x0A, 0x63, 0x03, 0xD0, 0x16, 0x62, 0x14, 0x22, 0xC1, 0xD0, 0x16, 0xA3,
  442.     0x59, 0xF5, 0x1E, 0xF0, 0x65, 0x75, 0x01, 0x50, 0x30, 0x12, 0xB5, 0x55, 0x40, 0x12, 0x69, 0x22,
  443.     0xDF, 0x74, 0x01, 0x12, 0x2D, 0x22, 0xF9, 0xA3, 0x45, 0x60, 0x10, 0x61, 0x0E, 0x22, 0xCB, 0x12,
  444.     0xBF, 0xF2, 0x15, 0xF2, 0x07, 0x32, 0x00, 0x12, 0xC3, 0x00, 0xEE, 0x83, 0x00, 0x62, 0x05, 0xD0,
  445.     0x15, 0xF2, 0x1E, 0x70, 0x08, 0x85, 0x30, 0x75, 0x20, 0x50, 0x50, 0x12, 0xCF, 0x00, 0xEE, 0xA3,
  446.     0x59, 0x83, 0x40, 0x73, 0xFD, 0xF3, 0x33, 0xF2, 0x65, 0xF1, 0x29, 0x60, 0x2B, 0x63, 0x1B, 0xD0,
  447.     0x35, 0x70, 0x05, 0xF2, 0x29, 0xD0, 0x35, 0x00, 0xEE, 0xA3, 0x0F, 0x60, 0x17, 0x61, 0x07, 0xD0,
  448.     0x18, 0x70, 0x0A, 0xD0, 0x18, 0x71, 0x0A, 0xD0, 0x18, 0x70, 0xF6, 0xD0, 0x18, 0x00, 0xEE, 0xFF,
  449.     0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xFF, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0xDB, 0xAA, 0x8B,
  450.     0xCB, 0xCB, 0xEF, 0x08, 0x8F, 0x0D, 0xEC, 0xA0, 0xA0, 0xB0, 0x30, 0xBE, 0x5F, 0x51, 0x51, 0xD9,
  451.     0xD9, 0x83, 0x82, 0x83, 0x82, 0xFB, 0xE8, 0x08, 0x88, 0x05, 0xE2, 0xBE, 0xA0, 0xB8, 0x20, 0x3E,
  452.     0x80, 0x80, 0x80, 0x80, 0xF8, 0xF7, 0x85, 0xB7, 0x95, 0xF5, 0x76, 0x54, 0x56, 0x54, 0x56, 0x3A,
  453.     0x2A, 0x2A, 0x2A, 0x39, 0xB6, 0xA5, 0xB6, 0xA5, 0x35
  454. ];
  455.  
  456. let missile = [
  457.     0x12, 0x19, 0x4D, 0x49, 0x53, 0x53, 0x49, 0x4C, 0x45, 0x20, 0x62, 0x79, 0x20, 0x44, 0x61, 0x76,
  458.     0x69, 0x64, 0x20, 0x57, 0x49, 0x4E, 0x54, 0x45, 0x52, 0x6C, 0x0C, 0x60, 0x00, 0x61, 0x00, 0x65,
  459.     0x08, 0x66, 0x0A, 0x67, 0x00, 0x6E, 0x01, 0xA2, 0xAD, 0xD0, 0x14, 0x70, 0x08, 0x30, 0x40, 0x12,
  460.     0x29, 0x60, 0x00, 0x61, 0x1C, 0xA2, 0xB0, 0xD0, 0x14, 0xA2, 0xB0, 0xD0, 0x14, 0x3E, 0x01, 0x12,
  461.     0x49, 0x70, 0x04, 0x40, 0x38, 0x6E, 0x00, 0x12, 0x4F, 0x70, 0xFC, 0x40, 0x00, 0x6E, 0x01, 0xD0,
  462.     0x14, 0xFC, 0x15, 0xFB, 0x07, 0x3B, 0x00, 0x12, 0x53, 0x62, 0x08, 0xE2, 0x9E, 0x12, 0x95, 0x3C,
  463.     0x00, 0x7C, 0xFE, 0x63, 0x1B, 0x82, 0x00, 0xA2, 0xB0, 0xD2, 0x31, 0x64, 0x00, 0xD2, 0x31, 0x73,
  464.     0xFF, 0xD2, 0x31, 0x3F, 0x00, 0x64, 0x01, 0x33, 0x03, 0x12, 0x6D, 0xD2, 0x31, 0x34, 0x01, 0x12,
  465.     0x91, 0x77, 0x05, 0x75, 0xFF, 0x82, 0x00, 0x63, 0x00, 0xA2, 0xAD, 0xD2, 0x34, 0x45, 0x00, 0x12,
  466.     0x97, 0x76, 0xFF, 0x36, 0x00, 0x12, 0x39, 0xA2, 0xB4, 0xF7, 0x33, 0xF2, 0x65, 0x63, 0x1B, 0x64,
  467.     0x0D, 0xF1, 0x29, 0xD3, 0x45, 0x73, 0x05, 0xF2, 0x29, 0xD3, 0x45, 0x12, 0xAB, 0x10, 0x38, 0x38,
  468.     0x10, 0x38, 0x7C, 0xFE
  469. ];
  470.  
  471. let pong = [
  472.     0x6A, 0x02, 0x6B, 0x0C, 0x6C, 0x3F, 0x6D, 0x0C, 0xA2, 0xEA, 0xDA, 0xB6, 0xDC, 0xD6, 0x6E, 0x00,
  473.     0x22, 0xD4, 0x66, 0x03, 0x68, 0x02, 0x60, 0x60, 0xF0, 0x15, 0xF0, 0x07, 0x30, 0x00, 0x12, 0x1A,
  474.     0xC7, 0x17, 0x77, 0x08, 0x69, 0xFF, 0xA2, 0xF0, 0xD6, 0x71, 0xA2, 0xEA, 0xDA, 0xB6, 0xDC, 0xD6,
  475.     0x60, 0x01, 0xE0, 0xA1, 0x7B, 0xFE, 0x60, 0x04, 0xE0, 0xA1, 0x7B, 0x02, 0x60, 0x1F, 0x8B, 0x02,
  476.     0xDA, 0xB6, 0x60, 0x0C, 0xE0, 0xA1, 0x7D, 0xFE, 0x60, 0x0D, 0xE0, 0xA1, 0x7D, 0x02, 0x60, 0x1F,
  477.     0x8D, 0x02, 0xDC, 0xD6, 0xA2, 0xF0, 0xD6, 0x71, 0x86, 0x84, 0x87, 0x94, 0x60, 0x3F, 0x86, 0x02,
  478.     0x61, 0x1F, 0x87, 0x12, 0x46, 0x02, 0x12, 0x78, 0x46, 0x3F, 0x12, 0x82, 0x47, 0x1F, 0x69, 0xFF,
  479.     0x47, 0x00, 0x69, 0x01, 0xD6, 0x71, 0x12, 0x2A, 0x68, 0x02, 0x63, 0x01, 0x80, 0x70, 0x80, 0xB5,
  480.     0x12, 0x8A, 0x68, 0xFE, 0x63, 0x0A, 0x80, 0x70, 0x80, 0xD5, 0x3F, 0x01, 0x12, 0xA2, 0x61, 0x02,
  481.     0x80, 0x15, 0x3F, 0x01, 0x12, 0xBA, 0x80, 0x15, 0x3F, 0x01, 0x12, 0xC8, 0x80, 0x15, 0x3F, 0x01,
  482.     0x12, 0xC2, 0x60, 0x20, 0xF0, 0x18, 0x22, 0xD4, 0x8E, 0x34, 0x22, 0xD4, 0x66, 0x3E, 0x33, 0x01,
  483.     0x66, 0x03, 0x68, 0xFE, 0x33, 0x01, 0x68, 0x02, 0x12, 0x16, 0x79, 0xFF, 0x49, 0xFE, 0x69, 0xFF,
  484.     0x12, 0xC8, 0x79, 0x01, 0x49, 0x02, 0x69, 0x01, 0x60, 0x04, 0xF0, 0x18, 0x76, 0x01, 0x46, 0x40,
  485.     0x76, 0xFE, 0x12, 0x6C, 0xA2, 0xF2, 0xFE, 0x33, 0xF2, 0x65, 0xF1, 0x29, 0x64, 0x14, 0x65, 0x00,
  486.     0xD4, 0x55, 0x74, 0x15, 0xF2, 0x29, 0xD4, 0x55, 0x00, 0xEE, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
  487.     0x80, 0x00, 0x00, 0x00, 0x00, 0x00
  488. ];
  489.  
  490. let pong2  = [
  491.     0x22, 0xF6, 0x6B, 0x0C, 0x6C, 0x3F, 0x6D, 0x0C, 0xA2, 0xEA, 0xDA, 0xB6, 0xDC, 0xD6, 0x6E, 0x00,
  492.     0x22, 0xD4, 0x66, 0x03, 0x68, 0x02, 0x60, 0x60, 0xF0, 0x15, 0xF0, 0x07, 0x30, 0x00, 0x12, 0x1A,
  493.     0xC7, 0x17, 0x77, 0x08, 0x69, 0xFF, 0xA2, 0xF0, 0xD6, 0x71, 0xA2, 0xEA, 0xDA, 0xB6, 0xDC, 0xD6,
  494.     0x60, 0x01, 0xE0, 0xA1, 0x7B, 0xFE, 0x60, 0x04, 0xE0, 0xA1, 0x7B, 0x02, 0x60, 0x1F, 0x8B, 0x02,
  495.     0xDA, 0xB6, 0x60, 0x0C, 0xE0, 0xA1, 0x7D, 0xFE, 0x60, 0x0D, 0xE0, 0xA1, 0x7D, 0x02, 0x60, 0x1F,
  496.     0x8D, 0x02, 0xDC, 0xD6, 0xA2, 0xF0, 0xD6, 0x71, 0x86, 0x84, 0x87, 0x94, 0x60, 0x3F, 0x86, 0x02,
  497.     0x61, 0x1F, 0x87, 0x12, 0x46, 0x00, 0x12, 0x78, 0x46, 0x3F, 0x12, 0x82, 0x47, 0x1F, 0x69, 0xFF,
  498.     0x47, 0x00, 0x69, 0x01, 0xD6, 0x71, 0x12, 0x2A, 0x68, 0x02, 0x63, 0x01, 0x80, 0x70, 0x80, 0xB5,
  499.     0x12, 0x8A, 0x68, 0xFE, 0x63, 0x0A, 0x80, 0x70, 0x80, 0xD5, 0x3F, 0x01, 0x12, 0xA2, 0x61, 0x02,
  500.     0x80, 0x15, 0x3F, 0x01, 0x12, 0xBA, 0x80, 0x15, 0x3F, 0x01, 0x12, 0xC8, 0x80, 0x15, 0x3F, 0x01,
  501.     0x12, 0xC2, 0x60, 0x20, 0xF0, 0x18, 0x22, 0xD4, 0x8E, 0x34, 0x22, 0xD4, 0x66, 0x3E, 0x33, 0x01,
  502.     0x66, 0x03, 0x68, 0xFE, 0x33, 0x01, 0x68, 0x02, 0x12, 0x16, 0x79, 0xFF, 0x49, 0xFE, 0x69, 0xFF,
  503.     0x12, 0xC8, 0x79, 0x01, 0x49, 0x02, 0x69, 0x01, 0x60, 0x04, 0xF0, 0x18, 0x76, 0x01, 0x46, 0x40,
  504.     0x76, 0xFE, 0x12, 0x6C, 0xA2, 0xF2, 0xFE, 0x33, 0xF2, 0x65, 0xF1, 0x29, 0x64, 0x14, 0x65, 0x00,
  505.     0xD4, 0x55, 0x74, 0x15, 0xF2, 0x29, 0xD4, 0x55, 0x00, 0xEE, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
  506.     0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6B, 0x20, 0x6C, 0x00, 0xA2, 0xEA, 0xDB, 0xC1, 0x7C, 0x01,
  507.     0x3C, 0x20, 0x12, 0xFC, 0x6A, 0x00, 0x00, 0xEE
  508. ];
  509.  
  510. let puzzle = [
  511.     0x6A, 0x12, 0x6B, 0x01, 0x61, 0x10, 0x62, 0x00, 0x60, 0x00, 0xA2, 0xB0, 0xD1, 0x27, 0xF0, 0x29,
  512.     0x30, 0x00, 0xDA, 0xB5, 0x71, 0x08, 0x7A, 0x08, 0x31, 0x30, 0x12, 0x24, 0x61, 0x10, 0x72, 0x08,
  513.     0x6A, 0x12, 0x7B, 0x08, 0xA3, 0x00, 0xF0, 0x1E, 0xF0, 0x55, 0x70, 0x01, 0x30, 0x10, 0x12, 0x0A,
  514.     0x6A, 0x12, 0x6B, 0x01, 0x6C, 0x00, 0x62, 0xFF, 0xC0, 0x06, 0x70, 0x02, 0x22, 0x52, 0x72, 0xFF,
  515.     0x32, 0x00, 0x12, 0x38, 0x6E, 0x00, 0x6E, 0x00, 0xF0, 0x0A, 0x22, 0x52, 0x7E, 0x01, 0x7E, 0x01,
  516.     0x12, 0x48, 0x84, 0xA0, 0x85, 0xB0, 0x86, 0xC0, 0x30, 0x02, 0x12, 0x64, 0x45, 0x01, 0x12, 0x64,
  517.     0x75, 0xF8, 0x76, 0xFC, 0x30, 0x08, 0x12, 0x70, 0x45, 0x19, 0x12, 0x70, 0x75, 0x08, 0x76, 0x04,
  518.     0x30, 0x06, 0x12, 0x7C, 0x44, 0x12, 0x12, 0x7C, 0x74, 0xF8, 0x76, 0xFF, 0x30, 0x04, 0x12, 0x88,
  519.     0x44, 0x2A, 0x12, 0x88, 0x74, 0x08, 0x76, 0x01, 0xA3, 0x00, 0xF6, 0x1E, 0xF0, 0x65, 0x81, 0x00,
  520.     0x60, 0x00, 0xA3, 0x00, 0xF6, 0x1E, 0xF0, 0x55, 0xA3, 0x00, 0xFC, 0x1E, 0x80, 0x10, 0xF0, 0x55,
  521.     0xF1, 0x29, 0xD4, 0x55, 0xDA, 0xB5, 0x8A, 0x40, 0x8B, 0x50, 0x8C, 0x60, 0x00, 0xEE, 0xEE, 0x5E,
  522.     0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE
  523. ]
  524.  
  525. let spacewars = [
  526.     0x16, 0xD1, 0x77, 0x84, 0x84, 0x67, 0x14, 0x14, 0xE4, 0x18, 0xA4, 0xA5, 0x3D, 0x25, 0x24, 0x24,
  527.     0x6F, 0x88, 0x08, 0x0E, 0x08, 0x88, 0x6F, 0x89, 0x8A, 0x8A, 0xAB, 0xAA, 0xAA, 0x52, 0x8C, 0x52,
  528.     0x52, 0xDC, 0x54, 0x52, 0x52, 0xF0, 0x80, 0x40, 0x40, 0x20, 0x10, 0xF0, 0x30, 0x30, 0x3C, 0x3C,
  529.     0x3C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3C, 0x3C, 0x3C, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
  530.     0xF0, 0xF0, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0xFC, 0xFF, 0x60, 0x40,
  531.     0x0E, 0x02, 0x3F, 0xFF, 0x02, 0x0E, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
  532.     0xFF, 0xFF, 0xFF, 0x42, 0xE0, 0x64, 0x0C, 0x60, 0x46, 0x0C, 0x1F, 0x16, 0x00, 0x4C, 0x91, 0xFF,
  533.     0x91, 0x91, 0x9F, 0x91, 0x91, 0xFF, 0x89, 0xF9, 0x89, 0x89, 0xFF, 0x18, 0x3C, 0x3E, 0x1E, 0x0C,
  534.     0x00, 0x20, 0x70, 0xF8, 0xF9, 0xF3, 0x63, 0x4A, 0x84, 0x22, 0x89, 0x14, 0x40, 0xA5, 0x00, 0x95,
  535.     0x00, 0x24, 0x91, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x7E,
  536.     0x3C, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x3C, 0x7E, 0x7E, 0x7E, 0x3C, 0xA0, 0x40, 0xA0, 0x88, 0x50,
  537.     0x20, 0x50, 0x88, 0x82, 0x54, 0x38, 0x7C, 0x38, 0x54, 0x82, 0x3C, 0x3C, 0xC3, 0xC3, 0xC3, 0xC3,
  538.     0xC3, 0xC3, 0xC3, 0x3C, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
  539.     0xFF, 0xFF, 0x03, 0x03, 0xFF, 0xFF, 0xC0, 0xC0, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x03, 0x03,
  540.     0xFF, 0xFF, 0x03, 0x03, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x3C, 0x38, 0xAA, 0x89, 0x8A,
  541.     0x8A, 0x72, 0x22, 0x22, 0x22, 0x22, 0x21, 0xC8, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0xC7,
  542.     0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x8B, 0x88, 0x88, 0x88, 0xA8, 0xA8, 0xA8,
  543.     0xA8, 0x53, 0xE8, 0x8C, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x89, 0xE8, 0x80, 0x80, 0x80, 0x80, 0x80,
  544.     0x80, 0x80, 0x80, 0x80, 0x81, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0xF9, 0xC7, 0x28, 0x28,
  545.     0x28, 0x27, 0x20, 0x20, 0x20, 0xCF, 0xBE, 0x20, 0x20, 0x20, 0x3C, 0xA0, 0xA0, 0xA0, 0x3E, 0xF7,
  546.     0x94, 0x94, 0xF5, 0x94, 0x97, 0xBD, 0x24, 0x3C, 0xA4, 0xA4, 0xA5, 0xE9, 0x8D, 0x8D, 0x8B, 0x8B,
  547.     0xE9, 0x70, 0x50, 0x10, 0x27, 0x00, 0x20, 0xC2, 0x22, 0x10, 0xF0, 0x20, 0xC0, 0xF4, 0x84, 0x80,
  548.     0xF0, 0x80, 0xF0, 0x81, 0xE0, 0x82, 0xD0, 0x60, 0x05, 0xE0, 0xA1, 0x72, 0xFF, 0x60, 0x07, 0xE0,
  549.     0xA1, 0x71, 0xFF, 0x60, 0x08, 0xE0, 0xA1, 0x72, 0x01, 0x60, 0x09, 0xE0, 0xA1, 0x71, 0x01, 0x41,
  550.     0x00, 0x61, 0x01, 0x41, 0x24, 0x61, 0x23, 0x42, 0x00, 0x62, 0x01, 0x42, 0x15, 0x62, 0x14, 0xA2,
  551.     0x4A, 0xDE, 0xD6, 0x8E, 0x10, 0x8D, 0x20, 0xDE, 0xD6, 0x00, 0xEE, 0x81, 0x90, 0x82, 0x80, 0x23,
  552.     0xBF, 0x60, 0x00, 0x41, 0x38, 0x61, 0x37, 0x41, 0x23, 0x61, 0x24, 0x42, 0x00, 0x62, 0x01, 0x42,
  553.     0x15, 0x62, 0x14, 0xA2, 0x50, 0xD9, 0x86, 0x89, 0x10, 0x88, 0x20, 0xD9, 0x86, 0x00, 0xEE, 0xC0,
  554.     0x1C, 0xB3, 0xC5, 0x00, 0xEE, 0x71, 0x01, 0x00, 0xEE, 0x71, 0xFF, 0x00, 0xEE, 0x00, 0xEE, 0x00,
  555.     0xEE, 0x23, 0xE3, 0x00, 0xEE, 0x23, 0xE3, 0x00, 0xEE, 0x00, 0xEE, 0x00, 0xEE, 0x00, 0xEE, 0x00,
  556.     0xEE, 0x00, 0xEE, 0x80, 0x80, 0x80, 0xD7, 0x4F, 0x01, 0x13, 0xEF, 0x72, 0xFF, 0x13, 0xF1, 0x72,
  557.     0x01, 0x00, 0xEE, 0x60, 0x06, 0xE0, 0x9E, 0x00, 0xEE, 0x8C, 0xE0, 0x7C, 0x09, 0x8B, 0xD0, 0x7B,
  558.     0x03, 0xA2, 0x56, 0xDC, 0xB1, 0x6A, 0x01, 0x00, 0xEE, 0xA2, 0x56, 0xDC, 0xB1, 0x7C, 0x01, 0x3C,
  559.     0x3F, 0x14, 0x19, 0x6A, 0x00, 0x6F, 0x00, 0x00, 0xEE, 0xDC, 0xB1, 0x4F, 0x00, 0x00, 0xEE, 0x6A,
  560.     0x00, 0x6F, 0x00, 0x00, 0xEE, 0x87, 0x90, 0x60, 0x02, 0x87, 0x05, 0x86, 0x80, 0x76, 0x03, 0xA2,
  561.     0x56, 0xD7, 0x61, 0x65, 0x01, 0x00, 0xEE, 0xA2, 0x56, 0xD7, 0x61, 0x60, 0x01, 0x87, 0x05, 0x37,
  562.     0x01, 0x14, 0x49, 0x65, 0x00, 0x6F, 0x00, 0x00, 0xEE, 0xD7, 0x61, 0x4F, 0x00, 0x00, 0xEE, 0x65,
  563.     0x00, 0x6F, 0x00, 0x00, 0xEE, 0x00, 0xE0, 0xA2, 0x02, 0x60, 0x02, 0x61, 0x02, 0xD0, 0x17, 0xA2,
  564.     0x09, 0x60, 0x0A, 0x61, 0x02, 0xD0, 0x17, 0xA2, 0x10, 0x60, 0x12, 0x61, 0x02, 0xD0, 0x17, 0xA2,
  565.     0x17, 0x60, 0x1B, 0x61, 0x06, 0xD0, 0x17, 0xA2, 0x1E, 0x60, 0x23, 0x61, 0x06, 0xD0, 0x17, 0xA2,
  566.     0x25, 0x60, 0x2B, 0x61, 0x06, 0xD0, 0x17, 0xA2, 0x2C, 0x6E, 0x01, 0x6D, 0x10, 0xDE, 0xDF, 0xA2,
  567.     0x3B, 0x6E, 0x09, 0x6D, 0x10, 0xDE, 0xDF, 0x6E, 0x01, 0x6D, 0x10, 0x00, 0xEE, 0x00, 0xEE, 0xA2,
  568.     0x2C, 0xDE, 0xDF, 0x7E, 0x08, 0xA2, 0x3B, 0xDE, 0xDF, 0x60, 0x07, 0x8E, 0x05, 0xA2, 0x2C, 0xDE,
  569.     0xDF, 0x7E, 0x08, 0xA2, 0x3B, 0xDE, 0xDF, 0x60, 0x08, 0x8E, 0x05, 0x60, 0x14, 0x24, 0xC1, 0x00,
  570.     0xEE, 0xF0, 0x15, 0xFF, 0x07, 0x3F, 0x00, 0x14, 0xC3, 0x00, 0xEE, 0x6A, 0x00, 0x65, 0x00, 0x00,
  571.     0xE0, 0x25, 0x5D, 0x25, 0x19, 0x60, 0x1C, 0x61, 0x0D, 0xD0, 0x1C, 0x25, 0x19, 0x60, 0x1C, 0x61,
  572.     0x01, 0xD0, 0x1C, 0x60, 0x00, 0x61, 0x00, 0xA2, 0xED, 0xD0, 0x11, 0x70, 0x08, 0x30, 0x40, 0x14,
  573.     0xE9, 0x60, 0x00, 0x61, 0x1A, 0xD0, 0x11, 0x70, 0x08, 0x30, 0x40, 0x14, 0xF5, 0xA2, 0xEC, 0x60,
  574.     0x1C, 0x61, 0x1D, 0xD0, 0x11, 0x25, 0x4B, 0x6E, 0x05, 0x6D, 0x0A, 0x69, 0x33, 0x68, 0x0A, 0xA2,
  575.     0x4A, 0xDE, 0xD6, 0xA2, 0x50, 0xD9, 0x86, 0x00, 0xEE, 0xC0, 0x1C, 0xB5, 0x21, 0x00, 0xEE, 0x00,
  576.     0xEE, 0xA2, 0x57, 0x00, 0xEE, 0xA2, 0x63, 0x00, 0xEE, 0xA2, 0x6F, 0x00, 0xEE, 0xA2, 0x7B, 0x00,
  577.     0xEE, 0xA2, 0x87, 0x00, 0xEE, 0xA2, 0x93, 0x00, 0xEE, 0xA2, 0x9F, 0x00, 0xEE, 0xA2, 0x87, 0x00,
  578.     0xEE, 0xA2, 0x93, 0x00, 0xEE, 0xA2, 0x9F, 0x00, 0xEE, 0x00, 0xEE, 0x60, 0x18, 0x61, 0x1B, 0xF3,
  579.     0x29, 0xD0, 0x15, 0x60, 0x23, 0x61, 0x1B, 0xF4, 0x29, 0xD0, 0x15, 0x00, 0xEE, 0x43, 0x00, 0xA2,
  580.     0xBA, 0x43, 0x01, 0xA2, 0xC5, 0x43, 0x02, 0xA2, 0xD0, 0x43, 0x03, 0xA2, 0xDB, 0x60, 0x11, 0x61,
  581.     0x0A, 0xD0, 0x1B, 0xA2, 0xE6, 0x60, 0x1B, 0xD0, 0x16, 0x44, 0x00, 0xA2, 0xBA, 0x44, 0x01, 0xA2,
  582.     0xC5, 0x44, 0x02, 0xA2, 0xD0, 0x44, 0x03, 0xA2, 0xDB, 0x60, 0x25, 0x61, 0x0A, 0xD0, 0x1B, 0x60,
  583.     0x64, 0x24, 0xC1, 0x26, 0x09, 0x00, 0xE0, 0x00, 0xEE, 0x74, 0x01, 0x81, 0xE0, 0x82, 0xD0, 0xA2,
  584.     0x4A, 0xDE, 0xD6, 0x71, 0x01, 0x72, 0x02, 0x60, 0x0A, 0xA2, 0xAB, 0xD1, 0x23, 0xF0, 0x18, 0x24,
  585.     0xC1, 0xD1, 0x23, 0x71, 0xFF, 0x72, 0xFF, 0xA2, 0xAE, 0xD1, 0x25, 0xF0, 0x18, 0x24, 0xC1, 0xD1,
  586.     0x25, 0x71, 0xFF, 0x72, 0xFF, 0xA2, 0xB3, 0xD1, 0x27, 0xF0, 0x18, 0x24, 0xC1, 0xD1, 0x27, 0x00,
  587.     0xEE, 0x73, 0x01, 0x81, 0x90, 0x82, 0x80, 0xA2, 0x50, 0xD9, 0x86, 0x71, 0x01, 0x72, 0x02, 0x60,
  588.     0x0A, 0xA2, 0xAB, 0xD1, 0x23, 0xF0, 0x18, 0x24, 0xC1, 0xD1, 0x23, 0x71, 0xFF, 0x72, 0xFF, 0xA2,
  589.     0xAE, 0xD1, 0x25, 0xF0, 0x18, 0x24, 0xC1, 0xD1, 0x25, 0x71, 0xFF, 0x72, 0xFF, 0xA2, 0xB3, 0xD1,
  590.     0x27, 0xF0, 0x18, 0x24, 0xC1, 0xD1, 0x27, 0x00, 0xEE, 0x43, 0x03, 0x26, 0x13, 0x44, 0x03, 0x26,
  591.     0x6D, 0x00, 0xEE, 0x60, 0x09, 0x61, 0x18, 0xA3, 0x3F, 0xD0, 0x16, 0xA3, 0x45, 0x70, 0x08, 0xD0,
  592.     0x16, 0xA3, 0x4B, 0x70, 0x08, 0xD0, 0x16, 0xA3, 0x51, 0x70, 0x08, 0xD0, 0x16, 0xA3, 0x57, 0x70,
  593.     0x08, 0xD0, 0x16, 0xA3, 0x5D, 0x70, 0x08, 0xD0, 0x16, 0x60, 0x01, 0x61, 0x00, 0xA2, 0xEE, 0xD0,
  594.     0x19, 0xA2, 0xF7, 0x70, 0x08, 0xD0, 0x19, 0xA3, 0x00, 0x70, 0x08, 0xD0, 0x19, 0xA3, 0x09, 0x70,
  595.     0x1D, 0xD0, 0x19, 0xA3, 0x12, 0x70, 0x08, 0xD0, 0x19, 0xA3, 0x1B, 0x70, 0x08, 0xD0, 0x19, 0x60,
  596.     0x07, 0x24, 0xC1, 0x62, 0x06, 0xE2, 0x9E, 0x16, 0x39, 0x26, 0xC7, 0x00, 0xEE, 0x60, 0x09, 0x61,
  597.     0x18, 0xA3, 0x3F, 0xD0, 0x16, 0xA3, 0x45, 0x70, 0x08, 0xD0, 0x16, 0xA3, 0x4B, 0x70, 0x08, 0xD0,
  598.     0x16, 0xA3, 0x51, 0x70, 0x08, 0xD0, 0x16, 0xA3, 0x57, 0x70, 0x08, 0xD0, 0x16, 0xA3, 0x5D, 0x70,
  599.     0x08, 0xD0, 0x16, 0x60, 0x01, 0x61, 0x00, 0xA2, 0xEE, 0xD0, 0x19, 0xA2, 0xF7, 0x70, 0x08, 0xD0,
  600.     0x19, 0xA3, 0x00, 0x70, 0x08, 0xD0, 0x19, 0xA3, 0x24, 0x70, 0x17, 0xD0, 0x19, 0xA3, 0x2D, 0x70,
  601.     0x08, 0xD0, 0x19, 0xA3, 0x36, 0x70, 0x08, 0xD0, 0x19, 0x60, 0x07, 0x24, 0xC1, 0x62, 0x06, 0xE2,
  602.     0x9E, 0x16, 0x93, 0x26, 0xC7, 0x00, 0xEE, 0x63, 0x00, 0x64, 0x00, 0x00, 0xE0, 0x25, 0x5D, 0x00,
  603.     0xEE, 0x24, 0x55, 0x24, 0x9F, 0x60, 0x06, 0xE0, 0x9E, 0x16, 0xD3, 0x24, 0xCB, 0x23, 0x63, 0x4F,
  604.     0x00, 0x16, 0xE7, 0x25, 0x99, 0x24, 0xCB, 0x23, 0x9B, 0x4F, 0x00, 0x16, 0xF1, 0x25, 0xD1, 0x24,
  605.     0xCB, 0x3A, 0x00, 0x24, 0x09, 0x4A, 0x00, 0x23, 0xF3, 0x35, 0x00, 0x24, 0x37, 0x45, 0x00, 0x24,
  606.     0x25, 0x16, 0xDD, 0x00, 0xEE
  607. ];
  608.  
  609. let syzygy = [
  610.     0x12, 0x12, 0x8D, 0x8D, 0x20, 0xA9, 0x31, 0x39, 0x39, 0x30, 0x20, 0x52, 0x54, 0x54, 0x20, 0x8E,
  611.     0x8E, 0x00, 0x24, 0xB6, 0x24, 0xDA, 0x60, 0x0F, 0xE0, 0xA1, 0x12, 0x24, 0x60, 0x0E, 0xE0, 0xA1,
  612.     0x12, 0x28, 0x12, 0x16, 0x24, 0xDA, 0x12, 0x2C, 0x00, 0xE0, 0x12, 0x2C, 0xC1, 0x1F, 0x71, 0x10,
  613.     0xC2, 0x0F, 0x72, 0x08, 0xC3, 0x03, 0x85, 0x30, 0x86, 0x10, 0x87, 0x20, 0x88, 0x30, 0x48, 0x00,
  614.     0x77, 0x01, 0x48, 0x01, 0x77, 0xFF, 0x48, 0x02, 0x76, 0x01, 0x48, 0x03, 0x76, 0xFF, 0xA5, 0x4C,
  615.     0xD1, 0x21, 0xD6, 0x71, 0x64, 0xF0, 0x69, 0xF1, 0xA8, 0x00, 0xF4, 0x1E, 0x80, 0x30, 0xF0, 0x55,
  616.     0x74, 0x01, 0xA8, 0x00, 0xF4, 0x1E, 0x60, 0x01, 0xF0, 0x55, 0x25, 0x22, 0x6A, 0x00, 0x7A, 0x00,
  617.     0xF0, 0x07, 0x30, 0x00, 0x12, 0x9C, 0x3D, 0x00, 0x12, 0x94, 0x60, 0x00, 0xF0, 0x29, 0xDB, 0xC5,
  618.     0x3F, 0x01, 0x12, 0x8C, 0xDB, 0xC5, 0x25, 0x22, 0xF0, 0x15, 0x12, 0x9C, 0xFE, 0x15, 0x6D, 0x01,
  619.     0x6E, 0x00, 0x12, 0x9C, 0x80, 0xE0, 0xF0, 0x29, 0xDB, 0xC5, 0x25, 0x22, 0x60, 0x03, 0xE0, 0xA1,
  620.     0x63, 0x00, 0x60, 0x06, 0xE0, 0xA1, 0x63, 0x01, 0x60, 0x07, 0xE0, 0xA1, 0x63, 0x02, 0x60, 0x08,
  621.     0xE0, 0xA1, 0x63, 0x03, 0x43, 0x00, 0x72, 0xFF, 0x43, 0x01, 0x72, 0x01, 0x43, 0x02, 0x71, 0xFF,
  622.     0x43, 0x03, 0x71, 0x01, 0xA5, 0x4C, 0xD1, 0x21, 0x3F, 0x01, 0x13, 0x24, 0x3D, 0x01, 0x13, 0x88,
  623.     0x60, 0x3F, 0x81, 0x02, 0x60, 0x1F, 0x82, 0x02, 0x80, 0xB0, 0x80, 0x17, 0x3F, 0x01, 0x13, 0x88,
  624.     0x80, 0xB0, 0x70, 0x03, 0x80, 0x15, 0x3F, 0x01, 0x13, 0x88, 0x80, 0xC0, 0x80, 0x27, 0x3F, 0x01,
  625.     0x13, 0x88, 0x80, 0xC0, 0x70, 0x04, 0x80, 0x25, 0x3F, 0x01, 0x13, 0x88, 0x60, 0x04, 0xF0, 0x18,
  626.     0xCE, 0x07, 0x7E, 0x02, 0x8A, 0xE4, 0xA5, 0x4C, 0xD1, 0x21, 0x60, 0x00, 0xF0, 0x29, 0xDB, 0xC5,
  627.     0x80, 0xE0, 0xF0, 0x29, 0xDB, 0xC5, 0x60, 0x30, 0xF0, 0x15, 0xF0, 0x07, 0x30, 0x00, 0x13, 0x1A,
  628.     0xA5, 0x4C, 0xD1, 0x21, 0x93, 0x50, 0x13, 0x3E, 0x74, 0x01, 0xA8, 0x00, 0xF4, 0x1E, 0x80, 0x30,
  629.     0xF0, 0x55, 0x74, 0x01, 0xA8, 0x00, 0xF4, 0x1E, 0x60, 0x00, 0xF0, 0x55, 0x85, 0x30, 0xA8, 0x00,
  630.     0xF4, 0x1E, 0xF0, 0x65, 0x70, 0x01, 0xF0, 0x55, 0x4A, 0x00, 0x13, 0x58, 0x60, 0x0C, 0x70, 0xFF,
  631.     0x30, 0x00, 0x13, 0x4E, 0x7A, 0xFF, 0x12, 0x70, 0xA5, 0x4C, 0xD6, 0x71, 0x48, 0x00, 0x77, 0xFF,
  632.     0x48, 0x01, 0x77, 0x01, 0x48, 0x02, 0x76, 0xFF, 0x48, 0x03, 0x76, 0x01, 0xA8, 0x00, 0xF9, 0x1E,
  633.     0xF0, 0x65, 0x70, 0xFF, 0xF0, 0x55, 0x30, 0x00, 0x12, 0x70, 0x79, 0x01, 0xA8, 0x00, 0xF9, 0x1E,
  634.     0xF0, 0x65, 0x88, 0x00, 0x79, 0x01, 0x12, 0x70, 0x60, 0x0D, 0xF0, 0x18, 0x60, 0x0B, 0xE0, 0x9E,
  635.     0x13, 0x8E, 0x6B, 0x01, 0x6C, 0x00, 0x6D, 0x00, 0x7B, 0x01, 0x3B, 0x0A, 0x13, 0xAA, 0x6B, 0x00,
  636.     0x7C, 0x01, 0x3C, 0x0A, 0x13, 0xAA, 0x6C, 0x00, 0x7D, 0x01, 0xA5, 0x4C, 0xD6, 0x71, 0x48, 0x00,
  637.     0x77, 0xFF, 0x48, 0x01, 0x77, 0x01, 0x48, 0x02, 0x76, 0xFF, 0x48, 0x03, 0x76, 0x01, 0xA8, 0x00,
  638.     0xF9, 0x1E, 0xF0, 0x65, 0x70, 0xFF, 0xF0, 0x55, 0x30, 0x00, 0x13, 0x98, 0x99, 0x40, 0x13, 0xDE,
  639.     0x79, 0x01, 0xA8, 0x00, 0xF9, 0x1E, 0xF0, 0x65, 0x88, 0x00, 0x79, 0x01, 0x13, 0x98, 0x00, 0xE0,
  640.     0x66, 0x11, 0x67, 0x09, 0x68, 0x2F, 0x69, 0x17, 0xA5, 0x52, 0xD6, 0x7E, 0xD8, 0x7E, 0x77, 0xFF,
  641.     0xA5, 0x4E, 0xD6, 0x71, 0xD6, 0x91, 0x76, 0x08, 0xD6, 0x71, 0xD6, 0x91, 0x76, 0x08, 0xD6, 0x71,
  642.     0xD6, 0x91, 0x76, 0x08, 0xA5, 0x50, 0xD6, 0x71, 0xD6, 0x91, 0xA5, 0x9E, 0x66, 0x13, 0x67, 0x11,
  643.     0x24, 0x9A, 0xA5, 0xAE, 0xF3, 0x65, 0x93, 0xD0, 0x14, 0x24, 0x80, 0x30, 0x80, 0xD5, 0x3F, 0x01,
  644.     0x14, 0x3A, 0x14, 0x44, 0x92, 0xC0, 0x14, 0x32, 0x80, 0x20, 0x80, 0xC5, 0x3F, 0x01, 0x14, 0x3A,
  645.     0x14, 0x44, 0x80, 0x10, 0x80, 0xB5, 0x3F, 0x00, 0x14, 0x44, 0xA5, 0xAE, 0x83, 0xD0, 0x82, 0xC0,
  646.     0x81, 0xB0, 0xF3, 0x55, 0xA5, 0xAE, 0xF3, 0x65, 0x66, 0x13, 0x77, 0xF9, 0x8D, 0x30, 0x8C, 0x20,
  647.     0x8B, 0x10, 0xA5, 0xA4, 0x24, 0x9A, 0xC1, 0x3F, 0xC2, 0x1F, 0x60, 0x0D, 0x80, 0x15, 0x3F, 0x00,
  648.     0x14, 0x7C, 0x60, 0x30, 0x80, 0x17, 0x3F, 0x00, 0x14, 0x7C, 0x60, 0x03, 0x80, 0x25, 0x3F, 0x00,
  649.     0x14, 0x7C, 0x60, 0x18, 0x80, 0x27, 0x3F, 0x00, 0x14, 0x7C, 0x14, 0x82, 0xC3, 0x0F, 0xF3, 0x29,
  650.     0xD1, 0x25, 0x60, 0x0F, 0xE0, 0xA1, 0x14, 0x90, 0x60, 0x0E, 0xE0, 0xA1, 0x14, 0x96, 0x14, 0x56,
  651.     0x00, 0xE0, 0x24, 0xB6, 0x12, 0x2C, 0x00, 0xE0, 0x12, 0x2C, 0xD6, 0x75, 0xA5, 0xAA, 0x76, 0x02,
  652.     0xD6, 0x74, 0xFD, 0x29, 0x76, 0x0A, 0xD6, 0x75, 0xFC, 0x29, 0x76, 0x05, 0xD6, 0x75, 0xFB, 0x29,
  653.     0x76, 0x05, 0xD6, 0x75, 0x00, 0xEE, 0xA5, 0x4E, 0x61, 0x00, 0x62, 0x00, 0x66, 0x1F, 0xD1, 0x21,
  654.     0xD1, 0x61, 0x71, 0x08, 0x31, 0x40, 0x14, 0xBE, 0xA5, 0x52, 0x62, 0x01, 0x65, 0x3F, 0xD1, 0x2F,
  655.     0xD5, 0x2F, 0x72, 0x0F, 0xD1, 0x2F, 0xD5, 0x2F, 0x00, 0xEE, 0x61, 0x0C, 0x62, 0x07, 0xA5, 0x62,
  656.     0xD1, 0x2A, 0xA5, 0x6C, 0x71, 0x06, 0xD1, 0x2A, 0xA5, 0x76, 0x71, 0x06, 0xD1, 0x2A, 0xA5, 0x6C,
  657.     0x71, 0x06, 0xD1, 0x2A, 0xA5, 0x80, 0x71, 0x06, 0xD1, 0x2A, 0xA5, 0x6C, 0x71, 0x06, 0xD1, 0x2A,
  658.     0x61, 0x0E, 0x62, 0x18, 0xA5, 0x8A, 0xD1, 0x23, 0xA5, 0x8E, 0x71, 0x08, 0x72, 0xFF, 0xD1, 0x24,
  659.     0x71, 0x09, 0x72, 0xFE, 0xA5, 0x92, 0xD1, 0x26, 0x71, 0x06, 0x72, 0x01, 0xA5, 0x98, 0xD1, 0x25,
  660.     0x00, 0xEE, 0x6D, 0xC5, 0xCB, 0x3F, 0x8E, 0xB0, 0x8E, 0xD4, 0x4F, 0x01, 0x15, 0x24, 0x7B, 0x01,
  661.     0x6D, 0xE6, 0xCC, 0x1F, 0x8E, 0xC0, 0x8E, 0xD4, 0x4F, 0x01, 0x15, 0x32, 0x7C, 0x01, 0x6D, 0x00,
  662.     0xCE, 0x3F, 0x7E, 0x40, 0xFE, 0x15, 0xCE, 0x3F, 0x7E, 0x40, 0x00, 0xEE, 0x80, 0x00, 0xFF, 0x00,
  663.     0xFE, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
  664.     0x80, 0x80, 0x1F, 0x10, 0x10, 0x10, 0x1F, 0x01, 0x01, 0x01, 0x01, 0x1F, 0x11, 0x11, 0x11, 0x11,
  665.     0x1F, 0x04, 0x04, 0x04, 0x04, 0x04, 0x1F, 0x01, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x1F,
  666.     0x1F, 0x11, 0x10, 0x10, 0x10, 0x13, 0x11, 0x11, 0x11, 0x1F, 0x05, 0x05, 0x02, 0x00, 0x71, 0x51,
  667.     0x51, 0x75, 0x0C, 0x12, 0x1E, 0x14, 0x12, 0x09, 0x14, 0x3E, 0x15, 0x15, 0x2A, 0x00, 0x77, 0x44,
  668.     0x24, 0x14, 0x77, 0x00, 0x57, 0x52, 0x72, 0x52, 0x57, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00,
  669.     0x00, 0x00
  670. ];
  671.  
  672. let tank = [
  673.     0x12, 0x30, 0x76, 0xFB, 0x60, 0x20, 0x80, 0x65, 0x4F, 0x00, 0x66, 0x00, 0x13, 0x84, 0x00, 0xFF,
  674.     0x00, 0x00, 0x00, 0x01, 0x00, 0x0C, 0x0A, 0x00, 0x19, 0x02, 0x04, 0x06, 0x08, 0x02, 0x02, 0x03,
  675.     0x2C, 0x00, 0x0F, 0x00, 0x02, 0x05, 0x2E, 0x08, 0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00,
  676.     0x6E, 0x00, 0x6D, 0xA0, 0x6A, 0x08, 0x69, 0x06, 0x68, 0x04, 0x67, 0x02, 0x66, 0x19, 0x64, 0x10,
  677.     0x63, 0x0C, 0x62, 0x00, 0x61, 0x06, 0xA2, 0x12, 0xFA, 0x55, 0x23, 0xD4, 0x60, 0x40, 0xF0, 0x15,
  678.     0xF0, 0x07, 0x30, 0x00, 0x12, 0x50, 0x23, 0xD4, 0x23, 0x0A, 0x23, 0x62, 0xA2, 0x12, 0xF5, 0x65,
  679.     0x22, 0xAE, 0x22, 0xC6, 0x22, 0xEC, 0x3F, 0x01, 0x23, 0x14, 0x3F, 0x01, 0x22, 0xEC, 0x3F, 0x01,
  680.     0x22, 0xEC, 0x3F, 0x01, 0x22, 0x7C, 0x4F, 0x01, 0x13, 0x66, 0x12, 0x62, 0xA2, 0x12, 0xF5, 0x65,
  681.     0x46, 0x00, 0x35, 0x00, 0x12, 0x88, 0x13, 0x8C, 0xE7, 0xA1, 0x62, 0x09, 0xE8, 0xA1, 0x62, 0x04,
  682.     0xE9, 0xA1, 0x62, 0x06, 0xEA, 0xA1, 0x62, 0x01, 0x42, 0x00, 0x00, 0xEE, 0x22, 0xAE, 0x81, 0x20,
  683.     0x23, 0x9A, 0x23, 0xAC, 0x6C, 0x01, 0x62, 0x00, 0x6F, 0x00, 0xA2, 0x12, 0xF5, 0x55, 0xA3, 0xFF,
  684.     0x41, 0x01, 0x60, 0x00, 0x41, 0x04, 0x60, 0x13, 0x41, 0x06, 0x60, 0x0D, 0x41, 0x09, 0x60, 0x06,
  685.     0xF0, 0x1E, 0xD3, 0x47, 0x00, 0xEE, 0x60, 0x05, 0xE0, 0x9E, 0x00, 0xEE, 0x45, 0x0F, 0x00, 0xEE,
  686.     0x65, 0x0F, 0x76, 0xFF, 0xA2, 0x12, 0xF5, 0x55, 0x74, 0x03, 0x73, 0x03, 0x23, 0x9A, 0x23, 0x9A,
  687.     0x23, 0x9A, 0xA2, 0x23, 0xF5, 0x55, 0xA4, 0x19, 0xD3, 0x41, 0x00, 0xEE, 0xA2, 0x23, 0xF5, 0x65,
  688.     0x45, 0x00, 0x00, 0xEE, 0xA4, 0x19, 0xD3, 0x41, 0x23, 0x9A, 0x6C, 0x02, 0x23, 0xBE, 0x4B, 0xBB,
  689.     0x13, 0x0A, 0xD3, 0x41, 0xA2, 0x23, 0xF5, 0x55, 0x00, 0xEE, 0x65, 0x00, 0x60, 0x00, 0xA2, 0x17,
  690.     0xF0, 0x55, 0x13, 0x04, 0xA2, 0x1D, 0xF5, 0x65, 0x35, 0x0F, 0x13, 0x44, 0xA4, 0x1A, 0xD3, 0x45,
  691.     0x32, 0x00, 0x13, 0x32, 0xC1, 0x03, 0xA2, 0x19, 0xF1, 0x1E, 0xF0, 0x65, 0x81, 0x00, 0xC2, 0x0F,
  692.     0x72, 0x01, 0x23, 0x9A, 0xA4, 0x1A, 0x6C, 0x03, 0x72, 0xFF, 0x6F, 0x00, 0xD3, 0x45, 0xA2, 0x1D,
  693.     0xF5, 0x55, 0x00, 0xEE, 0xC4, 0x07, 0xA4, 0x1F, 0xF4, 0x1E, 0xF0, 0x65, 0x83, 0x00, 0xA4, 0x27,
  694.     0xF4, 0x1E, 0xF0, 0x65, 0x84, 0x00, 0xA4, 0x1A, 0xD3, 0x45, 0x60, 0x20, 0xF0, 0x18, 0x65, 0x0F,
  695.     0x13, 0x3E, 0x65, 0x00, 0x13, 0x3E, 0x4C, 0x01, 0x12, 0x02, 0x4C, 0x02, 0x13, 0x82, 0xA2, 0x23,
  696.     0xF5, 0x65, 0x45, 0x00, 0x12, 0x02, 0xA4, 0x19, 0xD3, 0x41, 0x6F, 0x00, 0xD3, 0x41, 0x3F, 0x01,
  697.     0x12, 0x02, 0x7E, 0x0A, 0x60, 0x40, 0xF0, 0x18, 0x00, 0xE0, 0x12, 0x4A, 0x00, 0xE0, 0x23, 0xD4,
  698.     0x60, 0x60, 0xF0, 0x18, 0x13, 0x94, 0x6E, 0x00, 0x13, 0x84, 0x41, 0x01, 0x74, 0xFF, 0x41, 0x04,
  699.     0x73, 0xFF, 0x41, 0x06, 0x73, 0x01, 0x41, 0x09, 0x74, 0x01, 0x00, 0xEE, 0x44, 0x00, 0x74, 0x01,
  700.     0x43, 0x00, 0x73, 0x01, 0x43, 0x38, 0x73, 0xFF, 0x44, 0x18, 0x74, 0xFF, 0x00, 0xEE, 0x6B, 0x00,
  701.     0x44, 0x00, 0x13, 0xCE, 0x43, 0x00, 0x13, 0xCE, 0x43, 0x3F, 0x13, 0xCE, 0x44, 0x1F, 0x6B, 0xBB,
  702.     0x6F, 0x00, 0x00, 0xEE, 0x63, 0x08, 0x64, 0x08, 0xA2, 0x29, 0xFE, 0x33, 0xF2, 0x65, 0x23, 0xEC,
  703.     0x63, 0x28, 0xA2, 0x29, 0xF6, 0x33, 0xF2, 0x65, 0x23, 0xF2, 0x00, 0xEE, 0xF0, 0x29, 0xD3, 0x45,
  704.     0x73, 0x06, 0xF1, 0x29, 0xD3, 0x45, 0x73, 0x06, 0xF2, 0x29, 0xD3, 0x45, 0x00, 0xEE, 0x01, 0x10,
  705.     0x54, 0x7C, 0x6C, 0x7C, 0x7C, 0x44, 0x7C, 0x7C, 0x6C, 0x7C, 0x54, 0x10, 0x00, 0xFC, 0x78, 0x6E,
  706.     0x78, 0xFC, 0x00, 0x3F, 0x1E, 0x76, 0x1E, 0x3F, 0x00, 0x80, 0xA8, 0x70, 0xF8, 0x70, 0xA8, 0x0B,
  707.     0x1B, 0x28, 0x38, 0x30, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1B, 0x1B, 0x1B, 0x18, 0x04
  708. ];
  709.  
  710. let tetris = [
  711.     0xA2, 0xB4, 0x23, 0xE6, 0x22, 0xB6, 0x70, 0x01, 0xD0, 0x11, 0x30, 0x25, 0x12, 0x06, 0x71, 0xFF,
  712.     0xD0, 0x11, 0x60, 0x1A, 0xD0, 0x11, 0x60, 0x25, 0x31, 0x00, 0x12, 0x0E, 0xC4, 0x70, 0x44, 0x70,
  713.     0x12, 0x1C, 0xC3, 0x03, 0x60, 0x1E, 0x61, 0x03, 0x22, 0x5C, 0xF5, 0x15, 0xD0, 0x14, 0x3F, 0x01,
  714.     0x12, 0x3C, 0xD0, 0x14, 0x71, 0xFF, 0xD0, 0x14, 0x23, 0x40, 0x12, 0x1C, 0xE7, 0xA1, 0x22, 0x72,
  715.     0xE8, 0xA1, 0x22, 0x84, 0xE9, 0xA1, 0x22, 0x96, 0xE2, 0x9E, 0x12, 0x50, 0x66, 0x00, 0xF6, 0x15,
  716.     0xF6, 0x07, 0x36, 0x00, 0x12, 0x3C, 0xD0, 0x14, 0x71, 0x01, 0x12, 0x2A, 0xA2, 0xC4, 0xF4, 0x1E,
  717.     0x66, 0x00, 0x43, 0x01, 0x66, 0x04, 0x43, 0x02, 0x66, 0x08, 0x43, 0x03, 0x66, 0x0C, 0xF6, 0x1E,
  718.     0x00, 0xEE, 0xD0, 0x14, 0x70, 0xFF, 0x23, 0x34, 0x3F, 0x01, 0x00, 0xEE, 0xD0, 0x14, 0x70, 0x01,
  719.     0x23, 0x34, 0x00, 0xEE, 0xD0, 0x14, 0x70, 0x01, 0x23, 0x34, 0x3F, 0x01, 0x00, 0xEE, 0xD0, 0x14,
  720.     0x70, 0xFF, 0x23, 0x34, 0x00, 0xEE, 0xD0, 0x14, 0x73, 0x01, 0x43, 0x04, 0x63, 0x00, 0x22, 0x5C,
  721.     0x23, 0x34, 0x3F, 0x01, 0x00, 0xEE, 0xD0, 0x14, 0x73, 0xFF, 0x43, 0xFF, 0x63, 0x03, 0x22, 0x5C,
  722.     0x23, 0x34, 0x00, 0xEE, 0x80, 0x00, 0x67, 0x05, 0x68, 0x06, 0x69, 0x04, 0x61, 0x1F, 0x65, 0x10,
  723.     0x62, 0x07, 0x00, 0xEE, 0x40, 0xE0, 0x00, 0x00, 0x40, 0xC0, 0x40, 0x00, 0x00, 0xE0, 0x40, 0x00,
  724.     0x40, 0x60, 0x40, 0x00, 0x40, 0x40, 0x60, 0x00, 0x20, 0xE0, 0x00, 0x00, 0xC0, 0x40, 0x40, 0x00,
  725.     0x00, 0xE0, 0x80, 0x00, 0x40, 0x40, 0xC0, 0x00, 0x00, 0xE0, 0x20, 0x00, 0x60, 0x40, 0x40, 0x00,
  726.     0x80, 0xE0, 0x00, 0x00, 0x40, 0xC0, 0x80, 0x00, 0xC0, 0x60, 0x00, 0x00, 0x40, 0xC0, 0x80, 0x00,
  727.     0xC0, 0x60, 0x00, 0x00, 0x80, 0xC0, 0x40, 0x00, 0x00, 0x60, 0xC0, 0x00, 0x80, 0xC0, 0x40, 0x00,
  728.     0x00, 0x60, 0xC0, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00,
  729.     0xC0, 0xC0, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0x00, 0xF0, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40,
  730.     0x00, 0xF0, 0x00, 0x00, 0xD0, 0x14, 0x66, 0x35, 0x76, 0xFF, 0x36, 0x00, 0x13, 0x38, 0x00, 0xEE,
  731.     0xA2, 0xB4, 0x8C, 0x10, 0x3C, 0x1E, 0x7C, 0x01, 0x3C, 0x1E, 0x7C, 0x01, 0x3C, 0x1E, 0x7C, 0x01,
  732.     0x23, 0x5E, 0x4B, 0x0A, 0x23, 0x72, 0x91, 0xC0, 0x00, 0xEE, 0x71, 0x01, 0x13, 0x50, 0x60, 0x1B,
  733.     0x6B, 0x00, 0xD0, 0x11, 0x3F, 0x00, 0x7B, 0x01, 0xD0, 0x11, 0x70, 0x01, 0x30, 0x25, 0x13, 0x62,
  734.     0x00, 0xEE, 0x60, 0x1B, 0xD0, 0x11, 0x70, 0x01, 0x30, 0x25, 0x13, 0x74, 0x8E, 0x10, 0x8D, 0xE0,
  735.     0x7E, 0xFF, 0x60, 0x1B, 0x6B, 0x00, 0xD0, 0xE1, 0x3F, 0x00, 0x13, 0x90, 0xD0, 0xE1, 0x13, 0x94,
  736.     0xD0, 0xD1, 0x7B, 0x01, 0x70, 0x01, 0x30, 0x25, 0x13, 0x86, 0x4B, 0x00, 0x13, 0xA6, 0x7D, 0xFF,
  737.     0x7E, 0xFF, 0x3D, 0x01, 0x13, 0x82, 0x23, 0xC0, 0x3F, 0x01, 0x23, 0xC0, 0x7A, 0x01, 0x23, 0xC0,
  738.     0x80, 0xA0, 0x6D, 0x07, 0x80, 0xD2, 0x40, 0x04, 0x75, 0xFE, 0x45, 0x02, 0x65, 0x04, 0x00, 0xEE,
  739.     0xA7, 0x00, 0xF2, 0x55, 0xA8, 0x04, 0xFA, 0x33, 0xF2, 0x65, 0xF0, 0x29, 0x6D, 0x32, 0x6E, 0x00,
  740.     0xDD, 0xE5, 0x7D, 0x05, 0xF1, 0x29, 0xDD, 0xE5, 0x7D, 0x05, 0xF2, 0x29, 0xDD, 0xE5, 0xA7, 0x00,
  741.     0xF2, 0x65, 0xA2, 0xB4, 0x00, 0xEE, 0x6A, 0x00, 0x60, 0x19, 0x00, 0xEE, 0x37, 0x23
  742. ];
  743.  
  744. let tictac = [
  745.     0x12, 0x18, 0x54, 0x49, 0x43, 0x54, 0x41, 0x43, 0x20, 0x62, 0x79, 0x20, 0x44, 0x61, 0x76, 0x69,
  746.     0x64, 0x20, 0x57, 0x49, 0x4E, 0x54, 0x45, 0x52, 0x6B, 0x00, 0x6C, 0x00, 0x80, 0xB0, 0x81, 0xC0,
  747.     0xA3, 0xE6, 0xF1, 0x55, 0xA3, 0xC4, 0xFF, 0x65, 0xA3, 0xB4, 0xFF, 0x55, 0xA3, 0xE6, 0xF1, 0x65,
  748.     0x8B, 0x00, 0x8C, 0x10, 0x00, 0xE0, 0x6E, 0x01, 0x60, 0x13, 0x61, 0x03, 0xA3, 0x9A, 0xD0, 0x11,
  749.     0x70, 0x08, 0x30, 0x2B, 0x12, 0x3E, 0x60, 0x13, 0x71, 0x08, 0x31, 0x23, 0x12, 0x3E, 0x60, 0x13,
  750.     0x61, 0x03, 0xA3, 0x9B, 0xD0, 0x1F, 0x70, 0x08, 0x30, 0x33, 0x12, 0x54, 0x60, 0x13, 0x71, 0x0F,
  751.     0xD0, 0x1A, 0x70, 0x08, 0x30, 0x33, 0x12, 0x60, 0x23, 0x66, 0xF0, 0x0A, 0x81, 0x00, 0xA3, 0xB4,
  752.     0xF0, 0x1E, 0xF0, 0x65, 0x40, 0x00, 0x12, 0x8A, 0x22, 0x7C, 0x12, 0x6A, 0x60, 0x10, 0xF0, 0x18,
  753.     0xF0, 0x15, 0xF0, 0x07, 0x30, 0x00, 0x12, 0x82, 0x00, 0xEE, 0x60, 0x02, 0x8E, 0x03, 0x80, 0xE0,
  754.     0xF0, 0x55, 0xA3, 0xD4, 0x80, 0x10, 0x70, 0xFF, 0x80, 0x04, 0xF0, 0x1E, 0xF1, 0x65, 0xA3, 0xAA,
  755.     0x3E, 0x03, 0xA3, 0xAF, 0xD0, 0x15, 0x22, 0xC8, 0x3A, 0x00, 0x12, 0x1C, 0xA3, 0xB4, 0x61, 0x00,
  756.     0x62, 0x00, 0x63, 0x01, 0xF0, 0x65, 0x30, 0x00, 0x71, 0x01, 0xF3, 0x1E, 0x72, 0x01, 0x32, 0x10,
  757.     0x12, 0xB4, 0x31, 0x10, 0x12, 0x6A, 0x12, 0x1C, 0x6A, 0x00, 0xA3, 0xB4, 0x60, 0x01, 0xF0, 0x1E,
  758.     0xF8, 0x65, 0x69, 0x00, 0x89, 0x04, 0x23, 0x44, 0x89, 0x14, 0x23, 0x44, 0x89, 0x24, 0x23, 0x4A,
  759.     0x69, 0x00, 0x89, 0x34, 0x23, 0x44, 0x89, 0x44, 0x23, 0x44, 0x89, 0x54, 0x23, 0x4A, 0x69, 0x00,
  760.     0x89, 0x64, 0x23, 0x44, 0x89, 0x74, 0x23, 0x44, 0x89, 0x84, 0x23, 0x4A, 0x69, 0x00, 0x89, 0x64,
  761.     0x23, 0x44, 0x89, 0x34, 0x23, 0x44, 0x89, 0x04, 0x23, 0x4A, 0x69, 0x00, 0x89, 0x74, 0x23, 0x44,
  762.     0x89, 0x44, 0x23, 0x44, 0x89, 0x14, 0x23, 0x4A, 0x69, 0x00, 0x89, 0x84, 0x23, 0x44, 0x89, 0x54,
  763.     0x23, 0x44, 0x89, 0x24, 0x23, 0x4A, 0x69, 0x00, 0x89, 0x84, 0x23, 0x44, 0x89, 0x44, 0x23, 0x44,
  764.     0x89, 0x04, 0x23, 0x4A, 0x69, 0x00, 0x89, 0x64, 0x23, 0x44, 0x89, 0x44, 0x23, 0x44, 0x89, 0x24,
  765.     0x23, 0x4A, 0x00, 0xEE, 0x89, 0x0E, 0x89, 0x0E, 0x00, 0xEE, 0x49, 0x15, 0x13, 0x54, 0x49, 0x3F,
  766.     0x13, 0x5A, 0x00, 0xEE, 0x23, 0x66, 0x7B, 0x01, 0x13, 0x5E, 0x23, 0x66, 0x7C, 0x01, 0x23, 0x66,
  767.     0x6A, 0x01, 0xF0, 0x0A, 0x00, 0xEE, 0x63, 0x05, 0x64, 0x0A, 0xA3, 0xAF, 0xD3, 0x45, 0x63, 0x02,
  768.     0x74, 0x06, 0xA3, 0xE6, 0xFB, 0x33, 0x23, 0x88, 0x63, 0x32, 0x64, 0x0A, 0xA3, 0xAA, 0xD3, 0x45,
  769.     0x63, 0x2F, 0x74, 0x06, 0xA3, 0xE6, 0xFC, 0x33, 0xF2, 0x65, 0xF0, 0x29, 0x23, 0x94, 0xF1, 0x29,
  770.     0x23, 0x94, 0xF2, 0x29, 0xD3, 0x45, 0x73, 0x05, 0x00, 0xEE, 0x7F, 0x80, 0x80, 0x80, 0x80, 0x80,
  771.     0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1C, 0x22, 0x22, 0x22, 0x1C, 0x22,
  772.     0x14, 0x08, 0x14, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
  773.     0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
  774.     0x01, 0x01, 0x01, 0x01, 0x13, 0x05, 0x1B, 0x05, 0x23, 0x05, 0x13, 0x0D, 0x1B, 0x0D, 0x23, 0x0D,
  775.     0x13, 0x15, 0x1B, 0x15, 0x23, 0x15
  776. ];
  777.  
  778. let ufo = [
  779.     0xA2, 0xCD, 0x69, 0x38, 0x6A, 0x08, 0xD9, 0xA3, 0xA2, 0xD0, 0x6B, 0x00, 0x6C, 0x03, 0xDB, 0xC3,
  780.     0xA2, 0xD6, 0x64, 0x1D, 0x65, 0x1F, 0xD4, 0x51, 0x67, 0x00, 0x68, 0x0F, 0x22, 0xA2, 0x22, 0xAC,
  781.     0x48, 0x00, 0x12, 0x22, 0x64, 0x1E, 0x65, 0x1C, 0xA2, 0xD3, 0xD4, 0x53, 0x6E, 0x00, 0x66, 0x80,
  782.     0x6D, 0x04, 0xED, 0xA1, 0x66, 0xFF, 0x6D, 0x05, 0xED, 0xA1, 0x66, 0x00, 0x6D, 0x06, 0xED, 0xA1,
  783.     0x66, 0x01, 0x36, 0x80, 0x22, 0xD8, 0xA2, 0xD0, 0xDB, 0xC3, 0xCD, 0x01, 0x8B, 0xD4, 0xDB, 0xC3,
  784.     0x3F, 0x00, 0x12, 0x92, 0xA2, 0xCD, 0xD9, 0xA3, 0xCD, 0x01, 0x3D, 0x00, 0x6D, 0xFF, 0x79, 0xFE,
  785.     0xD9, 0xA3, 0x3F, 0x00, 0x12, 0x8C, 0x4E, 0x00, 0x12, 0x2E, 0xA2, 0xD3, 0xD4, 0x53, 0x45, 0x00,
  786.     0x12, 0x86, 0x75, 0xFF, 0x84, 0x64, 0xD4, 0x53, 0x3F, 0x01, 0x12, 0x46, 0x6D, 0x08, 0x8D, 0x52,
  787.     0x4D, 0x08, 0x12, 0x8C, 0x12, 0x92, 0x22, 0xAC, 0x78, 0xFF, 0x12, 0x1E, 0x22, 0xA2, 0x77, 0x05,
  788.     0x12, 0x96, 0x22, 0xA2, 0x77, 0x0F, 0x22, 0xA2, 0x6D, 0x03, 0xFD, 0x18, 0xA2, 0xD3, 0xD4, 0x53,
  789.     0x12, 0x86, 0xA2, 0xF8, 0xF7, 0x33, 0x63, 0x00, 0x22, 0xB6, 0x00, 0xEE, 0xA2, 0xF8, 0xF8, 0x33,
  790.     0x63, 0x32, 0x22, 0xB6, 0x00, 0xEE, 0x6D, 0x1B, 0xF2, 0x65, 0xF0, 0x29, 0xD3, 0xD5, 0x73, 0x05,
  791.     0xF1, 0x29, 0xD3, 0xD5, 0x73, 0x05, 0xF2, 0x29, 0xD3, 0xD5, 0x00, 0xEE, 0x01, 0x7C, 0xFE, 0x7C,
  792.     0x60, 0xF0, 0x60, 0x40, 0xE0, 0xA0, 0xF8, 0xD4, 0x6E, 0x01, 0x6D, 0x10, 0xFD, 0x18, 0x00, 0xEE
  793. ];
  794.  
  795. let vbrix = [
  796.     0x00, 0xE0, 0x23, 0xB6, 0x60, 0x07, 0xE0, 0x9E, 0x12, 0x04, 0x68, 0x00, 0x67, 0x03, 0x23, 0x46,
  797.     0x22, 0x4A, 0x22, 0xC0, 0x23, 0x66, 0x23, 0x8A, 0x23, 0xAC, 0xF0, 0x0A, 0x22, 0x5A, 0x22, 0x5A,
  798.     0x22, 0xD0, 0x22, 0x88, 0x3A, 0x00, 0x12, 0x1C, 0x6C, 0x01, 0x23, 0xAC, 0x77, 0xFF, 0x23, 0xAC,
  799.     0x60, 0x78, 0xF0, 0x15, 0xF0, 0x07, 0x30, 0x00, 0x12, 0x34, 0x37, 0x00, 0x12, 0x1C, 0x23, 0xAC,
  800.     0x60, 0x07, 0xE0, 0x9E, 0x12, 0x42, 0x12, 0x0A, 0x00, 0xFD, 0x69, 0x10, 0x60, 0x02, 0xA2, 0x54,
  801.     0xD0, 0x95, 0x00, 0xEE, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x60, 0x01, 0xE0, 0xA1, 0x12, 0x68,
  802.     0x60, 0x04, 0xE0, 0xA1, 0x12, 0x72, 0x00, 0xEE, 0x80, 0x90, 0x70, 0xFF, 0x40, 0x00, 0x00, 0xEE,
  803.     0x12, 0x7C, 0x80, 0x90, 0x70, 0x01, 0x40, 0x1B, 0x00, 0xEE, 0x12, 0x7C, 0x61, 0x02, 0xA2, 0x54,
  804.     0xD1, 0x95, 0xD1, 0x05, 0x89, 0x00, 0x00, 0xEE, 0x80, 0xA0, 0x70, 0xFE, 0x30, 0x00, 0x00, 0xEE,
  805.     0x80, 0xB0, 0x80, 0x95, 0x4F, 0x00, 0x00, 0xEE, 0x81, 0x00, 0x62, 0x05, 0x81, 0x25, 0x3F, 0x00,
  806.     0x00, 0xEE, 0xA2, 0xBA, 0xF0, 0x1E, 0xF0, 0x65, 0x8D, 0x00, 0x4B, 0x01, 0x6D, 0x01, 0x4B, 0x1E,
  807.     0x6D, 0xFF, 0x6C, 0x01, 0x60, 0x0A, 0xF0, 0x18, 0x00, 0xEE, 0xFF, 0xFF, 0x00, 0x01, 0x01, 0x00,
  808.     0xCB, 0x20, 0x7B, 0x01, 0x6A, 0x04, 0x6C, 0x01, 0x6D, 0x01, 0xA3, 0x64, 0xDA, 0xB1, 0x00, 0xEE,
  809.     0x80, 0xA0, 0x81, 0xB0, 0x8A, 0xC4, 0x8B, 0xD4, 0xA3, 0x64, 0x4B, 0x01, 0x6D, 0x01, 0x4B, 0x1E,
  810.     0x6D, 0xFF, 0x4A, 0x3E, 0x6C, 0xFF, 0x4A, 0x00, 0x6C, 0x01, 0xD0, 0x11, 0xDA, 0xB1, 0x4F, 0x00,
  811.     0x00, 0xEE, 0x80, 0xA0, 0x61, 0x21, 0x80, 0x15, 0x4F, 0x00, 0x00, 0xEE, 0x80, 0xA0, 0x81, 0xB0,
  812.     0x70, 0xDE, 0x71, 0xFF, 0x62, 0xFF, 0x63, 0xFF, 0x64, 0x03, 0x72, 0x01, 0x80, 0x45, 0x3F, 0x00,
  813.     0x13, 0x0A, 0x73, 0x01, 0x81, 0x45, 0x3F, 0x00, 0x13, 0x12, 0x80, 0x20, 0x81, 0x30, 0x80, 0x24,
  814.     0x80, 0x24, 0x81, 0x34, 0x81, 0x34, 0x70, 0x22, 0x71, 0x01, 0xA3, 0x86, 0xD0, 0x13, 0x7E, 0xFF,
  815.     0x60, 0x00, 0x8C, 0x07, 0x60, 0x02, 0xF0, 0x18, 0x23, 0x8A, 0x78, 0x01, 0x23, 0x8A, 0x3E, 0x00,
  816.     0x00, 0xEE, 0x23, 0x66, 0x00, 0xEE, 0x00, 0xE0, 0x60, 0x00, 0x61, 0x00, 0x62, 0x1F, 0xA3, 0x64,
  817.     0xD0, 0x11, 0xD0, 0x21, 0x70, 0x01, 0x30, 0x3F, 0x13, 0x50, 0xD0, 0x11, 0x71, 0x01, 0x31, 0x20,
  818.     0x13, 0x5A, 0x00, 0xEE, 0x80, 0x00, 0x61, 0x01, 0x63, 0x0A, 0xA3, 0x86, 0x60, 0x22, 0x62, 0x07,
  819.     0xD0, 0x13, 0x70, 0x03, 0x72, 0xFF, 0x32, 0x00, 0x13, 0x70, 0x71, 0x03, 0x73, 0xFF, 0x33, 0x00,
  820.     0x13, 0x6C, 0x6E, 0x46, 0x00, 0xEE, 0xE0, 0xA0, 0xE0, 0x00, 0xA3, 0xA6, 0xF8, 0x33, 0xF2, 0x65,
  821.     0x63, 0x03, 0x64, 0x02, 0xF0, 0x29, 0xD3, 0x45, 0x73, 0x05, 0xF1, 0x29, 0xD3, 0x45, 0x73, 0x05,
  822.     0xF2, 0x29, 0xD3, 0x45, 0x00, 0xEE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x14, 0x61, 0x02,
  823.     0xF7, 0x29, 0xD0, 0x15, 0x00, 0xEE, 0x60, 0x0A, 0x61, 0x0C, 0x62, 0x09, 0x63, 0x05, 0xA3, 0xCE,
  824.     0xD0, 0x15, 0xF3, 0x1E, 0x70, 0x05, 0x72, 0xFF, 0x32, 0x00, 0x13, 0xC0, 0x00, 0xEE, 0x90, 0x90,
  825.     0x90, 0x90, 0x60, 0xE0, 0x90, 0xE0, 0x90, 0xE0, 0xE0, 0x90, 0xE0, 0x90, 0x90, 0x20, 0x20, 0x20,
  826.     0x20, 0x20, 0x90, 0x90, 0x60, 0x90, 0x90, 0x00, 0x00, 0x60, 0x00, 0x00, 0xF0, 0x90, 0xF0, 0x80,
  827.     0x80, 0xF0, 0x80, 0xF0, 0x10, 0xF0, 0xE0, 0x90, 0xE0, 0x90, 0x90
  828. ];
  829.  
  830. let vers = [
  831.     0x12, 0x1A, 0x4A, 0x4D, 0x4E, 0x20, 0x31, 0x39, 0x39, 0x31, 0x20, 0x53, 0x4F, 0x46, 0x54, 0x57,
  832.     0x41, 0x52, 0x45, 0x53, 0x20, 0x80, 0x80, 0xFF, 0x00, 0x00, 0x63, 0x00, 0x67, 0x00, 0x00, 0xE0,
  833.     0xA2, 0x17, 0x60, 0x00, 0x61, 0x00, 0xD0, 0x11, 0x71, 0xFF, 0xD0, 0x11, 0x71, 0x01, 0x70, 0x08,
  834.     0x30, 0x40, 0x12, 0x26, 0x71, 0x01, 0xA2, 0x15, 0xD0, 0x12, 0x70, 0xFF, 0xD0, 0x12, 0x70, 0x01,
  835.     0x71, 0x02, 0x31, 0x1F, 0x12, 0x38, 0x60, 0x08, 0x61, 0x10, 0x62, 0x04, 0x64, 0x37, 0x65, 0x0F,
  836.     0x66, 0x02, 0xD0, 0x11, 0xD4, 0x51, 0x68, 0x01, 0xE8, 0xA1, 0x62, 0x02, 0x68, 0x02, 0xE8, 0xA1,
  837.     0x62, 0x04, 0x68, 0x07, 0xE8, 0xA1, 0x62, 0x01, 0x68, 0x0A, 0xE8, 0xA1, 0x62, 0x03, 0x68, 0x0B,
  838.     0xE8, 0xA1, 0x66, 0x02, 0x68, 0x0F, 0xE8, 0xA1, 0x66, 0x04, 0x68, 0x0C, 0xE8, 0xA1, 0x66, 0x01,
  839.     0x68, 0x0D, 0xE8, 0xA1, 0x66, 0x03, 0x42, 0x01, 0x71, 0xFF, 0x42, 0x02, 0x70, 0xFF, 0x42, 0x03,
  840.     0x71, 0x01, 0x42, 0x04, 0x70, 0x01, 0x46, 0x01, 0x75, 0xFF, 0x46, 0x02, 0x74, 0xFF, 0x46, 0x03,
  841.     0x75, 0x01, 0x46, 0x04, 0x74, 0x01, 0xD0, 0x11, 0x3F, 0x00, 0x12, 0xB4, 0xD4, 0x51, 0x3F, 0x00,
  842.     0x12, 0xB8, 0x12, 0x56, 0x77, 0x01, 0x12, 0xBA, 0x73, 0x01, 0x68, 0x00, 0x78, 0x01, 0x38, 0x00,
  843.     0x12, 0xBC, 0x00, 0xE0, 0x60, 0x08, 0x61, 0x04, 0xF3, 0x29, 0xD0, 0x15, 0x60, 0x34, 0xF7, 0x29,
  844.     0xD0, 0x15, 0x68, 0x00, 0x78, 0x01, 0x38, 0x00, 0x12, 0xD4, 0x43, 0x08, 0x12, 0xE4, 0x47, 0x08,
  845.     0x12, 0xE4, 0x12, 0x1E, 0x12, 0xE4
  846. ];
  847.  
  848. let wipeoff = [
  849.     0xA2, 0xCC, 0x6A, 0x07, 0x61, 0x00, 0x6B, 0x08, 0x60, 0x00, 0xD0, 0x11, 0x70, 0x08, 0x7B, 0xFF,
  850.     0x3B, 0x00, 0x12, 0x0A, 0x71, 0x04, 0x7A, 0xFF, 0x3A, 0x00, 0x12, 0x06, 0x66, 0x00, 0x67, 0x10,
  851.     0xA2, 0xCD, 0x60, 0x20, 0x61, 0x1E, 0xD0, 0x11, 0x63, 0x1D, 0x62, 0x3F, 0x82, 0x02, 0x77, 0xFF,
  852.     0x47, 0x00, 0x12, 0xAA, 0xFF, 0x0A, 0xA2, 0xCB, 0xD2, 0x31, 0x65, 0xFF, 0xC4, 0x01, 0x34, 0x01,
  853.     0x64, 0xFF, 0xA2, 0xCD, 0x6C, 0x00, 0x6E, 0x04, 0xEE, 0xA1, 0x6C, 0xFF, 0x6E, 0x06, 0xEE, 0xA1,
  854.     0x6C, 0x01, 0xD0, 0x11, 0x80, 0xC4, 0xD0, 0x11, 0x4F, 0x01, 0x12, 0x98, 0x42, 0x00, 0x64, 0x01,
  855.     0x42, 0x3F, 0x64, 0xFF, 0x43, 0x00, 0x65, 0x01, 0x43, 0x1F, 0x12, 0xA4, 0xA2, 0xCB, 0xD2, 0x31,
  856.     0x82, 0x44, 0x83, 0x54, 0xD2, 0x31, 0x3F, 0x01, 0x12, 0x42, 0x43, 0x1E, 0x12, 0x98, 0x6A, 0x02,
  857.     0xFA, 0x18, 0x76, 0x01, 0x46, 0x70, 0x12, 0xAA, 0xD2, 0x31, 0xC4, 0x01, 0x34, 0x01, 0x64, 0xFF,
  858.     0xC5, 0x01, 0x35, 0x01, 0x65, 0xFF, 0x12, 0x42, 0x6A, 0x03, 0xFA, 0x18, 0xA2, 0xCB, 0xD2, 0x31,
  859.     0x73, 0xFF, 0x12, 0x36, 0xA2, 0xCB, 0xD2, 0x31, 0x12, 0x28, 0xA2, 0xCD, 0xD0, 0x11, 0xA2, 0xF0,
  860.     0xF6, 0x33, 0xF2, 0x65, 0x63, 0x18, 0x64, 0x1B, 0xF0, 0x29, 0xD3, 0x45, 0x73, 0x05, 0xF1, 0x29,
  861.     0xD3, 0x45, 0x73, 0x05, 0xF2, 0x29, 0xD3, 0x45, 0x12, 0xC8, 0x01, 0x80, 0x44, 0xFF
  862. ];
  863.  
  864. let smileyfaces = [
  865.     0x12, 0x08, 0x24, 0x24, 0x00, 0x81, 0x42, 0x3C, 0xA2, 0x02, 0x62, 0x00, 0xC0, 0x3F,
  866.     0xC1, 0x1F, 0xD0, 0x16, 0x72, 0x01, 0x32, 0x20, 0x12, 0x0C, 0x00, 0xE0, 0x12, 0x0A
  867. ];
  868.  
  869. let romList = {
  870.     "15PUZZLE": puzzle15,
  871.     "BLINKY": blinky,
  872.     "BLITZ": blitz,
  873.     "BRIX": brix,
  874.     "CGG": computer_grenade_graphic,
  875.     "CONNECT4": connect4,
  876.     "GUESS": guess,
  877.     "HIDDEN": hidden,
  878.     "INVADERS": invaders,
  879.     "KALEID": kaleid,
  880.     "MAZE": maze,
  881.     "MERLIN": merlin,
  882.     "MISSILE": missile,
  883.     "PONG": pong,
  884.     "PONG2": pong2,
  885.     "PUZZLE": puzzle,
  886.     "SFACES": smileyfaces,
  887.     "SPACEWARS": spacewars,
  888.     "SYZYGY": syzygy,
  889.     "TANK": tank,
  890.     "TETRIS": tetris,
  891.     "TICTAC": tictac,
  892.     "UFO": ufo,
  893.     "VBRIX": vbrix,
  894.     "VERS": vers,
  895.     "WIPEOFF": wipeoff
  896. }
  897.  
  898. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  899.  
  900. runProcess = null;          // Tracks the main run cycle
  901. timerProcess = null;        // Tracks the D/S timer cycle
  902.  
  903. let notPaused = true;
  904. let emulatorSpeed = 8;     // Default speed is 8 cycles/frame
  905. let CHIP8 = new CPU();
  906.  
  907.  
  908. /////////////////////////
  909. //                     //
  910. //  Keyboard Controls  //
  911. //                     //
  912. /////////////////////////
  913.  
  914.  
  915. let keyMap = {
  916.     '1': 0x1, '2': 0x2, '3': 0x3, '4': 0xC,
  917.     'q': 0x4, 'w': 0x5, 'e': 0x6, 'r': 0xD,
  918.     'a': 0x7, 's': 0x8, 'd': 0x9, 'f': 0xE,
  919.     'z': 0xA, 'x': 0x0, 'c': 0xB, 'v': 0xF,
  920. };
  921.  
  922. document.addEventListener("keydown", function(event) {
  923.     CHIP8.setKeyDown(keyMap[event.key]);
  924. });
  925.  
  926. document.addEventListener("keyup", function(event) {
  927.     CHIP8.setKeyUp(keyMap[event.key]);
  928. });
  929.  
  930.  
  931. /////////////////////////
  932. //                     //
  933. //  Webpage Controls   //
  934. //                     //
  935. /////////////////////////
  936.  
  937.  
  938. function runEmulator(menu) {
  939.  
  940.     CHIP8.reset();
  941.     CHIP8.isRunning = true;
  942.  
  943.     if (menu.value == "NOTHING") {
  944.         CHIP8.reset();
  945.         CHIP8.emulateOpcode(0x00E0);              // Clear the screen
  946.     }
  947.  
  948.     else {
  949.         let romChosen = romList[menu.value];
  950.         let len = romChosen.length;
  951.         for (let i = 0; i < len; i++)
  952.             CHIP8.memory[CHIP8.PC + i] = romChosen[i];
  953.     }
  954.  
  955. }
  956.  
  957. function setEmulatorSpeed(menu) {
  958.     emulatorSpeed = menu.value;
  959. }
  960.  
  961. function startPressed() {
  962.     CHIP8.isRunning = true;
  963. }
  964.  
  965. function pausePressed() {
  966.     CHIP8.isRunning = false;
  967. }
  968.  
  969. function resetPressed() {
  970.     CHIP8.emulateOpcode(0x00E0);
  971.     CHIP8.renderScreen();
  972.     CHIP8.reset();
  973. }
  974.  
  975. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  976.  
  977.  
  978. /////////////////////////
  979. //                     //
  980. //  Run Cycle Controls //
  981. //                     //
  982. /////////////////////////
  983.  
  984.  
  985. // Load ROM into memory
  986. window.onload = function() {
  987.  
  988.     // File Reader ///////////////////////////////////////////
  989.  
  990.     var fileInput = document.getElementById('rom');
  991.  
  992.     fileInput.addEventListener('change', function(e) {  
  993.         // load new ROM if user select a file
  994.         if(fileInput.files.length === 1) {
  995.             var file = fileInput.files[0];
  996.  
  997.             CHIP8.reset();
  998.             CHIP8.loadProgram(file);
  999.         }
  1000.     });
  1001.  
  1002.     // Run Processes //////////////////////////////////////////
  1003.  
  1004.     if (runProcess != null)                 // Clear previous program process (required when changing ROMs)
  1005.         clearInterval(runProcess);
  1006.  
  1007.     if (timerProcess != null)
  1008.         clearInterval(timerProcess);
  1009.  
  1010.     let beepSound = new Audio ("beep.wav"); // Buffer beep sound
  1011.  
  1012.     runProcess = setInterval (function() {
  1013.         if (CHIP8.isRunning) {
  1014.             for (let i = 0; i < emulatorSpeed; i++) {      // Emulator speed = cycles per frame
  1015.                 let opcode = CHIP8.memory[CHIP8.PC] << 8 | CHIP8.memory[CHIP8.PC + 1];
  1016.                 CHIP8.emulateOpcode(opcode);
  1017.                 CHIP8.renderScreen();
  1018.             }
  1019.         }
  1020.     }, 1000/60);
  1021.  
  1022.     timerProcess = setInterval(function() {
  1023.         if (CHIP8.isRunning) {
  1024.             if (CHIP8.soundTimer > 0)
  1025.                 beepSound.play();
  1026.             CHIP8.setTimer();
  1027.         }
  1028.     }, 1000/60);
  1029. } // End of window.onload function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement