]> 4ch.mooo.com Git - 16.git/blobdiff - 16/w_modex/MODEX.CPP
deleted: 16.bat
[16.git] / 16 / w_modex / MODEX.CPP
diff --git a/16/w_modex/MODEX.CPP b/16/w_modex/MODEX.CPP
deleted file mode 100644 (file)
index f266a98..0000000
+++ /dev/null
@@ -1,913 +0,0 @@
-#include <conio.h>\r
-#include <dos.h>\r
-#include <mem.h>\r
-\r
-#include "modex.hpp"\r
-\r
-#define ATTRCON_ADDR    0x3C0\r
-#define MISC_ADDR       0x3C2\r
-#define VGAENABLE_ADDR  0x3C3\r
-#define SEQU_ADDR       0x3C4\r
-#define GRACON_ADDR     0x3CE\r
-#define CRTC_ADDR       0x3D4\r
-#define STATUS_ADDR     0x3DA\r
-\r
-unsigned short width, height, widthBytes, num_pages;\r
-unsigned short pageSize, activeStart, visibleStart;\r
-unsigned char write_plane, read_plane;\r
-unsigned char *RowsX[600];\r
-unsigned char line_head[4] = { 0xFF, 0x0E, 0x0C, 0x08 };\r
-unsigned char line_tail[4] = { 0x00, 0x01, 0x03, 0x07 };\r
-unsigned short plane_mask[4] = { PLANE_0, PLANE_1, PLANE_2, PLANE_3 };\r
-unsigned short read_mask[4]  = { READ_PLANE_0, READ_PLANE_1,\r
-                                 READ_PLANE_2, READ_PLANE_3 };\r
-unsigned short text_mask[16] = { 0x0002, 0x0102, 0x0202, 0x0302,\r
-                                 0x0402, 0x0502, 0x0602, 0x0702,\r
-                                 0x0802, 0x0902, 0x0A02, 0x0B02,\r
-                                 0x0C02, 0x0D02, 0x0E02, 0x0F02 };\r
-unsigned short page_offset[5];\r
-unsigned short page_mask_high[5];\r
-unsigned short page_mask_low[5];\r
-\r
-\r
-unsigned short ModeX_256x224regs[75] =\r
-{\r
-    0x3c2, 0x00, 0xe3,\r
-    0x3d4, 0x00, 0x5f,\r
-    0x3d4, 0x01, 0x3f,\r
-    0x3d4, 0x02, 0x40,\r
-    0x3d4, 0x03, 0x82,\r
-    0x3d4, 0x04, 0x4a,\r
-    0x3d4, 0x05, 0x9a,\r
-    0x3d4, 0x06, 0x0b,\r
-    0x3d4, 0x07, 0x3e,\r
-    0x3d4, 0x08, 0x00,\r
-    0x3d4, 0x09, 0x41,\r
-    0x3d4, 0x10, 0xda,\r
-    0x3d4, 0x11, 0x9c,\r
-    0x3d4, 0x12, 0xbf,\r
-    0x3d4, 0x13, 0x20,\r
-    0x3d4, 0x14, 0x00,\r
-    0x3d4, 0x15, 0xc7,\r
-    0x3d4, 0x16, 0x04,\r
-    0x3d4, 0x17, 0xe3,\r
-    0x3c4, 0x01, 0x01,\r
-    0x3c4, 0x04, 0x06,\r
-    0x3ce, 0x05, 0x40,\r
-    0x3ce, 0x06, 0x05,\r
-    0x3c0, 0x10, 0x41,\r
-    0x3c0, 0x13, 0x00\r
-};\r
-\r
-unsigned short ModeX_256x240regs[75] =\r
-{\r
-    0x3c2, 0x00, 0xe3,\r
-    0x3d4, 0x00, 0x5f,\r
-    0x3d4, 0x01, 0x3f,\r
-    0x3d4, 0x02, 0x40,\r
-    0x3d4, 0x03, 0x82,\r
-    0x3d4, 0x04, 0x4e,\r
-    0x3d4, 0x05, 0x96,\r
-    0x3d4, 0x06, 0x0d,\r
-    0x3d4, 0x07, 0x3e,\r
-    0x3d4, 0x08, 0x00,\r
-    0x3d4, 0x09, 0x41,\r
-    0x3d4, 0x10, 0xea,\r
-    0x3d4, 0x11, 0xac,\r
-    0x3d4, 0x12, 0xdf,\r
-    0x3d4, 0x13, 0x20,\r
-    0x3d4, 0x14, 0x00,\r
-    0x3d4, 0x15, 0xe7,\r
-    0x3d4, 0x16, 0x06,\r
-    0x3d4, 0x17, 0xe3,\r
-    0x3c4, 0x01, 0x01,\r
-    0x3c4, 0x04, 0x06,\r
-    0x3ce, 0x05, 0x40,\r
-    0x3ce, 0x06, 0x05,\r
-    0x3c0, 0x10, 0x41,\r
-    0x3c0, 0x13, 0x00\r
-};\r
-\r
-unsigned short ModeX_256x256regs[75] =\r
-{\r
-    0x3c2, 0x00, 0xe3,\r
-    0x3d4, 0x00, 0x5f,\r
-    0x3d4, 0x01, 0x3f,\r
-    0x3d4, 0x02, 0x40,\r
-    0x3d4, 0x03, 0x82,\r
-    0x3d4, 0x04, 0x4a,\r
-    0x3d4, 0x05, 0x9a,\r
-    0x3d4, 0x06, 0x23,\r
-    0x3d4, 0x07, 0xb2,\r
-    0x3d4, 0x08, 0x00,\r
-    0x3d4, 0x09, 0x61,\r
-    0x3d4, 0x10, 0x0a,\r
-    0x3d4, 0x11, 0xac,\r
-    0x3d4, 0x12, 0xff,\r
-    0x3d4, 0x13, 0x20,\r
-    0x3d4, 0x14, 0x00,\r
-    0x3d4, 0x15, 0x07,\r
-    0x3d4, 0x16, 0x1a,\r
-    0x3d4, 0x17, 0xe3,\r
-    0x3c4, 0x01, 0x01,\r
-    0x3c4, 0x04, 0x06,\r
-    0x3ce, 0x05, 0x40,\r
-    0x3ce, 0x06, 0x05,\r
-    0x3c0, 0x10, 0x41,\r
-    0x3c0, 0x13, 0x00\r
-};\r
-\r
-unsigned short ModeX_256x480regs[75] =\r
-{\r
-    0x3c2, 0x00, 0xe3,\r
-    0x3d4, 0x00, 0x5f,\r
-    0x3d4, 0x01, 0x3f,\r
-    0x3d4, 0x02, 0x40,\r
-    0x3d4, 0x03, 0x82,\r
-    0x3d4, 0x04, 0x4e,\r
-    0x3d4, 0x05, 0x96,\r
-    0x3d4, 0x06, 0x0d,\r
-    0x3d4, 0x07, 0x3e,\r
-    0x3d4, 0x08, 0x00,\r
-    0x3d4, 0x09, 0x40,\r
-    0x3d4, 0x10, 0xea,\r
-    0x3d4, 0x11, 0xac,\r
-    0x3d4, 0x12, 0xdf,\r
-    0x3d4, 0x13, 0x20,\r
-    0x3d4, 0x14, 0x00,\r
-    0x3d4, 0x15, 0xe7,\r
-    0x3d4, 0x16, 0x06,\r
-    0x3d4, 0x17, 0xe3,\r
-    0x3c4, 0x01, 0x01,\r
-    0x3c4, 0x04, 0x06,\r
-    0x3ce, 0x05, 0x40,\r
-    0x3ce, 0x06, 0x05,\r
-    0x3c0, 0x10, 0x41,\r
-    0x3c0, 0x13, 0x00\r
-};\r
-\r
-unsigned short ModeX_320x200regs[75] =\r
-{\r
-    0x3c2, 0x00, 0x63,\r
-    0x3d4, 0x00, 0x5f,\r
-    0x3d4, 0x01, 0x4f,\r
-    0x3d4, 0x02, 0x50,\r
-    0x3d4, 0x03, 0x82,\r
-    0x3d4, 0x04, 0x54,\r
-    0x3d4, 0x05, 0x80,\r
-    0x3d4, 0x06, 0xbf,\r
-    0x3d4, 0x07, 0x1f,\r
-    0x3d4, 0x08, 0x00,\r
-    0x3d4, 0x09, 0x41,\r
-    0x3d4, 0x10, 0x9c,\r
-    0x3d4, 0x11, 0x8e,\r
-    0x3d4, 0x12, 0x8f,\r
-    0x3d4, 0x13, 0x28,\r
-    0x3d4, 0x14, 0x00,\r
-    0x3d4, 0x15, 0x96,\r
-    0x3d4, 0x16, 0xb9,\r
-    0x3d4, 0x17, 0xe3,\r
-    0x3c4, 0x01, 0x01,\r
-    0x3c4, 0x04, 0x06,\r
-    0x3ce, 0x05, 0x40,\r
-    0x3ce, 0x06, 0x05,\r
-    0x3c0, 0x10, 0x41,\r
-    0x3c0, 0x13, 0x00\r
-};\r
-\r
-unsigned short ModeX_320x240regs[75] =\r
-{\r
-    0x3c2, 0x00, 0xe3,\r
-    0x3d4, 0x00, 0x5f,\r
-    0x3d4, 0x01, 0x4f,\r
-    0x3d4, 0x02, 0x50,\r
-    0x3d4, 0x03, 0x82,\r
-    0x3d4, 0x04, 0x54,\r
-    0x3d4, 0x05, 0x80,\r
-    0x3d4, 0x06, 0x0d,\r
-    0x3d4, 0x07, 0x3e,\r
-    0x3d4, 0x08, 0x00,\r
-    0x3d4, 0x09, 0x41,\r
-    0x3d4, 0x10, 0xea,\r
-    0x3d4, 0x11, 0xac,\r
-    0x3d4, 0x12, 0xdf,\r
-    0x3d4, 0x13, 0x28,\r
-    0x3d4, 0x14, 0x00,\r
-    0x3d4, 0x15, 0xe7,\r
-    0x3d4, 0x16, 0x06,\r
-    0x3d4, 0x17, 0xe3,\r
-    0x3c4, 0x01, 0x01,\r
-    0x3c4, 0x04, 0x06,\r
-    0x3ce, 0x05, 0x40,\r
-    0x3ce, 0x06, 0x05,\r
-    0x3c0, 0x10, 0x41,\r
-    0x3c0, 0x13, 0x00\r
-};\r
-\r
-unsigned short ModeX_320x400regs[75] =\r
-{\r
-    0x3c2, 0x00, 0x63,\r
-    0x3d4, 0x00, 0x5f,\r
-    0x3d4, 0x01, 0x4f,\r
-    0x3d4, 0x02, 0x50,\r
-    0x3d4, 0x03, 0x82,\r
-    0x3d4, 0x04, 0x54,\r
-    0x3d4, 0x05, 0x80,\r
-    0x3d4, 0x06, 0xbf,\r
-    0x3d4, 0x07, 0x1f,\r
-    0x3d4, 0x08, 0x00,\r
-    0x3d4, 0x09, 0x40,\r
-    0x3d4, 0x10, 0x9c,\r
-    0x3d4, 0x11, 0x8e,\r
-    0x3d4, 0x12, 0x8f,\r
-    0x3d4, 0x13, 0x28,\r
-    0x3d4, 0x14, 0x00,\r
-    0x3d4, 0x15, 0x96,\r
-    0x3d4, 0x16, 0xb9,\r
-    0x3d4, 0x17, 0xe3,\r
-    0x3c4, 0x01, 0x01,\r
-    0x3c4, 0x04, 0x06,\r
-    0x3ce, 0x05, 0x40,\r
-    0x3ce, 0x06, 0x05,\r
-    0x3c0, 0x10, 0x41,\r
-    0x3c0, 0x13, 0x00\r
-};\r
-\r
-unsigned short ModeX_320x480regs[75] =\r
-{\r
-    0x3c2, 0x00, 0xe3,\r
-    0x3d4, 0x00, 0x5f,\r
-    0x3d4, 0x01, 0x4f,\r
-    0x3d4, 0x02, 0x50,\r
-    0x3d4, 0x03, 0x82,\r
-    0x3d4, 0x04, 0x54,\r
-    0x3d4, 0x05, 0x80,\r
-    0x3d4, 0x06, 0x0d,\r
-    0x3d4, 0x07, 0x3e,\r
-    0x3d4, 0x08, 0x00,\r
-    0x3d4, 0x09, 0x40,\r
-    0x3d4, 0x10, 0xea,\r
-    0x3d4, 0x11, 0xac,\r
-    0x3d4, 0x12, 0xdf,\r
-    0x3d4, 0x13, 0x28,\r
-    0x3d4, 0x14, 0x00,\r
-    0x3d4, 0x15, 0xe7,\r
-    0x3d4, 0x16, 0x06,\r
-    0x3d4, 0x17, 0xe3,\r
-    0x3c4, 0x01, 0x01,\r
-    0x3c4, 0x04, 0x06,\r
-    0x3ce, 0x05, 0x40,\r
-    0x3ce, 0x06, 0x05,\r
-    0x3c0, 0x10, 0x41,\r
-    0x3c0, 0x13, 0x00\r
-};\r
-\r
-unsigned short ModeX_360x200regs[75] =\r
-{\r
-    0x3c2, 0x00, 0x67,\r
-    0x3d4, 0x00, 0x6b,\r
-    0x3d4, 0x01, 0x59,\r
-    0x3d4, 0x02, 0x5a,\r
-    0x3d4, 0x03, 0x8e,\r
-    0x3d4, 0x04, 0x5e,\r
-    0x3d4, 0x05, 0x8a,\r
-    0x3d4, 0x06, 0xbf,\r
-    0x3d4, 0x07, 0x1f,\r
-    0x3d4, 0x08, 0x00,\r
-    0x3d4, 0x09, 0x41,\r
-    0x3d4, 0x10, 0x9c,\r
-    0x3d4, 0x11, 0x8e,\r
-    0x3d4, 0x12, 0x8f,\r
-    0x3d4, 0x13, 0x2d,\r
-    0x3d4, 0x14, 0x00,\r
-    0x3d4, 0x15, 0x96,\r
-    0x3d4, 0x16, 0xb9,\r
-    0x3d4, 0x17, 0xe3,\r
-    0x3c4, 0x01, 0x01,\r
-    0x3c4, 0x04, 0x06,\r
-    0x3ce, 0x05, 0x40,\r
-    0x3ce, 0x06, 0x05,\r
-    0x3c0, 0x10, 0x41,\r
-    0x3c0, 0x13, 0x00\r
-};\r
-\r
-unsigned short ModeX_360x240regs[75] =\r
-{\r
-    0x3c2, 0x00, 0xe7,\r
-    0x3d4, 0x00, 0x6b,\r
-    0x3d4, 0x01, 0x59,\r
-    0x3d4, 0x02, 0x5a,\r
-    0x3d4, 0x03, 0x8e,\r
-    0x3d4, 0x04, 0x5e,\r
-    0x3d4, 0x05, 0x8a,\r
-    0x3d4, 0x06, 0x0d,\r
-    0x3d4, 0x07, 0x3e,\r
-    0x3d4, 0x08, 0x00,\r
-    0x3d4, 0x09, 0x41,\r
-    0x3d4, 0x10, 0xea,\r
-    0x3d4, 0x11, 0xac,\r
-    0x3d4, 0x12, 0xdf,\r
-    0x3d4, 0x13, 0x2d,\r
-    0x3d4, 0x14, 0x00,\r
-    0x3d4, 0x15, 0xe7,\r
-    0x3d4, 0x16, 0x06,\r
-    0x3d4, 0x17, 0xe3,\r
-    0x3c4, 0x01, 0x01,\r
-    0x3c4, 0x04, 0x06,\r
-    0x3ce, 0x05, 0x40,\r
-    0x3ce, 0x06, 0x05,\r
-    0x3c0, 0x10, 0x41,\r
-    0x3c0, 0x13, 0x00\r
-};\r
-\r
-unsigned short ModeX_360x270regs[75] =\r
-{\r
-    0x3c2, 0x00, 0xe7,\r
-    0x3d4, 0x00, 0x6b,\r
-    0x3d4, 0x01, 0x59,\r
-    0x3d4, 0x02, 0x5a,\r
-    0x3d4, 0x03, 0x8e,\r
-    0x3d4, 0x04, 0x5e,\r
-    0x3d4, 0x05, 0x8a,\r
-    0x3d4, 0x06, 0x30,\r
-    0x3d4, 0x07, 0xf0,\r
-    0x3d4, 0x08, 0x00,\r
-    0x3d4, 0x09, 0x61,\r
-    0x3d4, 0x10, 0x20,\r
-    0x3d4, 0x11, 0xa9,\r
-    0x3d4, 0x12, 0x1b,\r
-    0x3d4, 0x13, 0x2d,\r
-    0x3d4, 0x14, 0x00,\r
-    0x3d4, 0x15, 0x1f,\r
-    0x3d4, 0x16, 0x2f,\r
-    0x3d4, 0x17, 0xe3,\r
-    0x3c4, 0x01, 0x01,\r
-    0x3c4, 0x04, 0x06,\r
-    0x3ce, 0x05, 0x40,\r
-    0x3ce, 0x06, 0x05,\r
-    0x3c0, 0x10, 0x41,\r
-    0x3c0, 0x13, 0x00\r
-};\r
-\r
-unsigned short ModeX_360x360regs[75] =\r
-{\r
-    0x3c2, 0x00, 0x67,\r
-    0x3d4, 0x00, 0x6b,\r
-    0x3d4, 0x01, 0x59,\r
-    0x3d4, 0x02, 0x5a,\r
-    0x3d4, 0x03, 0x8e,\r
-    0x3d4, 0x04, 0x5e,\r
-    0x3d4, 0x05, 0x8a,\r
-    0x3d4, 0x06, 0xbf,\r
-    0x3d4, 0x07, 0x1f,\r
-    0x3d4, 0x08, 0x00,\r
-    0x3d4, 0x09, 0x40,\r
-    0x3d4, 0x10, 0x88,\r
-    0x3d4, 0x11, 0x85,\r
-    0x3d4, 0x12, 0x67,\r
-    0x3d4, 0x13, 0x2d,\r
-    0x3d4, 0x14, 0x00,\r
-    0x3d4, 0x15, 0x6d,\r
-    0x3d4, 0x16, 0xba,\r
-    0x3d4, 0x17, 0xe3,\r
-    0x3c4, 0x01, 0x01,\r
-    0x3c4, 0x04, 0x06,\r
-    0x3ce, 0x05, 0x40,\r
-    0x3ce, 0x06, 0x05,\r
-    0x3c0, 0x10, 0x41,\r
-    0x3c0, 0x13, 0x00\r
-};\r
-\r
-unsigned short ModeX_360x400regs[75] =\r
-{\r
-    0x3c2, 0x00, 0x67,\r
-    0x3d4, 0x00, 0x6b,\r
-    0x3d4, 0x01, 0x59,\r
-    0x3d4, 0x02, 0x5a,\r
-    0x3d4, 0x03, 0x8e,\r
-    0x3d4, 0x04, 0x5e,\r
-    0x3d4, 0x05, 0x8a,\r
-    0x3d4, 0x06, 0xbf,\r
-    0x3d4, 0x07, 0x1f,\r
-    0x3d4, 0x08, 0x00,\r
-    0x3d4, 0x09, 0x40,\r
-    0x3d4, 0x10, 0x9c,\r
-    0x3d4, 0x11, 0x8e,\r
-    0x3d4, 0x12, 0x8f,\r
-    0x3d4, 0x13, 0x2d,\r
-    0x3d4, 0x14, 0x00,\r
-    0x3d4, 0x15, 0x96,\r
-    0x3d4, 0x16, 0xb9,\r
-    0x3d4, 0x17, 0xe3,\r
-    0x3c4, 0x01, 0x01,\r
-    0x3c4, 0x04, 0x06,\r
-    0x3ce, 0x05, 0x40,\r
-    0x3ce, 0x06, 0x05,\r
-    0x3c0, 0x10, 0x41,\r
-    0x3c0, 0x13, 0x00\r
-};\r
-\r
-unsigned short ModeX_360x480regs[75] =\r
-{\r
-    0x3c2, 0x00, 0xe7,\r
-    0x3d4, 0x00, 0x6b,\r
-    0x3d4, 0x01, 0x59,\r
-    0x3d4, 0x02, 0x5a,\r
-    0x3d4, 0x03, 0x8e,\r
-    0x3d4, 0x04, 0x5e,\r
-    0x3d4, 0x05, 0x8a,\r
-    0x3d4, 0x06, 0x0d,\r
-    0x3d4, 0x07, 0x3e,\r
-    0x3d4, 0x08, 0x00,\r
-    0x3d4, 0x09, 0x40,\r
-    0x3d4, 0x10, 0xea,\r
-    0x3d4, 0x11, 0xac,\r
-    0x3d4, 0x12, 0xdf,\r
-    0x3d4, 0x13, 0x2d,\r
-    0x3d4, 0x14, 0x00,\r
-    0x3d4, 0x15, 0xe7,\r
-    0x3d4, 0x16, 0x06,\r
-    0x3d4, 0x17, 0xe3,\r
-    0x3c4, 0x01, 0x01,\r
-    0x3c4, 0x04, 0x06,\r
-    0x3ce, 0x05, 0x40,\r
-    0x3ce, 0x06, 0x05,\r
-    0x3c0, 0x10, 0x41,\r
-    0x3c0, 0x13, 0x00\r
-};\r
-\r
-unsigned short ModeX_376x282regs[75] =\r
-{\r
-    0x3c2, 0x00, 0xe7,\r
-    0x3d4, 0x00, 0x6e,\r
-    0x3d4, 0x01, 0x5d,\r
-    0x3d4, 0x02, 0x5e,\r
-    0x3d4, 0x03, 0x91,\r
-    0x3d4, 0x04, 0x62,\r
-    0x3d4, 0x05, 0x8f,\r
-    0x3d4, 0x06, 0x62,\r
-    0x3d4, 0x07, 0xf0,\r
-    0x3d4, 0x08, 0x00,\r
-    0x3d4, 0x09, 0x61,\r
-    0x3d4, 0x10, 0x37,\r
-    0x3d4, 0x11, 0x89,\r
-    0x3d4, 0x12, 0x33,\r
-    0x3d4, 0x13, 0x2f,\r
-    0x3d4, 0x14, 0x00,\r
-    0x3d4, 0x15, 0x3c,\r
-    0x3d4, 0x16, 0x5c,\r
-    0x3d4, 0x17, 0xe3,\r
-    0x3c4, 0x01, 0x01,\r
-    0x3c4, 0x04, 0x06,\r
-    0x3ce, 0x05, 0x40,\r
-    0x3ce, 0x06, 0x05,\r
-    0x3c0, 0x10, 0x41,\r
-    0x3c0, 0x13, 0x00\r
-};\r
-\r
-unsigned short ModeX_376x564regs[75] =\r
-{\r
-    0x3c2, 0x00, 0xe7,\r
-    0x3d4, 0x00, 0x6e,\r
-    0x3d4, 0x01, 0x5d,\r
-    0x3d4, 0x02, 0x5e,\r
-    0x3d4, 0x03, 0x91,\r
-    0x3d4, 0x04, 0x62,\r
-    0x3d4, 0x05, 0x8f,\r
-    0x3d4, 0x06, 0x62,\r
-    0x3d4, 0x07, 0xf0,\r
-    0x3d4, 0x08, 0x00,\r
-    0x3d4, 0x09, 0x60,\r
-    0x3d4, 0x10, 0x37,\r
-    0x3d4, 0x11, 0x89,\r
-    0x3d4, 0x12, 0x33,\r
-    0x3d4, 0x13, 0x2f,\r
-    0x3d4, 0x14, 0x00,\r
-    0x3d4, 0x15, 0x3c,\r
-    0x3d4, 0x16, 0x5c,\r
-    0x3d4, 0x17, 0xe3,\r
-    0x3c4, 0x01, 0x01,\r
-    0x3c4, 0x04, 0x06,\r
-    0x3ce, 0x05, 0x40,\r
-    0x3ce, 0x06, 0x05,\r
-    0x3c0, 0x10, 0x41,\r
-    0x3c0, 0x13, 0x00\r
-};\r
-\r
-unsigned short ModeX_400x300regs[78] =\r
-{\r
-    0x3c2, 0x00, 0xa7,\r
-    0x3d4, 0x00, 0x71,\r
-    0x3d4, 0x01, 0x63,\r
-    0x3d4, 0x02, 0x64,\r
-    0x3d4, 0x03, 0x92,\r
-    0x3d4, 0x04, 0x65,\r
-    0x3d4, 0x05, 0x82,\r
-    0x3d4, 0x06, 0x46,\r
-    0x3d4, 0x07, 0x1f,\r
-    0x3d4, 0x08, 0x00,\r
-    0x3d4, 0x09, 0x40,\r
-    0x3d4, 0x10, 0x31,\r
-    0x3d4, 0x11, 0x80,\r
-    0x3d4, 0x12, 0x2b,\r
-    0x3d4, 0x13, 0x32,\r
-    0x3d4, 0x14, 0x00,\r
-    0x3d4, 0x15, 0x2f,\r
-    0x3d4, 0x16, 0x44,\r
-    0x3d4, 0x17, 0xe3,\r
-    0x3c4, 0x01, 0x01,\r
-    0x3c4, 0x02, 0x0f,\r
-    0x3c4, 0x04, 0x06,\r
-    0x3ce, 0x05, 0x40,\r
-    0x3ce, 0x06, 0x05,\r
-    0x3c0, 0x10, 0x41,\r
-    0x3c0, 0x13, 0x00\r
-};\r
-\r
-unsigned short ModeX_400x600regs[78] =\r
-{\r
-    0x3c2, 0x00, 0xe7,\r
-    0x3d4, 0x00, 0x70,\r
-    0x3d4, 0x01, 0x63,\r
-    0x3d4, 0x02, 0x64,\r
-    0x3d4, 0x03, 0x92,\r
-    0x3d4, 0x04, 0x65,\r
-    0x3d4, 0x05, 0x82,\r
-    0x3d4, 0x06, 0x70,\r
-    0x3d4, 0x07, 0xf0,\r
-    0x3d4, 0x08, 0x00,\r
-    0x3d4, 0x09, 0x60,\r
-    0x3d4, 0x10, 0x5b,\r
-    0x3d4, 0x11, 0x8c,\r
-    0x3d4, 0x12, 0x57,\r
-    0x3d4, 0x13, 0x32,\r
-    0x3d4, 0x14, 0x00,\r
-    0x3d4, 0x15, 0x58,\r
-    0x3d4, 0x16, 0x70,\r
-    0x3d4, 0x17, 0xe3,\r
-    0x3c4, 0x01, 0x01,\r
-    0x3c4, 0x02, 0x0f,\r
-    0x3c4, 0x04, 0x06,\r
-    0x3ce, 0x05, 0x40,\r
-    0x3ce, 0x06, 0x05,\r
-    0x3c0, 0x10, 0x41,\r
-    0x3c0, 0x13, 0x00\r
-};\r
-\r
-\r
-void\r
-calc_rows(void)\r
-{\r
-    int i;\r
-\r
-    // Each byte addresses four pixels, so the width of a scan line\r
-    // in *bytes* is one fourth of the number of pixels on a line.\r
-    widthBytes = width / 4;\r
-\r
-    pageSize = (widthBytes * height);\r
-\r
-    for (i=0; i < height; i++) {\r
-        RowsX[i] = (unsigned char *)((0xA000 << 4) + (widthBytes * i));\r
-    }\r
-\r
-    // Clear entire video memory, by selecting all four planes, then\r
-    // writing 0 to entire segment.\r
-    outpw(SEQU_ADDR, ALL_PLANES);\r
-    memset((unsigned char *)(0xA000 << 4), 0x00, 0x00010000);\r
-\r
-    // By default we want screen refreshing and drawing operations\r
-    // to be based at offset 0 in the video segment.\r
-    activeStart = visibleStart = 0;\r
-\r
-    // Set current plane to invalid value\r
-    write_plane = -1;\r
-    read_plane  = -1;\r
-\r
-    // How many pages fit in 256K VGA Card?\r
-    num_pages = ((64 * 1024) / pageSize);\r
-\r
-    for (i=0; i < num_pages; i++) {\r
-        page_offset[i] = (pageSize * i);\r
-        page_mask_high[i] = (0x0C |  (page_offset[i] & 0xFF00));\r
-        page_mask_low[i]  = (0x0D | ((page_offset[i] & 0x00FF) << 8));\r
-    }\r
-}\r
-\r
-\r
-//    setBaseXMode() does the initialization to make the VGA ready to\r
-//    accept any combination of configuration register settings.  This\r
-//    involves enabling writes to index 0 to 7 of the CRT controller (port\r
-//    0x3D4), by clearing the most significant bit (bit 7) of index 0x11.\r
-void\r
-setBaseXMode(void)\r
-{\r
-    int temp;\r
-    union REGS r;\r
-\r
-    r.x.eax = 0x0013;\r
-    int386(0x10, &r, &r);\r
-\r
-    outp(0x3D4, 0x11);\r
-    temp = inp(0x3D5) & 0x7F;\r
-    outp(0x3D4, 0x11);\r
-    outp(0x3D5, temp);\r
-}\r
-\r
-\r
-void\r
-outReg(unsigned short *r)\r
-{\r
-    switch (r[0]) {\r
-        // First handle special cases:\r
-\r
-               case ATTRCON_ADDR:\r
-            // reset read/write flip-flop\r
-            inp(STATUS_ADDR);\r
-            outp(ATTRCON_ADDR, r[1] | 0x20);\r
-            // ensure VGA output is enabled\r
-            outp(ATTRCON_ADDR, r[2]);\r
-                       break;\r
-\r
-               case MISC_ADDR:\r
-               case VGAENABLE_ADDR:\r
-            // Copy directly to port\r
-            outp(r[0], r[2]);\r
-                       break;\r
-\r
-        case SEQU_ADDR:\r
-               case GRACON_ADDR:\r
-               case CRTC_ADDR:\r
-        default:\r
-            // Index to port\r
-            outp(r[0], r[1]);\r
-            // Value to port+1\r
-            outp(r[0] + 1, r[2]);\r
-                       break;\r
-    }\r
-}\r
-\r
-void\r
-outRegArray(unsigned short *r, int n)\r
-{\r
-    while (n--) {\r
-        outReg(r);\r
-        r += 3;\r
-    }\r
-}\r
-\r
-\r
-void\r
-set80x25(void)\r
-{\r
-    union REGS r;\r
-    r.x.eax = 0x0003;\r
-\r
-    int386(0x10, &r, &r);\r
-}\r
-\r
-void\r
-set256x224x256_X(void)\r
-{\r
-    setBaseXMode();\r
-    outRegArray(ModeX_256x224regs, 25);\r
-\r
-    width  = 256;\r
-    height = 224;\r
-\r
-    calc_rows();\r
-}\r
-\r
-void\r
-set256x240x256_X(void)\r
-{\r
-    setBaseXMode();\r
-    outRegArray(ModeX_256x240regs, 25);\r
-\r
-    width  = 256;\r
-    height = 240;\r
-\r
-    calc_rows();\r
-}\r
-\r
-void\r
-set256x256x256_X(void)\r
-{\r
-    setBaseXMode();\r
-    outRegArray(ModeX_256x256regs, 25);\r
-\r
-    width  = 256;\r
-    height = 256;\r
-\r
-    calc_rows();\r
-}\r
-\r
-void\r
-set256x480x256_X(void)\r
-{\r
-    setBaseXMode();\r
-    outRegArray(ModeX_256x480regs, 25);\r
-\r
-    width  = 256;\r
-    height = 480;\r
-\r
-    calc_rows();\r
-}\r
-\r
-void\r
-set320x200x256_X(void)\r
-{\r
-    setBaseXMode();\r
-    outRegArray(ModeX_320x200regs, 25);\r
-\r
-    width  = 320;\r
-    height = 200;\r
-\r
-    calc_rows();\r
-}\r
-\r
-void\r
-set320x240x256_X(void)\r
-{\r
-    setBaseXMode();\r
-    outRegArray(ModeX_320x240regs, 25);\r
-\r
-    width  = 320;\r
-    height = 240;\r
-\r
-    calc_rows();\r
-}\r
-\r
-void\r
-set320x400x256_X(void)\r
-{\r
-    setBaseXMode();\r
-    outRegArray(ModeX_320x400regs, 25);\r
-\r
-    width  = 320;\r
-    height = 400;\r
-\r
-    calc_rows();\r
-}\r
-\r
-void\r
-set320x480x256_X(void)\r
-{\r
-    setBaseXMode();\r
-    outRegArray(ModeX_320x480regs, 25);\r
-\r
-    width  = 320;\r
-    height = 480;\r
-\r
-    calc_rows();\r
-}\r
-\r
-void\r
-set360x200x256_X(void)\r
-{\r
-    setBaseXMode();\r
-    outRegArray(ModeX_360x200regs, 25);\r
-\r
-    width  = 360;\r
-    height = 200;\r
-\r
-    calc_rows();\r
-}\r
-\r
-void\r
-set360x240x256_X(void)\r
-{\r
-    setBaseXMode();\r
-    outRegArray(ModeX_360x240regs, 25);\r
-\r
-    width  = 360;\r
-    height = 240;\r
-\r
-    calc_rows();\r
-}\r
-\r
-void\r
-set360x270x256_X(void)\r
-{\r
-    setBaseXMode();\r
-    outRegArray(ModeX_360x270regs, 25);\r
-\r
-    width  = 360;\r
-    height = 270;\r
-\r
-    calc_rows();\r
-}\r
-\r
-void\r
-set360x360x256_X(void)\r
-{\r
-    setBaseXMode();\r
-    outRegArray(ModeX_360x360regs, 25);\r
-\r
-    width  = 360;\r
-    height = 360;\r
-\r
-    calc_rows();\r
-}\r
-\r
-void\r
-set360x400x256_X(void)\r
-{\r
-    setBaseXMode();\r
-    outRegArray(ModeX_360x400regs, 25);\r
-\r
-    width  = 360;\r
-    height = 400;\r
-\r
-    calc_rows();\r
-}\r
-\r
-void\r
-set360x480x256_X(void)\r
-{\r
-    setBaseXMode();\r
-    outRegArray(ModeX_360x480regs, 25);\r
-\r
-    width  = 360;\r
-    height = 480;\r
-\r
-    calc_rows();\r
-}\r
-\r
-void\r
-set376x282x256_X(void)\r
-{\r
-    setBaseXMode();\r
-    outRegArray(ModeX_376x282regs, 25);\r
-\r
-    width  = 376;\r
-    height = 282;\r
-\r
-    calc_rows();\r
-}\r
-\r
-void\r
-set376x564x256_X(void)\r
-{\r
-    setBaseXMode();\r
-    outRegArray(ModeX_376x564regs, 25);\r
-\r
-    width  = 376;\r
-    height = 564;\r
-\r
-    calc_rows();\r
-}\r
-\r
-void\r
-set400x300x256_X(void)\r
-{\r
-    setBaseXMode();\r
-    outRegArray(ModeX_400x300regs, 26);\r
-\r
-    width  = 400;\r
-    height = 300;\r
-\r
-    calc_rows();\r
-}\r
-\r
-void\r
-set400x600x256_X(void)\r
-{\r
-    setBaseXMode();\r
-    outRegArray(ModeX_400x600regs, 26);\r
-\r
-    width  = 400;\r
-    height = 600;\r
-\r
-    calc_rows();\r
-}\r
-\r
-\r
-COORD\r
-get_xres(void)\r
-{\r
-    return width;\r
-}\r
-\r
-\r
-COORD\r
-get_yres(void)\r
-{\r
-    return height;\r
-}\r
-\r
-\r
-void\r
-set_write_plane(unsigned short int plane_mask)\r
-{\r
-    write_plane = -1;\r
-    outpw(SEQU_ADDR, plane_mask);\r
-}\r
-\r
-\r
-void\r
-set_read_plane(unsigned short int plane_mask)\r
-{\r
-    read_plane = -1;\r
-    outpw(GRACON_ADDR, plane_mask);\r
-}\r
-\r