\r
#include "src/lib/16_tail.h"\r
\r
+/*\r
+==========================\r
+=\r
+= Startup16\r
+=\r
+= Load a few things right away\r
+=\r
+==========================\r
+*/\r
+\r
+void Startup16(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
+#endif\r
+ gvar->mm.mmstarted=0;\r
+ gvar->pm.PMStarted=0;\r
+ MM_Startup(gvar);\r
+if(!dbg_noplayerinpu)\r
+ IN_Startup(gvar);\r
+ PM_Startup(gvar);\r
+ PM_UnlockMainMem(gvar);\r
+ CA_Startup(gvar);\r
+#ifdef __WATCOMC__\r
+ start_timer(gvar);\r
+#endif\r
+\r
+}\r
+\r
+//===========================================================================\r
+\r
+/*\r
+==========================\r
+=\r
+= Shutdown16\r
+=\r
+= Shuts down all ID_?? managers\r
+=\r
+==========================\r
+*/\r
+\r
+void Shutdown16(global_game_variables_t *gvar)\r
+{\r
+ PM_Shutdown(gvar);\r
+if(!dbg_noplayerinpu)\r
+ IN_Shutdown(gvar);\r
+ CA_Shutdown(gvar);\r
+ MM_Shutdown(gvar);\r
+}\r
+\r
+\r
//===========================================================================\r
\r
/*\r
printf(" DebugMemory_\n");\r
printf("========================================\n");}\r
if(q) { printf("Memory Usage\n");\r
- printf("------------\n"); }else printf(" ");\r
+ printf("------------\n"); }else printf(" %c%c", 0xD3, 0xC4);\r
printf("Total: "); if(q) printf(" "); printf("%uk", gvar->mmi.mainmem/1024);\r
if(q) printf("\n"); else printf(" ");\r
printf("Free: "); if(q) printf(" "); printf("%uk", MM_UnusedMemory(gvar)/1024);\r
\r
void Quit (char *error)\r
{\r
- unsigned finscreen;\r
- memptr screen;\r
+ //unsigned finscreen;\r
+ memptr screen=0;\r
union REGS in, out;\r
\r
//ClearMemory ();\r
#endif\r
\r
//===========================================================================\r
+\r
+const char *nibble_to_binary(nibble x)\r
+{\r
+ static char b[9];\r
+ int z;\r
+\r
+ b[0] = '\0';\r
+ for (z = 8; z > 0; z >>= 1)\r
+ {\r
+ strcat(b, ((x & z) == z) ? "1" : "0");\r
+ }\r
+ return b;\r
+}\r
+\r
+const char *boolean_to_binary(boolean x)\r
+{\r
+ static char b[9];\r
+ int z;\r
+\r
+ b[0] = '\0';\r
+ for (z = 1; z > 0; z >>= 1)\r
+ {\r
+ strcat(b, ((x & z) == z) ? "1" : "0");\r
+ }\r
+ return b;\r
+}\r
+\r
+void nibbletest()\r
+{\r
+ nibble pee;\r
+ printf("nibbletest\n");\r
+ /* nibble to binary string */\r
+ for(pee=0;pee<18;pee++)\r
+ printf(" %u %s\n", pee, nibble_to_binary(pee));\r
+ printf(" sizeof(nibble)=%s\n", nibble_to_binary(sizeof(nibble)));\r
+ printf("end of nibble test\n");\r
+}\r
+\r
+void booleantest()\r
+{\r
+ boolean pee;\r
+ printf("booleantest\n");\r
+ /* boolean to binary string */\r
+ for(pee=0;pee<4;pee++)\r
+ printf(" %u %s\n", pee, boolean_to_binary(pee));\r
+ printf(" sizeof(boolean)=%s\n", boolean_to_binary(sizeof(boolean)));\r
+ printf("end of boolean test\n");\r
+}\r