]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/modex16.c
going to fix it but lower resolution system is implemented!! ^^;
[16.git] / src / lib / modex16.c
index 6bd22e85d67a1a7b8e840fabe12f832cb6f3816b..2b489c2bb6e432a433cad481b555925da20f96c9 100755 (executable)
@@ -56,7 +56,8 @@ void VGAmodeX(sword vq, global_game_variables_t *gv)
                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
@@ -76,25 +77,33 @@ modex__320x240_256__Enter(global_game_variables_t *gv)
 {\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
@@ -103,7 +112,7 @@ modex__320x240_256__Enter(global_game_variables_t *gv)
 \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