]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/16_tail.c
[16_ca needs huge amounts of work and I should remember what needs to be done soon...
[16.git] / src / lib / 16_tail.c
index 3b1cb42c3b0c9c76887689bd9dccc4f97aed0d17..daa9fadc3192344578189bcdd8a8b762e11bb7e5 100755 (executable)
@@ -25,7 +25,6 @@
 \r
 #include "src/lib/16_tail.h"\r
 #include "src/lib/16text.h"\r
-\r
 /*\r
 ==========================\r
 =\r
@@ -40,38 +39,9 @@ void Startup16(global_game_variables_t *gvar)
 {\r
 #ifdef __WATCOMC__\r
        start_timer(gvar);\r
-\r
-       // DOSLIB: check our environment\r
-       probe_dos();\r
-\r
-       // DOSLIB: what CPU are we using?\r
-       // NTS: I can see from the makefile Sparky4 intends this to run on 8088 by the -0 switch in CFLAGS.\r
-       //        So this code by itself shouldn't care too much what CPU it's running on. Except that other\r
-       //        parts of this project (DOSLIB itself) rely on CPU detection to know what is appropriate for\r
-       //        the CPU to carry out tasks. --J.C.\r
-       cpu_probe();\r
-\r
-       // DOSLIB: check for VGA\r
-       if (!probe_vga()) {\r
-               printf("VGA probe failed\n");\r
-               return;\r
-       }\r
-       // hardware must be VGA or higher!\r
-       if (!(vga_state.vga_flags & VGA_IS_VGA)) {\r
-               printf("This program requires VGA or higher graphics hardware\n");\r
-               return;\r
-       }\r
-\r
-       if (_DEBUG_INIT() == 0) {\r
-#ifdef DEBUGSERIAL\r
-               //printf("WARNING: Failed to initialize DEBUG output\n");\r
-#endif\r
-       }\r
-       _DEBUG("Serial debug output started\n"); // NTS: All serial output must end messages with newline, or DOSBox-X will not emit text to log\r
-       _DEBUGF("Serial debug output printf test %u %u %u\n",1U,2U,3U);\r
-\r
-       textInit();\r
 #endif\r
+       gvar->video.VL_Started=0;\r
+       TL_VidInit(gvar);\r
        gvar->mm.mmstarted=0;\r
        gvar->pm.PMStarted=0;\r
        MM_Startup(gvar);\r
@@ -115,7 +85,51 @@ void Shutdown16(global_game_variables_t *gvar)
        CA_Shutdown(gvar);\r
        MM_Shutdown(gvar);\r
 #ifdef __WATCOMC__\r
-       VGAmodeX(0, 1, gvar);\r
+       if(gvar->video.VL_Started)\r
+               VGAmodeX(0, 1, gvar);\r
+#endif\r
+}\r
+\r
+void   TL_VidInit(global_game_variables_t *gvar)\r
+{\r
+#ifdef __WATCOMC__\r
+       // DOSLIB: check our environment\r
+       probe_dos();\r
+\r
+       // DOSLIB: what CPU are we using?\r
+       // NTS: I can see from the makefile Sparky4 intends this to run on 8088 by the -0 switch in CFLAGS.\r
+       //        So this code by itself shouldn't care too much what CPU it's running on. Except that other\r
+       //        parts of this project (DOSLIB itself) rely on CPU detection to know what is appropriate for\r
+       //        the CPU to carry out tasks. --J.C.\r
+       cpu_probe();\r
+\r
+       // DOSLIB: check for VGA\r
+       if (!probe_vga()) {\r
+               printf("VGA probe failed\n");\r
+               return;\r
+       }\r
+       // hardware must be VGA or higher!\r
+       if (!(vga_state.vga_flags & VGA_IS_VGA)) {\r
+               printf("This program requires VGA or higher graphics hardware\n");\r
+               return;\r
+       }\r
+\r
+       if (_DEBUG_INIT() == 0) {\r
+#ifdef DEBUGSERIAL\r
+               //printf("WARNING: Failed to initialize DEBUG output\n");\r
+#endif\r
+       }\r
+       _DEBUG("Serial debug output started\n"); // NTS: All serial output must end messages with newline, or DOSBox-X will not emit text to log\r
+       _DEBUGF("Serial debug output printf test %u %u %u\n",1U,2U,3U);\r
+\r
+       textInit();\r
+\r
+       // get old video mode\r
+       //in.h.ah = 0xf;\r
+       //int86(0x10, &in, &out);\r
+       gvar->video.old_mode = vgaGetMode();//out.h.al;\r
+#else\r
+       gvar->video.old_mode = 3;\r
 #endif\r
 }\r
 \r
@@ -489,3 +503,13 @@ void booleantest()
        printf("        sizeof(boolean)=%s\n", boolean_to_binary(sizeof(boolean)));\r
        printf("end of boolean test\n");\r
 }\r
+\r
+#ifdef __BORLANDC__\r
+word modexPalOverscan(word col)\r
+{\r
+       //modexWaitBorder();\r
+       outp(PAL_WRITE_REG, 0);  /* start at the beginning of palette */\r
+       outp(PAL_DATA_REG, col);\r
+       return col;\r
+}\r
+#endif\r