int86(0x10, &in, &out);\r
gv->old_mode = out.h.al;\r
// enter mode\r
- modex__320x240_256__Enter(gv);\r
+ //modex__320x240_256__Enter(gv);\r
+ modex__256x192_256__Enter(gv);\r
}\r
}\r
\r
{\r
word i;\r
dword far*ptr=(dword far*)VGA; /* used for faster screen clearing */\r
- word CRTParms[] = {\r
- 0x4f01, /* horizontal display enable end */\r
- 0x5002, /* */\r
- 0x5404, /* */\r
- 0x8005, /* */\r
- 0x0d06, /* vertical total */\r
- 0x3e07, /* overflow (bit 8 of vertical counts) */\r
- 0x4109, /* cell height (2 to double-scan */\r
- 0xea10, /* v sync start */\r
- 0xac11, /* v sync end and protect cr0-cr7 */\r
- 0xdf12, /* vertical displayed */\r
- 0x2813, /* offset/logical width */\r
- 0x0014, /* turn off dword mode */\r
- 0xe715, /* v blank start */\r
- 0x0616, /* v blank end */\r
- 0xe317 /* turn on byte mode */\r
- };\r
-\r
- int CRTParmCount = sizeof(CRTParms) / sizeof(CRTParms[0]);\r
+\r
+ int CRTParmCount = sizeof(ModeX_320x240regs) / sizeof(ModeX_320x240regs[0]);\r
+ /* width and height */\r
+ //TODO WWWW\r
+\r
+ /* common mode X initiation stuff~ */\r
+ modexsetBaseXMode();\r
+\r
+ /* send the CRTParms */\r
+ for(i=0; i<CRTParmCount; i++) {\r
+ outpw(CRTC_INDEX, ModeX_320x240regs[i]);\r
+ }\r
+\r
+ /* clear video memory */\r
+ outpw(SC_INDEX, 0x0f02);\r
+ for(i=0; i<0x8000; i++) {\r
+ ptr[i] = 0x0000;\r
+ }\r
+}\r
+\r
+void\r
+modex__256x192_256__Enter(global_game_variables_t *gv)\r
+{\r
+ word i;\r
+ dword far*ptr=(dword far*)VGA; /* used for faster screen clearing */\r
+\r
+ int CRTParmCount = sizeof(ModeX_256x192regs) / sizeof(ModeX_256x192regs[0]);\r
/* width and height */\r
//TODO WWWW\r
\r
\r
/* send the CRTParms */\r
for(i=0; i<CRTParmCount; i++) {\r
- outpw(CRTC_INDEX, CRTParms[i]);\r
+ outpw(CRTC_INDEX, ModeX_256x192regs[i]);\r
}\r
\r
/* clear video memory */\r