[NTVDM]
[reactos.git] / reactos / subsystems / ntvdm / bios / vidbios.c
index 8f50d32..2ef6aa2 100644 (file)
@@ -12,8 +12,8 @@
 #define NDEBUG
 
 #include "emulator.h"
-#include "callback.h"
-#include "bop.h"
+#include "cpu/cpu.h"
+#include "cpu/bop.h"
 
 #include "bios.h"
 // #include "vidbios.h"
@@ -264,7 +264,7 @@ static PVGA_REGISTERS VideoModes[BIOS_MAX_VIDEO_MODE + 1] =
     &VideoMode_80x25_text,          /* Mode 02h */      // 16 color (mono)
     &VideoMode_80x25_text,          /* Mode 03h */      // 16 color
     &VideoMode_320x200_4color,      /* Mode 04h */      // CGA 4 color
-    &VideoMode_320x200_4color,      /* Mode 05h */      // CGA same (m)
+    &VideoMode_320x200_4color,      /* Mode 05h */      // CGA same (m) (uses 3rd CGA palette)
     &VideoMode_640x200_2color,      /* Mode 06h */      // CGA 640*200 2 color
     NULL,                           /* Mode 07h */      // MDA monochrome text 80*25
     NULL,                           /* Mode 08h */      // PCjr
@@ -369,6 +369,8 @@ static CONST COLORREF mtext_s3_palette[64] =
     RGB(0xFF, 0xFF, 0xFF), RGB(0xFF, 0xFF, 0xFF), RGB(0xFF, 0xFF, 0xFF), RGB(0xFF, 0xFF, 0xFF)
 };
 
+#if 0
+
 // Unused at the moment
 static CONST COLORREF CgaPalette[16] =
 {
@@ -378,28 +380,69 @@ static CONST COLORREF CgaPalette[16] =
     RGB(0xFF, 0x55, 0x55), RGB(0xFF, 0x55, 0xFF), RGB(0xFF, 0xFF, 0x55), RGB(0xFF, 0xFF, 0xFF)
 };
 
-// Unused at the moment
+/* CGA palette 1 */
+static CONST BYTE CgaPalette1[] =
+{
+    0x00,   /* 0 - Black  */
+    0x03,   /* 1 - Cyan   */
+    0x05,   /* 2- Magenta */
+    0x07,   /* 3 - White  */
+}
+
+/* CGA palette 1 bright */
+static CONST BYTE CgaPalette1i[] =
+{
+    0x00,   /* 0 - Black         */
+    0x13,   /* 1 - Light cyan    */
+    0x15,   /* 2 - Light magenta */
+    0x17,   /* 3 - Bright White  */
+};
+
+/* CGA palette 2 */
+static CONST BYTE CgaPalette2[] =
+{
+    0x00,   /* 0 - Black */
+    0x02,   /* 1 - Green */
+    0x04,   /* 2 - Red   */
+    0x06,   /* 3 - Brown */
+};
+
+/* CGA palette 2 bright */
+static CONST BYTE CgaPalette2i[] =
+{
+    0x00,   /* 0 - Black       */
+    0x12,   /* 1 - Light green */
+    0x14,   /* 2 - Light red   */
+    0x16,   /* 3 - Yellow      */
+};
+
+// Unused at the moment; same palette as EgaPalette__16Colors
 static CONST COLORREF CgaPalette2[VGA_MAX_COLORS / 4] =
 {
     RGB(0x00, 0x00, 0x00), RGB(0x00, 0x00, 0xAA), RGB(0x00, 0xAA, 0x00), RGB(0x00, 0xAA, 0xAA),
     RGB(0xAA, 0x00, 0x00), RGB(0xAA, 0x00, 0xAA), RGB(0xAA, 0x55, 0x00), RGB(0xAA, 0xAA, 0xAA),
     RGB(0x00, 0x00, 0x00), RGB(0x00, 0x00, 0xAA), RGB(0x00, 0xAA, 0x00), RGB(0x00, 0xAA, 0xAA),
     RGB(0xAA, 0x00, 0x00), RGB(0xAA, 0x00, 0xAA), RGB(0xAA, 0x55, 0x00), RGB(0xAA, 0xAA, 0xAA),
+
     RGB(0x55, 0x55, 0x55), RGB(0x55, 0x55, 0xFF), RGB(0x55, 0xFF, 0x55), RGB(0x55, 0xFF, 0xFF),
     RGB(0xFF, 0x55, 0x55), RGB(0xFF, 0x55, 0xFF), RGB(0xFF, 0xFF, 0x55), RGB(0xFF, 0xFF, 0xFF),
     RGB(0x55, 0x55, 0x55), RGB(0x55, 0x55, 0xFF), RGB(0x55, 0xFF, 0x55), RGB(0x55, 0xFF, 0xFF),
     RGB(0xFF, 0x55, 0x55), RGB(0xFF, 0x55, 0xFF), RGB(0xFF, 0xFF, 0x55), RGB(0xFF, 0xFF, 0xFF),
+
     RGB(0x00, 0x00, 0x00), RGB(0x00, 0x00, 0xAA), RGB(0x00, 0xAA, 0x00), RGB(0x00, 0xAA, 0xAA),
     RGB(0xAA, 0x00, 0x00), RGB(0xAA, 0x00, 0xAA), RGB(0xAA, 0x55, 0x00), RGB(0xAA, 0xAA, 0xAA),
     RGB(0x00, 0x00, 0x00), RGB(0x00, 0x00, 0xAA), RGB(0x00, 0xAA, 0x00), RGB(0x00, 0xAA, 0xAA),
     RGB(0xAA, 0x00, 0x00), RGB(0xAA, 0x00, 0xAA), RGB(0xAA, 0x55, 0x00), RGB(0xAA, 0xAA, 0xAA),
+
     RGB(0x55, 0x55, 0x55), RGB(0x55, 0x55, 0xFF), RGB(0x55, 0xFF, 0x55), RGB(0x55, 0xFF, 0xFF),
     RGB(0xFF, 0x55, 0x55), RGB(0xFF, 0x55, 0xFF), RGB(0xFF, 0xFF, 0x55), RGB(0xFF, 0xFF, 0xFF),
     RGB(0x55, 0x55, 0x55), RGB(0x55, 0x55, 0xFF), RGB(0x55, 0xFF, 0x55), RGB(0x55, 0xFF, 0xFF),
     RGB(0xFF, 0x55, 0x55), RGB(0xFF, 0x55, 0xFF), RGB(0xFF, 0xFF, 0x55), RGB(0xFF, 0xFF, 0xFF)
 };
 
