*\r
*/\r
\r
-#include <dos.h>\r
-#include <string.h>\r
-#include <mem.h>\r
#include <conio.h>\r
#include <stdio.h>\r
#include <stdlib.h>\r
byte far* VGA=(byte far*) 0xA0000000; /* this points to video memory. */\r
\r
static void fadePalette(sbyte fade, sbyte start, word iter, byte *palette);\r
-static byte tmppal[PAL_SIZE];\r
+static byte tmppal[PAL_SIZE];
+int old_mode;\r
+
+/////////////////////////////////////////////////////////////////////////////
+// //
+// setvideo() - This function Manages the video modes //
+// //
+/////////////////////////////////////////////////////////////////////////////
+void VGAmodeX(sword vq)
+{
+ union REGS in, out;
+
+ if(!vq)
+ { // deinit the video
+ // change to the video mode we were in before we switched to mode 13h
+ modexLeave();
+ in.h.ah = 0x00;
+ in.h.al = old_mode;
+ int86(0x10, &in, &out);
+
+ }
+ else if(vq==1)
+ { // init the video
+ // get old video mode
+ in.h.ah = 0xf;
+ int86(0x10, &in, &out);
+ old_mode = out.h.al;
+ // enter mode
+ modexEnter();
+ }
+}
\r
static void\r
vgaSetMode(byte mode)\r
}\r
\r
\r
-/* utility */\r
+/* utility */
void\r
modexPalUpdate(bitmap_t *bmp, word *i, word qp, word aqoffset)\r
{\r
offset = (width * y + x) / 4, and write the given\r
color to the plane we selected above. Heed the active\r
page start selection. */\r
- VGA[(unsigned)((SCREEN_WIDTH/4) * y) + (x / 4) + pageOff] = color;\r
+ VGA[(unsigned)((page->width/4) * y) + (x / 4) + pageOff] = color;\r
\r
}\r
\r
outpw(GC_INDEX, 0x04);\r
outpw(GC_INDEX+1, x & 3);\r
\r
- return VGA[(unsigned)((SCREEN_WIDTH/4) * y) + (x / 4) + pageOff];\r
+ return VGA[(unsigned)((page->width/4) * y) + (x / 4) + pageOff];\r
\r
}