-static CONST COLORREF EgaPalette___16ColorFixed_DOSBox[VGA_MAX_COLORS / 4] =
+#endif
+
+static CONST COLORREF EgaPalette__16Colors[VGA_MAX_COLORS / 4] =
 {
     RGB(0x00, 0x00, 0x00), RGB(0x00, 0x00, 0xAA), RGB(0x00, 0xAA, 0x00), RGB(0x00, 0xAA, 0xAA),
     RGB(0xAA, 0x00, 0x00), RGB(0xAA, 0x00, 0xAA), RGB(0xAA, 0x55, 0x00), RGB(0xAA, 0xAA, 0xAA),
@@ -608,6 +651,1298 @@ static CONST COLORREF VgaPalette[VGA_MAX_COLORS] =
 
 #endif
 
+static CONST UCHAR Font8x8[VGA_FONT_CHARACTERS * 8] =
+{
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x7E, 0x81, 0xA5, 0x81, 0xBD, 0x99, 0x81, 0x7E,
+    0x7E, 0xFF, 0xDB, 0xFF, 0xC3, 0xE7, 0xFF, 0x7E,
+    0x6C, 0xFE, 0xFE, 0xFE, 0x7C, 0x38, 0x10, 0x00,
+    0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x10, 0x00,
+    0x38, 0x7C, 0x38, 0xFE, 0xFE, 0x92, 0x10, 0x7C,
+    0x00, 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x7C,
+    0x00, 0x00, 0x18, 0x3C, 0x3C, 0x18, 0x00, 0x00,
+    0xFF, 0xFF, 0xE7, 0xC3, 0xC3, 0xE7, 0xFF, 0xFF,
+    0x00, 0x3C, 0x66, 0x42, 0x42, 0x66, 0x3C, 0x00,
+    0xFF, 0xC3, 0x99, 0xBD, 0xBD, 0x99, 0xC3, 0xFF,
+    0x0F, 0x07, 0x0F, 0x7D, 0xCC, 0xCC, 0xCC, 0x78,
+    0x3C, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E, 0x18,
+    0x3F, 0x33, 0x3F, 0x30, 0x30, 0x70, 0xF0, 0xE0,
+    0x7F, 0x63, 0x7F, 0x63, 0x63, 0x67, 0xE6, 0xC0,
+    0x99, 0x5A, 0x3C, 0xE7, 0xE7, 0x3C, 0x5A, 0x99,
+    0x80, 0xE0, 0xF8, 0xFE, 0xF8, 0xE0, 0x80, 0x00,
+    0x02, 0x0E, 0x3E, 0xFE, 0x3E, 0x0E, 0x02, 0x00,
+    0x18, 0x3C, 0x7E, 0x18, 0x18, 0x7E, 0x3C, 0x18,
+    0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, 0x00,
+    0x7F, 0xDB, 0xDB, 0x7B, 0x1B, 0x1B, 0x1B, 0x00,
+    0x3E, 0x63, 0x38, 0x6C, 0x6C, 0x38, 0x86, 0xFC,
+    0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x7E, 0x00,
+    0x18, 0x3C, 0x7E, 0x18, 0x7E, 0x3C, 0x18, 0xFF,
+    0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x00,
+    0x18, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, 0x00,
+    0x00, 0x18, 0x0C, 0xFE, 0x0C, 0x18, 0x00, 0x00,
+    0x00, 0x30, 0x60, 0xFE, 0x60, 0x30, 0x00, 0x00,
+    0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xFE, 0x00, 0x00,
+    0x00, 0x24, 0x66, 0xFF, 0x66, 0x24, 0x00, 0x00,
+    0x00, 0x18, 0x3C, 0x7E, 0xFF, 0xFF, 0x00, 0x00,
+    0x00, 0xFF, 0xFF, 0x7E, 0x3C, 0x18, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x18, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x18, 0x00,
+    0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, 0x00,
+    0x18, 0x7E, 0xC0, 0x7C, 0x06, 0xFC, 0x18, 0x00,
+    0x00, 0xC6, 0xCC, 0x18, 0x30, 0x66, 0xC6, 0x00,
+    0x38, 0x6C, 0x38, 0x76, 0xDC, 0xCC, 0x76, 0x00,
+    0x30, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x18, 0x30, 0x60, 0x60, 0x60, 0x30, 0x18, 0x00,
+    0x60, 0x30, 0x18, 0x18, 0x18, 0x30, 0x60, 0x00,
+    0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00,
+    0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30,
+    0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00,
+    0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0x80, 0x00,
+    0x7C, 0xCE, 0xDE, 0xF6, 0xE6, 0xC6, 0x7C, 0x00,
+    0x30, 0x70, 0x30, 0x30, 0x30, 0x30, 0xFC, 0x00,
+    0x78, 0xCC, 0x0C, 0x38, 0x60, 0xCC, 0xFC, 0x00,
+    0x78, 0xCC, 0x0C, 0x38, 0x0C, 0xCC, 0x78, 0x00,
+    0x1C, 0x3C, 0x6C, 0xCC, 0xFE, 0x0C, 0x1E, 0x00,
+    0xFC, 0xC0, 0xF8, 0x0C, 0x0C, 0xCC, 0x78, 0x00,
+    0x38, 0x60, 0xC0, 0xF8, 0xCC, 0xCC, 0x78, 0x00,
+    0xFC, 0xCC, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x00,
+    0x78, 0xCC, 0xCC, 0x78, 0xCC, 0xCC, 0x78, 0x00,
+    0x78, 0xCC, 0xCC, 0x7C, 0x0C, 0x18, 0x70, 0x00,
+    0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00,
+    0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30,
+    0x18, 0x30, 0x60, 0xC0, 0x60, 0x30, 0x18, 0x00,
+    0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00,
+    0x60, 0x30, 0x18, 0x0C, 0x18, 0x30, 0x60, 0x00,
+    0x3C, 0x66, 0x0C, 0x18, 0x18, 0x00, 0x18, 0x00,
+    0x7C, 0xC6, 0xDE, 0xDE, 0xDC, 0xC0, 0x7C, 0x00,
+    0x30, 0x78, 0xCC, 0xCC, 0xFC, 0xCC, 0xCC, 0x00,
+    0xFC, 0x66, 0x66, 0x7C, 0x66, 0x66, 0xFC, 0x00,
+    0x3C, 0x66, 0xC0, 0xC0, 0xC0, 0x66, 0x3C, 0x00,
+    0xF8, 0x6C, 0x66, 0x66, 0x66, 0x6C, 0xF8, 0x00,
+    0xFE, 0x62, 0x68, 0x78, 0x68, 0x62, 0xFE, 0x00,
+    0xFE, 0x62, 0x68, 0x78, 0x68, 0x60, 0xF0, 0x00,
+    0x3C, 0x66, 0xC0, 0xC0, 0xCE, 0x66, 0x3A, 0x00,
+    0xCC, 0xCC, 0xCC, 0xFC, 0xCC, 0xCC, 0xCC, 0x00,
+    0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00,
+    0x1E, 0x0C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78, 0x00,
+    0xE6, 0x66, 0x6C, 0x78, 0x6C, 0x66, 0xE6, 0x00,
+    0xF0, 0x60, 0x60, 0x60, 0x62, 0x66, 0xFE, 0x00,
+    0xC6, 0xEE, 0xFE, 0xFE, 0xD6, 0xC6, 0xC6, 0x00,
+    0xC6, 0xE6, 0xF6, 0xDE, 0xCE, 0xC6, 0xC6, 0x00,
+    0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0x6C, 0x38, 0x00,
+    0xFC, 0x66, 0x66, 0x7C, 0x60, 0x60, 0xF0, 0x00,
+    0x7C, 0xC6, 0xC6, 0xC6, 0xD6, 0x7C, 0x0E, 0x00,
+    0xFC, 0x66, 0x66, 0x7C, 0x6C, 0x66, 0xE6, 0x00,
+    0x7C, 0xC6, 0xE0, 0x78, 0x0E, 0xC6, 0x7C, 0x00,
+    0xFC, 0xB4, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00,
+    0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xFC, 0x00,
+    0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x00,
+    0xC6, 0xC6, 0xC6, 0xC6, 0xD6, 0xFE, 0x6C, 0x00,
+    0xC6, 0xC6, 0x6C, 0x38, 0x6C, 0xC6, 0xC6, 0x00,
+    0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x30, 0x78, 0x00,
+    0xFE, 0xC6, 0x8C, 0x18, 0x32, 0x66, 0xFE, 0x00,
+    0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x78, 0x00,
+    0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x02, 0x00,
+    0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x78, 0x00,
+    0x10, 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+    0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00,
+    0xE0, 0x60, 0x60, 0x7C, 0x66, 0x66, 0xDC, 0x00,
+    0x00, 0x00, 0x78, 0xCC, 0xC0, 0xCC, 0x78, 0x00,
+    0x1C, 0x0C, 0x0C, 0x7C, 0xCC, 0xCC, 0x76, 0x00,
+    0x00, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00,
+    0x38, 0x6C, 0x64, 0xF0, 0x60, 0x60, 0xF0, 0x00,
+    0x00, 0x00, 0x76, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8,
+    0xE0, 0x60, 0x6C, 0x76, 0x66, 0x66, 0xE6, 0x00,
+    0x30, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00,
+    0x0C, 0x00, 0x1C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78,
+    0xE0, 0x60, 0x66, 0x6C, 0x78, 0x6C, 0xE6, 0x00,
+    0x70, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00,
+    0x00, 0x00, 0xCC, 0xFE, 0xFE, 0xD6, 0xD6, 0x00,
+    0x00, 0x00, 0xB8, 0xCC, 0xCC, 0xCC, 0xCC, 0x00,
+    0x00, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0x78, 0x00,
+    0x00, 0x00, 0xDC, 0x66, 0x66, 0x7C, 0x60, 0xF0,
+    0x00, 0x00, 0x76, 0xCC, 0xCC, 0x7C, 0x0C, 0x1E,
+    0x00, 0x00, 0xDC, 0x76, 0x62, 0x60, 0xF0, 0x00,
+    0x00, 0x00, 0x7C, 0xC0, 0x70, 0x1C, 0xF8, 0x00,
+    0x10, 0x30, 0xFC, 0x30, 0x30, 0x34, 0x18, 0x00,
+    0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00,
+    0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x00,
+    0x00, 0x00, 0xC6, 0xC6, 0xD6, 0xFE, 0x6C, 0x00,
+    0x00, 0x00, 0xC6, 0x6C, 0x38, 0x6C, 0xC6, 0x00,
+    0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8,
+    0x00, 0x00, 0xFC, 0x98, 0x30, 0x64, 0xFC, 0x00,
+    0x1C, 0x30, 0x30, 0xE0, 0x30, 0x30, 0x1C, 0x00,
+    0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00,
+    0xE0, 0x30, 0x30, 0x1C, 0x30, 0x30, 0xE0, 0x00,
+    0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0x00,
+    0x7C, 0xC6, 0xC0, 0xC6, 0x7C, 0x0C, 0x06, 0x7C,
+    0x00, 0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00,
+    0x1C, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00,
+    0x7E, 0x81, 0x3C, 0x06, 0x3E, 0x66, 0x3B, 0x00,
+    0xCC, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00,
+    0xE0, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00,
+    0x30, 0x30, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00,
+    0x00, 0x00, 0x7C, 0xC6, 0xC0, 0x78, 0x0C, 0x38,
+    0x7E, 0x81, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00,
+    0xCC, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00,
+    0xE0, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00,
+    0xCC, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00,
+    0x7C, 0x82, 0x38, 0x18, 0x18, 0x18, 0x3C, 0x00,
+    0xE0, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00,
+    0xC6, 0x10, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00,
+    0x30, 0x30, 0x00, 0x78, 0xCC, 0xFC, 0xCC, 0x00,
+    0x1C, 0x00, 0xFC, 0x60, 0x78, 0x60, 0xFC, 0x00,
+    0x00, 0x00, 0x7F, 0x0C, 0x7F, 0xCC, 0x7F, 0x00,
+    0x3E, 0x6C, 0xCC, 0xFE, 0xCC, 0xCC, 0xCE, 0x00,
+    0x78, 0x84, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00,
+    0x00, 0xCC, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00,
+    0x00, 0xE0, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00,
+    0x78, 0x84, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00,
+    0x00, 0xE0, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00,
+    0x00, 0xCC, 0x00, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8,
+    0xC3, 0x18, 0x3C, 0x66, 0x66, 0x3C, 0x18, 0x00,
+    0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x00,
+    0x18, 0x18, 0x7E, 0xC0, 0xC0, 0x7E, 0x18, 0x18,
+    0x38, 0x6C, 0x64, 0xF0, 0x60, 0xE6, 0xFC, 0x00,
+    0xCC, 0xCC, 0x78, 0x30, 0xFC, 0x30, 0xFC, 0x30,
+    0xF8, 0xCC, 0xCC, 0xFA, 0xC6, 0xCF, 0xC6, 0xC3,
+    0x0E, 0x1B, 0x18, 0x3C, 0x18, 0x18, 0xD8, 0x70,
+    0x1C, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00,
+    0x38, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00,
+    0x00, 0x1C, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00,
+    0x00, 0x1C, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00,
+    0x00, 0xF8, 0x00, 0xB8, 0xCC, 0xCC, 0xCC, 0x00,
+    0xFC, 0x00, 0xCC, 0xEC, 0xFC, 0xDC, 0xCC, 0x00,
+    0x3C, 0x6C, 0x6C, 0x3E, 0x00, 0x7E, 0x00, 0x00,
+    0x38, 0x6C, 0x6C, 0x38, 0x00, 0x7C, 0x00, 0x00,
+    0x18, 0x00, 0x18, 0x18, 0x30, 0x66, 0x3C, 0x00,
+    0x00, 0x00, 0x00, 0xFC, 0xC0, 0xC0, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xFC, 0x0C, 0x0C, 0x00, 0x00,
+    0xC6, 0xCC, 0xD8, 0x36, 0x6B, 0xC2, 0x84, 0x0F,
+    0xC3, 0xC6, 0xCC, 0xDB, 0x37, 0x6D, 0xCF, 0x03,
+    0x18, 0x00, 0x18, 0x18, 0x3C, 0x3C, 0x18, 0x00,
+    0x00, 0x33, 0x66, 0xCC, 0x66, 0x33, 0x00, 0x00,
+    0x00, 0xCC, 0x66, 0x33, 0x66, 0xCC, 0x00, 0x00,
+    0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88,
+    0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA,
+    0xDB, 0xF6, 0xDB, 0x6F, 0xDB, 0x7E, 0xD7, 0xED,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18,
+    0x36, 0x36, 0x36, 0x36, 0xF6, 0x36, 0x36, 0x36,
+    0x00, 0x00, 0x00, 0x00, 0xFE, 0x36, 0x36, 0x36,
+    0x00, 0x00, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18,
+    0x36, 0x36, 0xF6, 0x06, 0xF6, 0x36, 0x36, 0x36,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x00, 0x00, 0xFE, 0x06, 0xF6, 0x36, 0x36, 0x36,
+    0x36, 0x36, 0xF6, 0x06, 0xFE, 0x00, 0x00, 0x00,
+    0x36, 0x36, 0x36, 0x36, 0xFE, 0x00, 0x00, 0x00,
+    0x18, 0x18, 0xF8, 0x18, 0xF8, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0x1F, 0x00, 0x00, 0x00,
+    0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0xFF, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x18, 0x18,
+    0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00,
+    0x18, 0x18, 0x18, 0x18, 0xFF, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18,
+    0x36, 0x36, 0x36, 0x36, 0x37, 0x36, 0x36, 0x36,
+    0x36, 0x36, 0x37, 0x30, 0x3F, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x3F, 0x30, 0x37, 0x36, 0x36, 0x36,
+    0x36, 0x36, 0xF7, 0x00, 0xFF, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xFF, 0x00, 0xF7, 0x36, 0x36, 0x36,
+    0x36, 0x36, 0x37, 0x30, 0x37, 0x36, 0x36, 0x36,
+    0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00,
+    0x36, 0x36, 0xF7, 0x00, 0xF7, 0x36, 0x36, 0x36,
+    0x18, 0x18, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00,
+    0x36, 0x36, 0x36, 0x36, 0xFF, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xFF, 0x00, 0xFF, 0x18, 0x18, 0x18,
+    0x00, 0x00, 0x00, 0x00, 0xFF, 0x36, 0x36, 0x36,
+    0x36, 0x36, 0x36, 0x36, 0x3F, 0x00, 0x00, 0x00,
+    0x18, 0x18, 0x1F, 0x18, 0x1F, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18,
+    0x00, 0x00, 0x00, 0x00, 0x3F, 0x36, 0x36, 0x36,
+    0x36, 0x36, 0x36, 0x36, 0xFF, 0x36, 0x36, 0x36,
+    0x18, 0x18, 0xFF, 0x18, 0xFF, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0xF8, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x1F, 0x18, 0x18, 0x18,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
+    0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
+    0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x76, 0xDC, 0xC8, 0xDC, 0x76, 0x00,
+    0x00, 0x78, 0xCC, 0xF8, 0xCC, 0xF8, 0xC0, 0xC0,
+    0x00, 0xFC, 0xCC, 0xC0, 0xC0, 0xC0, 0xC0, 0x00,
+    0x00, 0x00, 0xFE, 0x6C, 0x6C, 0x6C, 0x6C, 0x00,
+    0xFC, 0xCC, 0x60, 0x30, 0x60, 0xCC, 0xFC, 0x00,
+    0x00, 0x00, 0x7E, 0xD8, 0xD8, 0xD8, 0x70, 0x00,
+    0x00, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x60, 0xC0,
+    0x00, 0x76, 0xDC, 0x18, 0x18, 0x18, 0x18, 0x00,
+    0xFC, 0x30, 0x78, 0xCC, 0xCC, 0x78, 0x30, 0xFC,
+    0x38, 0x6C, 0xC6, 0xFE, 0xC6, 0x6C, 0x38, 0x00,
+    0x38, 0x6C, 0xC6, 0xC6, 0x6C, 0x6C, 0xEE, 0x00,
+    0x1C, 0x30, 0x18, 0x7C, 0xCC, 0xCC, 0x78, 0x00,
+    0x00, 0x00, 0x7E, 0xDB, 0xDB, 0x7E, 0x00, 0x00,
+    0x06, 0x0C, 0x7E, 0xDB, 0xDB, 0x7E, 0x60, 0xC0,
+    0x38, 0x60, 0xC0, 0xF8, 0xC0, 0x60, 0x38, 0x00,
+    0x78, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x00,
+    0x00, 0x7E, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00,
+    0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x7E, 0x00,
+    0x60, 0x30, 0x18, 0x30, 0x60, 0x00, 0xFC, 0x00,
+    0x18, 0x30, 0x60, 0x30, 0x18, 0x00, 0xFC, 0x00,
+    0x0E, 0x1B, 0x1B, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0xD8, 0xD8, 0x70,
+    0x18, 0x18, 0x00, 0x7E, 0x00, 0x18, 0x18, 0x00,
+    0x00, 0x76, 0xDC, 0x00, 0x76, 0xDC, 0x00, 0x00,
+    0x38, 0x6C, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00,
+    0x0F, 0x0C, 0x0C, 0x0C, 0xEC, 0x6C, 0x3C, 0x1C,
+    0x58, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00,
+    0x70, 0x98, 0x30, 0x60, 0xF8, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x3C, 0x3C, 0x3C, 0x3C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+static CONST UCHAR Font8x14[VGA_FONT_CHARACTERS * 14] =
+{
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x7E, 0x81, 0xA5, 0x81,
+    0x81, 0xBD, 0x99, 0x81, 0x7E, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x7E, 0xFF, 0xDB, 0xFF,
+    0xFF, 0xC3, 0xE7, 0xFF, 0x7E, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x6C, 0xFE, 0xFE,
+    0xFE, 0xFE, 0x7C, 0x38, 0x10, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x7C,
+    0xFE, 0x7C, 0x38, 0x10, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x18, 0x3C, 0x3C, 0xE7,
+    0xE7, 0xE7, 0x18, 0x18, 0x3C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x18, 0x3C, 0x7E, 0xFF,
+    0xFF, 0x7E, 0x18, 0x18, 0x3C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18,
+    0x3C, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7,
+    0xC3, 0xC3, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66,
+    0x42, 0x42, 0x66, 0x3C, 0x00, 0x00, 0x00,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0x99,
+    0xBD, 0xBD, 0x99, 0xC3, 0xFF, 0xFF, 0xFF,
+    0x00, 0x00, 0x00, 0x1E, 0x0E, 0x1A, 0x32,
+    0x78, 0xCC, 0xCC, 0xCC, 0x78, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x3C, 0x66, 0x66, 0x66,
+    0x3C, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x3F, 0x33, 0x3F, 0x30,
+    0x30, 0x30, 0x70, 0xF0, 0xE0, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x7F, 0x63, 0x7F, 0x63,
+    0x63, 0x63, 0x67, 0xE7, 0xE6, 0xC0, 0x00,
+    0x00, 0x00, 0x00, 0x18, 0x18, 0xDB, 0x3C,
+    0xE7, 0x3C, 0xDB, 0x18, 0x18, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF8,
+    0xFE, 0xF8, 0xE0, 0xC0, 0x80, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x02, 0x06, 0x0E, 0x3E,
+    0xFE, 0x3E, 0x0E, 0x06, 0x02, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x18, 0x3C, 0x7E, 0x18,
+    0x18, 0x18, 0x7E, 0x3C, 0x18, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66,
+    0x66, 0x66, 0x00, 0x66, 0x66, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x7F, 0xDB, 0xDB, 0xDB,
+    0x7B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00,
+    0x00, 0x7C, 0xC6, 0x60, 0x38, 0x6C, 0xC6,
+    0x6C, 0x38, 0x0C, 0xC6, 0x7C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0xFE,
+    0x00, 0x00, 0x00, 0x18, 0x3C, 0x7E, 0x18,
+    0x18, 0x18, 0x7E, 0x3C, 0x18, 0x7E, 0x00,
+    0x00, 0x00, 0x00, 0x18, 0x3C, 0x7E, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x7E, 0x3C, 0x18, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0C,
+    0xFE, 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x60,
+    0xFE, 0x60, 0x30, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0,
+    0xC0, 0xC0, 0xFE, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6C,
+    0xFE, 0x6C, 0x28, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x38,
+    0x7C, 0x7C, 0xFE, 0xFE, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x7C,
+    0x7C, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x18, 0x3C, 0x3C, 0x3C,
+    0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00,
+    0x00, 0x66, 0x66, 0x66, 0x24, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x6C, 0x6C, 0xFE, 0x6C,
+    0x6C, 0x6C, 0xFE, 0x6C, 0x6C, 0x00, 0x00,
+    0x00, 0x18, 0x18, 0x7C, 0xC6, 0xC2, 0xC0,
+    0x7C, 0x06, 0x86, 0xC6, 0x7C, 0x18, 0x18,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0xC6,
+    0x0C, 0x18, 0x30, 0x66, 0xC6, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x38, 0x6C, 0x6C, 0x38,
+    0x76, 0xDC, 0xCC, 0xCC, 0x76, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x30,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x0C, 0x18, 0x30, 0x30,
+    0x30, 0x30, 0x30, 0x18, 0x0C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x30, 0x18, 0x0C, 0x0C,
+    0x0C, 0x0C, 0x0C, 0x18, 0x30, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x3C,
+    0xFF, 0x3C, 0x66, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18,
+    0x7E, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x18, 0x18, 0x30, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x02, 0x06, 0x0C, 0x18,
+    0x30, 0x60, 0xC0, 0x80, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x38, 0x6C, 0xC6, 0xC6,
+    0xD6, 0xC6, 0xC6, 0x6C, 0x38, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x18, 0x38, 0x78, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0x7E, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x7C, 0xC6, 0x06, 0x0C,
+    0x18, 0x30, 0x60, 0xC6, 0xFE, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x7C, 0xC6, 0x06, 0x06,
+    0x3C, 0x06, 0x06, 0xC6, 0x7C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x0C, 0x1C, 0x3C, 0x6C,
+    0xCC, 0xFE, 0x0C, 0x0C, 0x1E, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xFE, 0xC0, 0xC0, 0xC0,
+    0xFC, 0x06, 0x06, 0xC6, 0x7C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x38, 0x60, 0xC0, 0xC0,
+    0xFC, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xFE, 0xC6, 0x06, 0x0C,
+    0x18, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6,
+    0x7C, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6,
+    0x7E, 0x06, 0x06, 0x0C, 0x78, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18,
+    0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18,
+    0x00, 0x00, 0x00, 0x18, 0x18, 0x30, 0x00,
+    0x00, 0x00, 0x00, 0x0C, 0x18, 0x30, 0x60,
+    0xC0, 0x60, 0x30, 0x18, 0x0C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E,
+    0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x0C,
+    0x06, 0x0C, 0x18, 0x30, 0x60, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0x0C,
+    0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xDE,
+    0xDE, 0xDE, 0xDC, 0xC0, 0x7C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x10, 0x38, 0x6C, 0xC6,
+    0xC6, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xFC, 0x66, 0x66, 0x66,
+    0x7C, 0x66, 0x66, 0x66, 0xFC, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0,
+    0xC0, 0xC0, 0xC2, 0x66, 0x3C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xF8, 0x6C, 0x66, 0x66,
+    0x66, 0x66, 0x66, 0x6C, 0xF8, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xFE, 0x66, 0x62, 0x68,
+    0x78, 0x68, 0x62, 0x66, 0xFE, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xFE, 0x66, 0x62, 0x68,
+    0x78, 0x68, 0x60, 0x60, 0xF0, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0,
+    0xC0, 0xDE, 0xC6, 0x66, 0x3A, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6,
+    0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x3C, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x1E, 0x0C, 0x0C, 0x0C,
+    0x0C, 0x0C, 0xCC, 0xCC, 0x78, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xE6, 0x66, 0x6C, 0x6C,
+    0x78, 0x6C, 0x6C, 0x66, 0xE6, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xF0, 0x60, 0x60, 0x60,
+    0x60, 0x60, 0x62, 0x66, 0xFE, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xC6, 0xEE, 0xFE, 0xD6,
+    0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xC6, 0xE6, 0xF6, 0xFE,
+    0xDE, 0xCE, 0xC6, 0xC6, 0xC6, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6,
+    0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xFC, 0x66, 0x66, 0x66,
+    0x7C, 0x60, 0x60, 0x60, 0xF0, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6,
+    0xC6, 0xC6, 0xD6, 0xDE, 0x7C, 0x0E, 0x00,
+    0x00, 0x00, 0x00, 0xFC, 0x66, 0x66, 0x66,
+    0x7C, 0x6C, 0x66, 0x66, 0xE6, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0x60,
+    0x38, 0x0C, 0xC6, 0xC6, 0x7C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x7E, 0x7E, 0x5A, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6,
+    0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6,
+    0xC6, 0xC6, 0x6C, 0x38, 0x10, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6,
+    0xD6, 0xD6, 0xFE, 0x6C, 0x6C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0x7C,
+    0x38, 0x7C, 0xC6, 0xC6, 0xC6, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66,
+    0x3C, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xFE, 0xC6, 0x8C, 0x18,
+    0x30, 0x60, 0xC2, 0xC6, 0xFE, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x3C, 0x30, 0x30, 0x30,
+    0x30, 0x30, 0x30, 0x30, 0x3C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0x70,
+    0x38, 0x1C, 0x0E, 0x06, 0x02, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x3C, 0x0C, 0x0C, 0x0C,
+    0x0C, 0x0C, 0x0C, 0x0C, 0x3C, 0x00, 0x00,
+    0x38, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00,
+    0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78,
+    0x0C, 0x7C, 0xCC, 0xCC, 0x76, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xE0, 0x60, 0x60, 0x78,
+    0x6C, 0x66, 0x66, 0x66, 0x7C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C,
+    0xC6, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x1C, 0x0C, 0x0C, 0x3C,
+    0x6C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C,
+    0xC6, 0xFE, 0xC0, 0xC6, 0x7C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x1C, 0x36, 0x32, 0x30,
+    0x7C, 0x30, 0x30, 0x30, 0x78, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76,
+    0xCC, 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0x78,
+    0x00, 0x00, 0x00, 0xE0, 0x60, 0x60, 0x6C,
+    0x76, 0x66, 0x66, 0x66, 0xE6, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x38,
+    0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x06, 0x06, 0x00, 0x0E,
+    0x06, 0x06, 0x06, 0x06, 0x66, 0x66, 0x3C,
+    0x00, 0x00, 0x00, 0xE0, 0x60, 0x60, 0x66,
+    0x6C, 0x78, 0x6C, 0x66, 0xE6, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x38, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEC,
+    0xFE, 0xD6, 0xD6, 0xD6, 0xD6, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC,
+    0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C,
+    0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC,
+    0x66, 0x66, 0x66, 0x66, 0x7C, 0x60, 0xF0,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76,
+    0xCC, 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0x1E,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC,
+    0x76, 0x66, 0x60, 0x60, 0xF0, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C,
+    0xC6, 0x70, 0x1C, 0xC6, 0x7C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x10, 0x30, 0x30, 0xFC,
+    0x30, 0x30, 0x30, 0x36, 0x1C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC,
+    0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6,
+    0xC6, 0xC6, 0x6C, 0x38, 0x10, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6,
+    0xC6, 0xD6, 0xD6, 0xFE, 0x6C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6,
+    0x6C, 0x38, 0x38, 0x6C, 0xC6, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6,
+    0xC6, 0xC6, 0xC6, 0xC6, 0x7E, 0x06, 0x7C,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE,
+    0xCC, 0x18, 0x30, 0x66, 0xFE, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x0E, 0x18, 0x18, 0x18,
+    0x70, 0x18, 0x18, 0x18, 0x0E, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x70, 0x18, 0x18, 0x18,
+    0x0E, 0x18, 0x18, 0x18, 0x70, 0x00, 0x00,
+    0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
+    0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0,
+    0xC0, 0xC0, 0xC2, 0x66, 0x3C, 0x18, 0x70,
+    0x00, 0x00, 0x00, 0x00, 0xCC, 0x00, 0xCC,
+    0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00,
+    0x00, 0x00, 0x06, 0x0C, 0x18, 0x00, 0x7C,
+    0xC6, 0xFE, 0xC0, 0xC6, 0x7C, 0x00, 0x00,
+    0x00, 0x00, 0x10, 0x38, 0x6C, 0x00, 0x78,
+    0x0C, 0x7C, 0xCC, 0xCC, 0x76, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0xCC, 0x00, 0x78,
+    0x0C, 0x7C, 0xCC, 0xCC, 0x76, 0x00, 0x00,
+    0x00, 0x00, 0xC0, 0x60, 0x30, 0x00, 0x78,
+    0x0C, 0x7C, 0xCC, 0xCC, 0x76, 0x00, 0x00,
+    0x00, 0x00, 0x38, 0x6C, 0x38, 0x00, 0x78,
+    0x0C, 0x7C, 0xCC, 0xCC, 0x76, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C,
+    0xC6, 0xC0, 0xC0, 0xC6, 0x7C, 0x18, 0x70,
+    0x00, 0x00, 0x10, 0x38, 0x6C, 0x00, 0x7C,
+    0xC6, 0xFE, 0xC0, 0xC6, 0x7C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0xC6, 0x00, 0x7C,
+    0xC6, 0xFE, 0xC0, 0xC6, 0x7C, 0x00, 0x00,
+    0x00, 0x00, 0x60, 0x30, 0x18, 0x00, 0x7C,
+    0xC6, 0xFE, 0xC0, 0xC6, 0x7C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x66, 0x00, 0x38,
+    0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00,
+    0x00, 0x00, 0x18, 0x3C, 0x66, 0x00, 0x38,
+    0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00,
+    0x00, 0x00, 0x60, 0x30, 0x18, 0x00, 0x38,
+    0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00,
+    0x00, 0xC6, 0x00, 0x10, 0x38, 0x6C, 0xC6,
+    0xC6, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00,
+    0x38, 0x6C, 0x38, 0x10, 0x38, 0x6C, 0xC6,
+    0xC6, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00,
+    0x0C, 0x18, 0x00, 0xFE, 0x66, 0x62, 0x68,
+    0x78, 0x68, 0x62, 0x66, 0xFE, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEC,
+    0x36, 0x76, 0xDC, 0xD8, 0x6E, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x3E, 0x6C, 0xCC, 0xCC,
+    0xFE, 0xCC, 0xCC, 0xCC, 0xCE, 0x00, 0x00,
+    0x00, 0x00, 0x10, 0x38, 0x6C, 0x00, 0x7C,
+    0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0xC6, 0x00, 0x7C,
+    0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00,
+    0x00, 0x00, 0x60, 0x30, 0x18, 0x00, 0x7C,
+    0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00,
+    0x00, 0x00, 0x30, 0x78, 0xCC, 0x00, 0xCC,
+    0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00,
+    0x00, 0x00, 0xC0, 0x60, 0x30, 0x00, 0xCC,
+    0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0xC6, 0x00, 0xC6,
+    0xC6, 0xC6, 0xC6, 0xC6, 0x7E, 0x06, 0x7C,
+    0x00, 0xC6, 0x00, 0x7C, 0xC6, 0xC6, 0xC6,
+    0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00,
+    0x00, 0xC6, 0x00, 0xC6, 0xC6, 0xC6, 0xC6,
+    0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x18, 0x18, 0x7C, 0xC6,
+    0xC0, 0xC6, 0x7C, 0x18, 0x18, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x38, 0x6C, 0x64, 0x60,
+    0xF0, 0x60, 0x60, 0x66, 0xFC, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x66, 0x66, 0x3C, 0x18,
+    0x7E, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xFC, 0x66, 0x66, 0x7C,
+    0x62, 0x66, 0x6F, 0x66, 0xF3, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x0E, 0x1B, 0x18, 0x18,
+    0x7E, 0x18, 0x18, 0xD8, 0x70, 0x00, 0x00,
+    0x00, 0x00, 0x0C, 0x18, 0x30, 0x00, 0x78,
+    0x0C, 0x7C, 0xCC, 0xCC, 0x76, 0x00, 0x00,
+    0x00, 0x00, 0x06, 0x0C, 0x18, 0x00, 0x38,
+    0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00,
+    0x00, 0x00, 0x06, 0x0C, 0x18, 0x00, 0x7C,
+    0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00,
+    0x00, 0x00, 0x0C, 0x18, 0x30, 0x00, 0xCC,
+    0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x76, 0xDC, 0x00, 0xDC,
+    0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00,
+    0x76, 0xDC, 0x00, 0xC6, 0xE6, 0xF6, 0xFE,
+    0xDE, 0xCE, 0xC6, 0xC6, 0xC6, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x3C, 0x6C, 0x6C, 0x36,
+    0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x38, 0x6C, 0x6C, 0x38,
+    0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x30,
+    0x30, 0x60, 0xC6, 0xC6, 0x7C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE,
+    0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE,
+    0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x60, 0xE0, 0x63, 0x66, 0x6C, 0x18,
+    0x30, 0x6E, 0xC3, 0x06, 0x0C, 0x1F, 0x00,
+    0x00, 0x60, 0xE0, 0x63, 0x66, 0x6C, 0x18,
+    0x36, 0x6E, 0xDA, 0x3F, 0x06, 0x06, 0x00,
+    0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x18,
+    0x18, 0x3C, 0x3C, 0x3C, 0x18, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x36, 0x6C, 0xD8, 0x6C, 0x36, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0xD8, 0x6C, 0x36, 0x6C, 0xD8, 0x00, 0x00,
+    0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11,
+    0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44,
+    0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55,
+    0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA,
+    0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD,
+    0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18,
+    0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0xF6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0xFE, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x18,
+    0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, 0x06,
+    0xF6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x06,
+    0xF6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, 0x06,
+    0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18,
+    0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18,
+    0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30,
+    0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x30,
+    0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0xF7, 0x00,
+    0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00,
+    0xF7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30,
+    0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00,
+    0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0xF7, 0x00,
+    0xF7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x00,
+    0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00,
+    0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0xFF, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18,
+    0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x18,
+    0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x3F, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0xFF, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x18,
+    0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
+    0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
+    0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
+    0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76,
+    0xDC, 0xD8, 0xD8, 0xDC, 0x76, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x78, 0xCC, 0xCC, 0xD8,
+    0xCC, 0xC6, 0xC6, 0xC6, 0xCC, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xFE, 0xC6, 0xC6, 0xC0,
+    0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE,
+    0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xFE, 0xC6, 0x60, 0x30,
+    0x18, 0x30, 0x60, 0xC6, 0xFE, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E,
+    0xD8, 0xD8, 0xD8, 0xD8, 0x70, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66,
+    0x66, 0x66, 0x66, 0x66, 0x7C, 0x60, 0xC0,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76,
+    0xDC, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x7E, 0x18, 0x3C, 0x66,
+    0x66, 0x66, 0x3C, 0x18, 0x7E, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x38, 0x6C, 0xC6, 0xC6,
+    0xFE, 0xC6, 0xC6, 0x6C, 0x38, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x38, 0x6C, 0xC6, 0xC6,
+    0xC6, 0x6C, 0x6C, 0x6C, 0xEE, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x1E, 0x30, 0x18, 0x0C,
+    0x3E, 0x66, 0x66, 0x66, 0x3C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xDB,
+    0xDB, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x03, 0x06, 0x7E, 0xDB,
+    0xDB, 0xF3, 0x7E, 0x60, 0xC0, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x1E, 0x30, 0x60, 0x60,
+    0x7E, 0x60, 0x60, 0x30, 0x1E, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6,
+    0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00,
+    0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x18, 0x18, 0x7E, 0x18,
+    0x18, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x30, 0x18, 0x0C, 0x06,
+    0x0C, 0x18, 0x30, 0x00, 0x7E, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x0C, 0x18, 0x30, 0x60,
+    0x30, 0x18, 0x0C, 0x00, 0x7E, 0x00, 0x00,
+    0x00, 0x00, 0x0E, 0x1B, 0x1B, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x18, 0xD8, 0xD8, 0x70, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00,
+    0x7E, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDC,
+    0x00, 0x76, 0xDC, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x38, 0x6C, 0x6C, 0x38,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x0F, 0x0C, 0x0C, 0x0C, 0x0C,
+    0x0C, 0xEC, 0x6C, 0x3C, 0x1C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x6C, 0x36, 0x36, 0x36,
+    0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x3C, 0x66, 0x0C, 0x18,
+    0x32, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E,
+    0x7E, 0x7E, 0x7E, 0x7E, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
+static CONST UCHAR Font8x16[VGA_FONT_CHARACTERS * 16] =
+{
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x7E, 0x81, 0xA5, 0x81, 0x81, 0xBD,
+    0x99, 0x81, 0x81, 0x7E, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x7C, 0xFE, 0xFE, 0xD6, 0xFE, 0xFE,
+    0xBA, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x6C, 0xEE, 0xFE, 0xFE, 0xFE,
+    0xFE, 0x7C, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x10, 0x38, 0x7C, 0xFE, 0x7C,
+    0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x10, 0x38, 0x38, 0x10, 0x6C,
+    0xEE, 0x6C, 0x10, 0x38, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x10, 0x38, 0x7C, 0x7C, 0xFE, 0xFE,
+    0xFE, 0x6C, 0x10, 0x38, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, 0x3C,
+    0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xC3, 0xC3,
+    0xC3, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, 0x66, 0x66,
+    0x66, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xC3, 0x99, 0x99,
+    0x99, 0xC3, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0x00, 0x00, 0x1E, 0x0E, 0x1E, 0x36, 0x78, 0xCC,
+    0xCC, 0xCC, 0xCC, 0x78, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x18,
+    0x7E, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x1E, 0x1A, 0x1E, 0x18, 0x18, 0x18,
+    0x18, 0x78, 0xF8, 0x70, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x3E, 0x36, 0x3E, 0x36, 0x36, 0x76,
+    0xF6, 0x66, 0x0E, 0x1E, 0x0C, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x18, 0xDB, 0x7E, 0x3C, 0x66, 0x66,
+    0x3C, 0x7E, 0xDB, 0x18, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x80, 0xE0, 0xF0, 0xFC, 0xFE,
+    0xFC, 0xF0, 0xE0, 0x80, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x02, 0x0E, 0x3E, 0x7E, 0xFE,
+    0x7E, 0x3E, 0x0E, 0x02, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18,
+    0x18, 0x7E, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,
+    0x66, 0x00, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x7F, 0xDB, 0xDB, 0xDB, 0xDB, 0x7B,
+    0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x7C, 0xC6, 0xC6, 0x60, 0x7C, 0xF6,
+    0xDE, 0x7C, 0x0C, 0xC6, 0xC6, 0x7C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0xFE, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18,
+    0x7E, 0x3C, 0x18, 0x7E, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x18, 0x7E, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0E, 0xFF,
+    0x0E, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x70, 0xFE,
+    0x70, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0,
+    0xC0, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x66, 0xFF,
+    0x66, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x10, 0x38, 0x38, 0x38, 0x7C,
+    0x7C, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xFE, 0xFE, 0x7C, 0x7C, 0x7C,
+    0x38, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x18, 0x3C, 0x3C, 0x3C, 0x3C, 0x18,
+    0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x36, 0x36, 0x36, 0x36, 0x14, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x6C, 0x6C, 0x6C, 0xFE, 0x6C, 0x6C,
+    0xFE, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x18, 0x18, 0x7C, 0xC6, 0xC0, 0x78,
+    0x3C, 0x06, 0xC6, 0x7C, 0x18, 0x18, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x66, 0x0C,
+    0x18, 0x30, 0x66, 0xC6, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x38, 0x6C, 0x38, 0x30, 0x76, 0x7E,
+    0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x0C, 0x0C, 0x0C, 0x18, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x30,
+    0x30, 0x30, 0x18, 0x0C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x0C,
+    0x0C, 0x0C, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0x38, 0xFE,
+    0x38, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7E,
+    0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x0C, 0x0C, 0x0C, 0x18, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x0C, 0x18,
+    0x30, 0x60, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xCE, 0xDE, 0xF6,
+    0xE6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x18, 0x78, 0x18, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x7E, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x7C, 0xC6, 0xC6, 0x06, 0x0C, 0x18,
+    0x30, 0x60, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x7C, 0xC6, 0x06, 0x06, 0x3C, 0x06,
+    0x06, 0x06, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x0C, 0x1C, 0x3C, 0x6C, 0xCC, 0xCC,
+    0xFE, 0x0C, 0x0C, 0x1E, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xFE, 0xC0, 0xC0, 0xC0, 0xFC, 0x06,
+    0x06, 0x06, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x7C, 0xC6, 0xC0, 0xC0, 0xFC, 0xC6,
+    0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xFE, 0xC6, 0x06, 0x0C, 0x18, 0x30,
+    0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0x7C, 0xC6,
+    0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0x7E,
+    0x06, 0x06, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00,
+    0x00, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00,
+    0x00, 0x0C, 0x0C, 0x0C, 0x18, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x0C, 0x18, 0x30, 0x60, 0xC0,
+    0x60, 0x30, 0x18, 0x0C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00,
+    0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x0C, 0x06,
+    0x0C, 0x18, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x7C, 0xC6, 0xC6, 0x0C, 0x18, 0x18,
+    0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xDE, 0xDE,
+    0xDE, 0xDC, 0xC0, 0x7E, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0xFE,
+    0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xFC, 0x66, 0x66, 0x66, 0x7C, 0x66,
+    0x66, 0x66, 0x66, 0xFC, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0, 0xC0, 0xC0,
+    0xC0, 0xC2, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xF8, 0x6C, 0x66, 0x66, 0x66, 0x66,
+    0x66, 0x66, 0x6C, 0xF8, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xFE, 0x66, 0x60, 0x64, 0x7C, 0x64,
+    0x60, 0x60, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xFE, 0x66, 0x60, 0x64, 0x7C, 0x64,
+    0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC0, 0xC0, 0xC0,
+    0xCE, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xFE, 0xC6,
+    0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x18, 0xD8, 0xD8, 0x70, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xC6, 0xC6, 0xCC, 0xD8, 0xF0, 0xF0,
+    0xD8, 0xCC, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xF0, 0x60, 0x60, 0x60, 0x60, 0x60,
+    0x60, 0x62, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xC6, 0xC6, 0xEE, 0xEE, 0xFE, 0xD6,
+    0xD6, 0xD6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xC6, 0xC6, 0xE6, 0xE6, 0xF6, 0xDE,
+    0xCE, 0xCE, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6,
+    0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xFC, 0x66, 0x66, 0x66, 0x66, 0x7C,
+    0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6,
+    0xC6, 0xD6, 0xD6, 0x7C, 0x06, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xFC, 0x66, 0x66, 0x66, 0x7C, 0x78,
+    0x6C, 0x66, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x7C, 0xC6, 0xC0, 0xC0, 0x70, 0x1C,
+    0x06, 0x06, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x7E, 0x5A, 0x18, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6,
+    0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6,
+    0xC6, 0x6C, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xD6, 0xD6, 0xD6,
+    0xFE, 0xEE, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xC6, 0xC6, 0xC6, 0x6C, 0x38, 0x38,
+    0x6C, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C,
+    0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xFE, 0xC6, 0x86, 0x0C, 0x18, 0x30,
+    0x60, 0xC2, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x7C, 0x60, 0x60, 0x60, 0x60, 0x60,
+    0x60, 0x60, 0x60, 0x7C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0x60, 0x30,
+    0x18, 0x0C, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x7C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C,
+    0x0C, 0x0C, 0x0C, 0x7C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x10, 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00,
+    0x00, 0x18, 0x18, 0x18, 0x0C, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0C, 0x7C,
+    0xCC, 0xCC, 0xDC, 0x76, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xE0, 0x60, 0x60, 0x7C, 0x66, 0x66,
+    0x66, 0x66, 0x66, 0xFC, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC0,
+    0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x1C, 0x0C, 0x0C, 0x7C, 0xCC, 0xCC,
+    0xCC, 0xCC, 0xCC, 0x7E, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6,
+    0xFE, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x1C, 0x36, 0x30, 0x30, 0xFC, 0x30,
+    0x30, 0x30, 0x30, 0x78, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xCE, 0xC6,
+    0xC6, 0xCE, 0x76, 0x06, 0xC6, 0x7C, 0x00, 0x00,
+    0x00, 0x00, 0xE0, 0x60, 0x60, 0x7C, 0x66, 0x66,
+    0x66, 0x66, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x18, 0x18, 0x00, 0x38, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x0C, 0x0C, 0x00, 0x1C, 0x0C, 0x0C,
+    0x0C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78, 0x00, 0x00,
+    0x00, 0x00, 0xE0, 0x60, 0x60, 0x66, 0x66, 0x6C,
+    0x78, 0x6C, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x1C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xFE, 0xD6,
+    0xD6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x66, 0x66,
+    0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6,
+    0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x66, 0x66,
+    0x66, 0x66, 0x7C, 0x60, 0x60, 0xF0, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xCC, 0xCC,
+    0xCC, 0xCC, 0x7C, 0x0C, 0x0C, 0x1E, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x66, 0x60,
+    0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC0,
+    0x7C, 0x06, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x30, 0x30, 0x30, 0xFC, 0x30, 0x30,
+    0x30, 0x30, 0x36, 0x1C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0xCC, 0xCC,
+    0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6,
+    0xC6, 0x6C, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xD6,
+    0xD6, 0xD6, 0xFE, 0x6C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0x6C,
+    0x38, 0x6C, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6,
+    0xC6, 0xCE, 0x76, 0x06, 0xC6, 0x7C, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x86, 0x0C,
+    0x18, 0x30, 0x62, 0xFE, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x0E, 0x18, 0x18, 0x18, 0x70, 0x18,
+    0x18, 0x18, 0x18, 0x0E, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x70, 0x18, 0x18, 0x18, 0x0E, 0x18,
+    0x18, 0x18, 0x18, 0x70, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x76, 0xDC, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x38,
+    0x6C, 0x6C, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x3C, 0x66, 0xC0, 0xC0, 0xC0, 0xC6,
+    0x66, 0x3C, 0x18, 0x0C, 0xCC, 0x38, 0x00, 0x00,
+    0x00, 0x00, 0xC6, 0x00, 0x00, 0xC6, 0xC6, 0xC6,
+    0xC6, 0xC6, 0xCE, 0x76, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x0C, 0x18, 0x30, 0x00, 0x7C, 0xC6, 0xC6,
+    0xFE, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x30, 0x78, 0xCC, 0x00, 0x78, 0x0C, 0x7C,
+    0xCC, 0xCC, 0xDC, 0x76, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xCC, 0x00, 0x00, 0x78, 0x0C, 0x7C,
+    0xCC, 0xCC, 0xDC, 0x76, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x60, 0x30, 0x18, 0x00, 0x78, 0x0C, 0x7C,
+    0xCC, 0xCC, 0xDC, 0x76, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x38, 0x6C, 0x38, 0x00, 0x78, 0x0C, 0x7C,
+    0xCC, 0xCC, 0xDC, 0x76, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC0, 0xC0,
+    0xC6, 0x7C, 0x18, 0x0C, 0x6C, 0x38, 0x00, 0x00,
+    0x00, 0x30, 0x78, 0xCC, 0x00, 0x7C, 0xC6, 0xC6,
+    0xFE, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xCC, 0x00, 0x00, 0x7C, 0xC6, 0xC6,
+    0xFE, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x30, 0x18, 0x0C, 0x00, 0x7C, 0xC6, 0xC6,
+    0xFE, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x66, 0x00, 0x00, 0x38, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x18, 0x3C, 0x66, 0x00, 0x38, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0xC6, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xC6,
+    0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
+    0x38, 0x6C, 0x38, 0x00, 0x38, 0x6C, 0xC6, 0xC6,
+    0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
+    0x0C, 0x18, 0x30, 0x00, 0xFE, 0x60, 0x60, 0x7C,
+    0x60, 0x60, 0x60, 0xFE, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x66, 0xDB, 0x1B, 0x7F,
+    0xD8, 0xD8, 0xDF, 0x76, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x7E, 0xD8, 0xD8, 0xD8, 0xD8, 0xFE,
+    0xD8, 0xD8, 0xD8, 0xDE, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x30, 0x78, 0xCC, 0x00, 0x7C, 0xC6, 0xC6,
+    0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xC6, 0x00, 0x00, 0x7C, 0xC6, 0xC6,
+    0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x30, 0x18, 0x0C, 0x00, 0x7C, 0xC6, 0xC6,
+    0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x30, 0x78, 0xCC, 0x00, 0xC6, 0xC6, 0xC6,
+    0xC6, 0xC6, 0xCE, 0x76, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x60, 0x30, 0x18, 0x00, 0xC6, 0xC6, 0xC6,
+    0xC6, 0xC6, 0xCE, 0x76, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x18, 0x00, 0x3C, 0x18, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0xC6, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6,
+    0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0xC6, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6,
+    0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x18, 0x18, 0x7C, 0xC6, 0xC0, 0xC0,
+    0xC6, 0x7C, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x38, 0x6C, 0x60, 0x60, 0xF0, 0x60, 0x60,
+    0x60, 0x66, 0xF6, 0x6C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E,
+    0x18, 0x3C, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x3E, 0x63, 0x63, 0x30, 0x1C, 0x06,
+    0x63, 0x63, 0x3E, 0x00, 0x1C, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x63, 0x38,
+    0x0E, 0x63, 0x3E, 0x00, 0x1C, 0x00, 0x00, 0x00,
+    0x00, 0x0C, 0x18, 0x30, 0x00, 0x78, 0x0C, 0x7C,
+    0xCC, 0xCC, 0xDC, 0x76, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x0C, 0x18, 0x30, 0x00, 0x38, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x0C, 0x18, 0x30, 0x00, 0x7C, 0xC6, 0xC6,
+    0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x18, 0x30, 0x60, 0x00, 0xCC, 0xCC, 0xCC,
+    0xCC, 0xCC, 0xDC, 0x76, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x76, 0xDC, 0x00, 0xBC, 0x66, 0x66,
+    0x66, 0x66, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x76, 0xDC, 0x00, 0xC6, 0xC6, 0xE6, 0xF6,
+    0xDE, 0xCE, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x21, 0x1E, 0x00, 0x1E, 0x33, 0x60, 0x60,
+    0x67, 0x63, 0x33, 0x1D, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x42, 0x3C, 0x00, 0x3B, 0x66, 0x66, 0x66,
+    0x3E, 0x06, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x30, 0x30, 0x00, 0x30, 0x30, 0x30,
+    0x60, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E,
+    0x60, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E,
+    0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x60, 0x60, 0x62, 0x66, 0x6C, 0x18, 0x30,
+    0x60, 0xDC, 0x36, 0x0C, 0x18, 0x3E, 0x00, 0x00,
+    0x00, 0x60, 0x60, 0x62, 0x66, 0x6C, 0x18, 0x36,
+    0x6E, 0xDE, 0x36, 0x7E, 0x06, 0x06, 0x00, 0x00,
+    0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x3C,
+    0x3C, 0x3C, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x6C, 0xD8,
+    0x6C, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0x6C, 0x36,
+    0x6C, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44,
+    0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44,
+    0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55,
+    0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55,
+    0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77,
+    0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0xF8,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xF6,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0xF8,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, 0x06, 0xF6,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x06, 0xF6,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, 0x06, 0xFE,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xFE,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0xF8,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x1F,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, 0x3F,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x30, 0x37,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0xF7, 0x00, 0xFF,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xF7,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, 0x37,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0xF7, 0x00, 0xF7,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0xFF,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xFF,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x3F,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x1F,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x18, 0x1F,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xFF,
+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x18, 0xFF,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
+    0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
+    0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
+    0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, 0xD8, 0xD8,
+    0xD8, 0xD8, 0xDC, 0x76, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x78, 0xCC, 0xCC, 0xD8, 0xFC, 0xC6,
+    0xC6, 0xC6, 0xC6, 0xCC, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xFE, 0x66, 0x62, 0x60, 0x60, 0x60,
+    0x60, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x6C, 0x6C,
+    0x6C, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xFE, 0xC6, 0x62, 0x30, 0x18, 0x18,
+    0x30, 0x62, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xD8, 0xCC,
+    0xCC, 0xCC, 0xD8, 0x70, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66,
+    0x66, 0x7C, 0x60, 0xC0, 0x80, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xFE, 0x38, 0x38, 0x6C, 0xC6, 0xC6,
+    0x6C, 0x38, 0x38, 0xFE, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xFE,
+    0xC6, 0xC6, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0xC6,
+    0x6C, 0x6C, 0x6C, 0xEE, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x3E, 0x60, 0x60, 0x3C, 0x66, 0xC6,
+    0xC6, 0xC6, 0xCC, 0x78, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xDB, 0xDB,
+    0xDB, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x02, 0x06, 0x7C, 0xCE, 0xDE, 0xF6,
+    0xF6, 0x7C, 0x60, 0xC0, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x1C, 0x30, 0x60, 0x60, 0x7C,
+    0x60, 0x60, 0x30, 0x1C, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6,
+    0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE,
+    0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7E, 0x18,
+    0x18, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x30, 0x18, 0x0C, 0x06, 0x0C, 0x18,
+    0x30, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x0C, 0x18, 0x30, 0x60, 0x30, 0x18,
+    0x0C, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x0C, 0x1E, 0x1A, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0x18, 0x18, 0x58, 0x78, 0x30, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x7E,
+    0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDC,
+    0x00, 0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18,
+    0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18,
+    0xD8, 0xD8, 0x78, 0x38, 0x18, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xD8, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x70, 0xD8, 0x18, 0x30, 0x60, 0xF8,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x7E,
+    0x7E, 0x7E, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
 /* PRIVATE FUNCTIONS **********************************************************/
 
 static VOID VidBiosReadWindow(LPWORD Buffer, SMALL_RECT Rectangle, BYTE Page)
@@ -740,6 +2075,16 @@ Done:
     return TRUE;
 }
 
+static __inline VOID VgaSetSinglePaletteRegister(BYTE Index, BYTE Value)
+{
+    /* Write the index */
+    IOReadB(VGA_INSTAT1_READ); // Put the AC register into index state
+    IOWriteB(VGA_AC_INDEX, Index);
+
+    /* Write the data */
+    IOWriteB(VGA_AC_WRITE, Value);
+}
+
 static BOOLEAN VgaSetRegisters(PVGA_REGISTERS Registers)
 {
     INT i;
@@ -803,9 +2148,7 @@ static BOOLEAN VgaSetRegisters(PVGA_REGISTERS Registers)
     // DbgPrint("\n");
     for (i = 0; i < VGA_AC_MAX_REG; i++)
     {
-        IOReadB(VGA_INSTAT1_READ); // Put the AC register into index state
-        IOWriteB(VGA_AC_INDEX, i);
-        IOWriteB(VGA_AC_WRITE, Registers->Attribute[i]);
+        VgaSetSinglePaletteRegister(i, Registers->Attribute[i]);
         // DbgPrint("Registers->Attribute[%d] = %d\n", i, Registers->Attribute[i]);
     }
     // DbgPrint("\n");
@@ -864,17 +2207,28 @@ static VOID VgaChangePalette(BYTE ModeNumber)
         Palette = VgaPalette;
         Size    = sizeof(VgaPalette)/sizeof(VgaPalette[0]);
     }
-    else if (ModeNumber == 0x10)
+    else if (ModeNumber == 0x10) // || (ModeNumber == 0x0D) || (ModeNumber == 0x0E)
     {
         /* EGA HiRes mode */
         Palette = EgaPalette__HiRes;
         Size    = sizeof(EgaPalette__HiRes)/sizeof(EgaPalette__HiRes[0]);
     }
+#if 0
+    else if ((ModeNumber == 0x04) || (ModeNumber == 0x05))
+    {
+        /*
+         * CGA modes; this palette contains both normal and
+         * bright versions of CGA palettes 0 and 1
+         */
+        Palette = CgaPalette2;
+        Size    = sizeof(CgaPalette2)/sizeof(CgaPalette2[0]);
+    }
+#endif
     else // if ((ModeNumber == 0x0D) || (ModeNumber == 0x0E))
     {
         /* EGA modes */
-        Palette = EgaPalette___16ColorFixed_DOSBox;
-        Size    = sizeof(EgaPalette___16ColorFixed_DOSBox)/sizeof(EgaPalette___16ColorFixed_DOSBox[0]);
+        Palette = EgaPalette__16Colors;
+        Size    = sizeof(EgaPalette__16Colors)/sizeof(EgaPalette__16Colors[0]);
     }
 
     VgaSetPalette(Palette, Size);
@@ -941,11 +2295,23 @@ BYTE VidBiosGetVideoMode(VOID)
 static BOOLEAN VidBiosSetVideoMode(BYTE ModeNumber)
 {
     BYTE Page;
-
     COORD Resolution;
-    PVGA_REGISTERS VgaMode = VideoModes[ModeNumber];
+    BOOLEAN DoNotClear = !!(ModeNumber & 0x80);
+    PVGA_REGISTERS VgaMode;
+
+    /* Retrieve the real mode number and check its validity */
+    ModeNumber &= 0x7F;
+    // if (ModeNumber >= sizeof(VideoModes)/sizeof(VideoModes[0]))
+    if (ModeNumber > BIOS_MAX_VIDEO_MODE)
+    {
+        DPRINT1("VidBiosSetVideoMode -- Mode %02Xh invalid\n", ModeNumber);
+        return FALSE;
+    }
 
-    DPRINT1("Switching to mode %Xh; VgaMode = 0x%p\n", ModeNumber, VgaMode);
+    VgaMode = VideoModes[ModeNumber];
+
+    DPRINT1("Switching to mode %02Xh %s clearing the screen; VgaMode = 0x%p\n",
+            ModeNumber, (DoNotClear ? "without" : "and"), VgaMode);
 
     if (!VgaSetRegisters(VgaMode)) return FALSE;
 
@@ -957,8 +2323,7 @@ static BOOLEAN VidBiosSetVideoMode(BYTE ModeNumber)
      * See Ralf Brown: http://www.ctyme.com/intr/rb-0069.htm
      * for more information.
      */
-    // if ((ModeNumber & 0x08) == 0) VgaClearMemory();
-    VgaClearMemory();
+    if (!DoNotClear) VgaClearMemory();
 
     // Bda->CrtModeControl;
     // Bda->CrtColorPaletteMask;
@@ -1271,6 +2636,87 @@ VOID WINAPI VidBiosVideoService(LPWORD Stack)
             break;
         }
 
+        /* Set Video Colors */
+        case 0x0B:
+        {
+            if (Bda->VideoMode < 4 || Bda->VideoMode > 6)
+            {
+                DPRINT1("BIOS Function INT 10h, AH = 0Bh, BH = 0x%02X is unsupported for non-CGA modes\n",
+                        getBH());
+                break;
+            }
+
+            switch (getBH())
+            {
+                case 0x00: /* Set Background/Border Color */
+                {
+#ifdef DOSBOX
+                    BYTE Index = getBL();
+                    BYTE CrtColorPaletteMask = Bda->CrtColorPaletteMask;
+                    CrtColorPaletteMask = (CrtColorPaletteMask & 0xE0) | (Index & 0x1F);
+                    Bda->CrtColorPaletteMask = CrtColorPaletteMask;
+
+                    Index = ((Index << 1) & 0x10) | (Index & 0x7);
+
+                    /* Always set the overscan color */
+                    VgaSetSinglePaletteRegister(VGA_AC_OVERSCAN_REG, Index);
+
+                    /* Don't set any extra colors when in text mode */
+                    if (Bda->VideoMode <= 3) break;
+
+                    VgaSetSinglePaletteRegister(0x00, Index);
+
+                    Index = (CrtColorPaletteMask & 0x10) | 0x02 | ((CrtColorPaletteMask & 0x20) >> 5);
+
+                    VgaSetSinglePaletteRegister(0x01, Index);
+                    Index += 2;
+                    VgaSetSinglePaletteRegister(0x02, Index);
+                    Index += 2;
+                    VgaSetSinglePaletteRegister(0x03, Index);
+#else
+                    /* Background/Border Color is modifiable via the first index */
+                    VgaSetSinglePaletteRegister(0x00, getBL());
+#endif
+
+                    /* Enable screen and disable palette access */
+                    IOReadB(VGA_INSTAT1_READ); // Put the AC register into index state
+                    IOWriteB(VGA_AC_INDEX, 0x20);
+                    break;
+                }
+
+                case 0x01: /* Set Palette */
+                {
+                    BYTE Index = getBL();
+                    BYTE CrtColorPaletteMask = Bda->CrtColorPaletteMask;
+                    CrtColorPaletteMask = (CrtColorPaletteMask & 0xDF) | ((Index & 1) ? 0x20 : 0x0);
+                    Bda->CrtColorPaletteMask = CrtColorPaletteMask;
+
+                    /* Don't set any extra colors when in text mode */
+                    if (Bda->VideoMode <= 3) break;
+
+                    Index = (CrtColorPaletteMask & 0x10) | 0x02 | Index;
+
+                    VgaSetSinglePaletteRegister(0x01, Index);
+                    Index += 2;
+                    VgaSetSinglePaletteRegister(0x02, Index);
+                    Index += 2;
+                    VgaSetSinglePaletteRegister(0x03, Index);
+
+                    /* Enable screen and disable palette access */
+                    IOReadB(VGA_INSTAT1_READ); // Put the AC register into index state
+                    IOWriteB(VGA_AC_INDEX, 0x20);
+                    break;
+                }
+
+                default:
+                    DPRINT1("BIOS Function INT 10h, AH = 0Bh, BH = 0x%02X NOT IMPLEMENTED\n",
+                            getAH(), getBH());
+                    break;
+            }
+
+            break;
+        }
+
         /* Teletype Output */
         case 0x0E:
         {
@@ -1294,12 +2740,7 @@ VOID WINAPI VidBiosVideoService(LPWORD Stack)
                 /* Set Single Palette Register */
                 case 0x00:
                 {
-                    /* Write the index */
-                    IOReadB(VGA_INSTAT1_READ); // Put the AC register into index state
-                    IOWriteB(VGA_AC_INDEX, getBL());
-
-                    /* Write the data */
-                    IOWriteB(VGA_AC_WRITE, getBH());
+                    VgaSetSinglePaletteRegister(getBL(), getBH());
 
                     /* Enable screen and disable palette access */
                     IOReadB(VGA_INSTAT1_READ); // Put the AC register into index state
@@ -1310,12 +2751,7 @@ VOID WINAPI VidBiosVideoService(LPWORD Stack)
                 /* Set Overscan Color */
                 case 0x01:
                 {
-                    /* Write the index */
-                    IOReadB(VGA_INSTAT1_READ); // Put the AC register into index state
-                    IOWriteB(VGA_AC_INDEX, VGA_AC_OVERSCAN_REG);
-
-                    /* Write the data */
-                    IOWriteB(VGA_AC_WRITE, getBH());
+                    VgaSetSinglePaletteRegister(VGA_AC_OVERSCAN_REG, getBH());
 
                     /* Enable screen and disable palette access */
                     IOReadB(VGA_INSTAT1_READ); // Put the AC register into index state
@@ -1332,15 +2768,11 @@ VOID WINAPI VidBiosVideoService(LPWORD Stack)
                     /* Set the palette registers */
                     for (i = 0; i <= VGA_AC_PAL_F_REG; i++)
                     {
-                        /* Write the index */
-                        IOReadB(VGA_INSTAT1_READ); // Put the AC register into index state
-                        IOWriteB(VGA_AC_INDEX, i);
-
-                        /* Write the data */
-                        IOWriteB(VGA_AC_WRITE, Buffer[i]);
+                        VgaSetSinglePaletteRegister(i, Buffer[i]);
                     }
 
                     /* Set the overscan register */
+                    // VgaSetSinglePaletteRegister(VGA_AC_OVERSCAN_REG, Buffer[VGA_AC_PAL_F_REG + 1]);
                     IOWriteB(VGA_AC_INDEX, VGA_AC_OVERSCAN_REG);
                     IOWriteB(VGA_AC_WRITE, Buffer[VGA_AC_PAL_F_REG + 1]);
 
@@ -1491,6 +2923,42 @@ VOID WINAPI VidBiosVideoService(LPWORD Stack)
             break;
         }
 
+        /* Font Control */
+        case 0x11:
+        {
+            switch (getAL())
+            {
+                case 0x30:
+                {
+                    USHORT Offsets[] =
+                    {
+                        FONT_8x8_HIGH_OFFSET,   /* 00h - INT 0x1F pointer */
+                        0,                      /* 01h - NOT IMPLEMENTED - INT 0x43 pointer */
+                        FONT_8x14_OFFSET,       /* 02h - NOT IMPLEMENTED - 8x14 font */
+                        FONT_8x8_OFFSET,        /* 03h - 8x8 font */
+                        FONT_8x8_HIGH_OFFSET,   /* 04h - 8x8 font, upper half */
+                        0,                      /* 05h - NOT IMPLEMENTED - 9x14 font */
+                        FONT_8x16_OFFSET,       /* 06h - 8x16 font */
+                        0,                      /* 07h - NOT IMPLEMENTED - 9x16 font */
+                    };
+
+                    /* Return the data */
+                    setES(VIDEO_BIOS_DATA_SEG);
+                    setBP(Offsets[getBH() & 7]);
+
+                    break;
+                }
+
+                default:
+                {
+                    DPRINT1("BIOS Font Control Sub-command AL = 0x%02X NOT IMPLEMENTED\n",
+                            getAL());
+                }
+            }
+
+            break;
+        }
+
         /* Alternate Function Select */
         case 0x12:
         {
@@ -1509,7 +2977,7 @@ VOID WINAPI VidBiosVideoService(LPWORD Stack)
         /* Display combination code */
         case 0x1A:
         {
-            switch(getAL())
+            switch (getAL())
             {
                 case 0x00: /* Get Display combiantion code */
                    setAX(MAKEWORD(0x1A, 0x1A));
@@ -1526,8 +2994,8 @@ VOID WINAPI VidBiosVideoService(LPWORD Stack)
 
         default:
         {
-            DPRINT1("BIOS Function INT 10h, AH = 0x%02X NOT IMPLEMENTED\n",
-                    getAH());
+            DPRINT1("BIOS Function INT 10h, AH = 0x%02X, AL = 0x%02X, BH = 0x%02X NOT IMPLEMENTED\n",
+                    getAH(), getAL(), getBH());
         }
     }
 }
@@ -1562,19 +3030,32 @@ VOID VidBiosDetachFromConsole(VOID)
     Attached = FALSE;
 }
 
-
 BOOLEAN VidBiosInitialize(VOID)
 {
     /* Some interrupts are in fact addresses to tables */
     ((PULONG)BaseAddress)[0x1D] = (ULONG)NULL;
-    ((PULONG)BaseAddress)[0x1F] = (ULONG)NULL;
+    ((PULONG)BaseAddress)[0x1F] = MAKELONG(FONT_8x8_HIGH_OFFSET, VIDEO_BIOS_DATA_SEG);
     // ((PULONG)BaseAddress)[0x42] = (ULONG)NULL;
     ((PULONG)BaseAddress)[0x43] = (ULONG)NULL;
     ((PULONG)BaseAddress)[0x44] = (ULONG)NULL;
 
+    /* Fill the tables */
+    RtlMoveMemory(SEG_OFF_TO_PTR(VIDEO_BIOS_DATA_SEG, FONT_8x8_OFFSET),
+                  Font8x8,
+                  sizeof(Font8x8));
+    RtlMoveMemory(SEG_OFF_TO_PTR(VIDEO_BIOS_DATA_SEG, FONT_8x16_OFFSET),
+                  Font8x16,
+                  sizeof(Font8x16));
+    RtlMoveMemory(SEG_OFF_TO_PTR(VIDEO_BIOS_DATA_SEG, FONT_8x14_OFFSET),
+                  Font8x14,
+                  sizeof(Font8x14));
+
+    /* Write the default font to the VGA font plane */
+    VgaWriteFont(0, Font8x16, 16);
+
     /* Initialize the VGA BDA data */
-    Bda->VGAOptions = 0x30;     /* 256 KB Video RAM */
-    Bda->VGASwitches = 0x09;    /* High-resolution */
+    Bda->VGAOptions  = 0x30;    /* 256 KB Video RAM */
+    Bda->VGASwitches = 0x09;    /* High-resolution  */
 
     //
     // FIXME: At the moment we always set a VGA mode. In the future,