]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/16_dbg.c
[16_ca needs huge amounts of work and I should remember what needs to be done soon...
[16.git] / src / lib / 16_dbg.c
index 2cc7e985c8cbcc182caf47cb0ec105c6cbaa15fc..db8f71a10365279798763005f247c2be657b22b2 100755 (executable)
@@ -19,6 +19,80 @@ byte *dbg_mapdata;
 #endif\r
 #endif //debug\r
 \r
+#ifdef __WATCOMC__\r
+// TODO: Could we also provide a build mode to emit debug to the "Bochs E9 hack?"\r
+#ifdef DEBUGSERIAL\r
+# include <stdarg.h>\r
+# include <stdlib.h>\r
+# include <stdio.h>\r
+\r
+unsigned char _DEBUG_INITed = 0;\r
+struct info_8250 *_DEBUG_uart = NULL;\r
+\r
+int _DEBUG_INIT() {\r
+       if (!_DEBUG_INITed) {\r
+               unsigned int i;\r
+               uint16_t port;\r
+\r
+               if (!init_8250()) return 0;\r
+\r
+               // what does the BIOS say the serial ports are?\r
+               probe_8250_bios_ports();\r
+               for (i=0;i < bios_8250_ports;i++) {\r
+                       port = get_8250_bios_port(i);\r
+                       if (port == 0) continue;\r
+                       probe_8250(port);\r
+               }\r
+\r
+               // what about the standard serial ports?\r
+               for (i=0;i < (sizeof(standard_8250_ports)/sizeof(standard_8250_ports[0]));i++) {\r
+                       port = standard_8250_ports[i];\r
+                       if (port == 0) continue;\r
+                       probe_8250(port);\r
+               }\r
+\r
+               // pick the first port, which is probably COM1\r
+               if (base_8250_ports == 0) return 0; // FIXME: You know "base_8250_ports" is probably a bad variable name for the max entries in info_8250_port[]\r
+               _DEBUG_uart = &info_8250_port[0];\r
+               _DEBUG_INITed = 1;\r
+\r
+               // init the COM port.\r
+               // in DOSBox-X, the "log" mode will receive our text and print it into the log file\r
+               // on real hardware, our text will likely go over a null modem cable to another PC running a serial terminal program like PuTTY or minicom.\r
+               // if nothing is connected, then the bytes go off into the ether to get lost and life goes on.\r
+               uart_8250_enable_interrupt(_DEBUG_uart,0);      // disable interrupts\r
+               uart_8250_set_FIFO(_DEBUG_uart,0x07);           // enable FIFO (why not?), also clear xmit/recv FIFO buffers, set threshhold to 1 byte\r
+               uart_8250_set_MCR(_DEBUG_uart,3);               // RTS and DTS on\r
+               uart_8250_set_line_control(_DEBUG_uart,UART_8250_LCR_8BIT | UART_8250_LCR_PARITY); // 8 bit 1 stop bit odd parity\r
+               uart_8250_set_baudrate(_DEBUG_uart,uart_8250_baud_to_divisor(_DEBUG_uart,9600)); // 9600 baud\r
+       }\r
+\r
+       return _DEBUG_INITed;\r
+}\r
+\r
+void _DEBUG(const char *msg) {\r
+       if (_DEBUG_uart != NULL) {\r
+               char c;\r
+\r
+               while ((c=(*msg++)) != 0/*NUL*/) {\r
+                       while (!uart_8250_can_write(_DEBUG_uart)); // wait for the UART to indicate readiness for our output\r
+                       uart_8250_write(_DEBUG_uart,(uint8_t)c); // then write it\r
+               }\r
+       }\r
+}\r
+\r
+static char _DEBUGF_TMP[256];\r
+\r
+void _DEBUGF(const char *fmt,...) {\r
+       va_list va;\r
+\r
+       va_start(va,fmt);\r
+       vsnprintf(_DEBUGF_TMP,sizeof(_DEBUGF_TMP),fmt,va);\r
+       _DEBUG(_DEBUGF_TMP);\r
+       va_end(va);\r
+}\r
+#endif //serial\r
+#endif //watcomc\r
 /*\r
 ================\r
 =\r
@@ -35,7 +109,7 @@ extern       word    _seg *DigiList;
 static char    buf[10];\r
 \r
        boolean                 done;\r
-       ScanCode                scan=0;\r
+       ScanCode                scan;\r
        int                             i,j;\r
 //     dword           l; word k,x;\r
        memptr                  addr;\r
@@ -52,10 +126,10 @@ static     char    buf[10];
 //             US_Print(" Page #");\r
 //             US_PrintUnsigned(i);\r
                printf(" Page #%u", i);\r
-               if (i < (gvar->pm.fi.PMSpriteStart))\r
+//++           if (i < (gvar->pm.fi.PMSpriteStart))\r
 //                     US_Print(" (Wall)");\r
-                       printf(" (Wall)");\r
-               else if (i < (gvar->pm.fi.PMSoundStart))\r
+//++                   printf(" (Wall)");\r
+/*             else if (i < (gvar->pm.fi.PMSoundStart))\r
 //                     US_Print(" (Sprite)");\r
                        printf(" (Sprite)");\r
                else if (i == (gvar->pm.fi.ChunksInFile - 1))\r
@@ -63,7 +137,7 @@ static       char    buf[10];
                        printf(" (Sound Info)");\r
                else\r
 //                     US_Print(" (Sound)");\r
-                       printf(" (Sound)");\r
+                       printf(" (Sound)");*/\r
 \r
 //             US_Print("\n XMS: ");\r
                printf("\n XMS: ");\r
@@ -177,14 +251,19 @@ static    char    buf[10];
                                                                WindowX + 8 + (j / 32),BLACK);\r
                                }\r
                        }*/\r
-                       printf("addr ok\n");\r
+                       printf("\naddr ok\n");\r
                }\r
 \r
 //             VW_UpdateScreen();\r
 \r
-//             while (!(scan = LastScan))\r
+               while (!(scan = gvar->in.inst->LastScan))\r
+               {\r
+               }\r
+//                     scan = *IN_GetScanName(scan);\r
 //                     SD_Poll();\r
 \r
+if(IN_KeyDown(sc_Escape)) break;\r
+\r
                IN_ClearKey(scan);\r
                switch (scan)\r
                {\r
@@ -200,10 +279,10 @@ static    char    buf[10];
                        i = 0;\r
                        break;\r
                case sc_S:      // Sprites\r
-                       i = (gvar->pm.fi.PMSpriteStart);\r
+//                     i = (gvar->pm.fi.PMSpriteStart);\r
                        break;\r
                case sc_D:      // Digitized\r
-                       i = (gvar->pm.fi.PMSoundStart);\r
+//                     i = (gvar->pm.fi.PMSoundStart);\r
                        break;\r
                case sc_I:      // Digitized info\r
                        i = (gvar->pm.fi.ChunksInFile - 1);\r
@@ -227,78 +306,3 @@ static     char    buf[10];
        //SD_StopDigitized();\r
 }\r
 #pragma warn +pia\r
-\r
-#ifdef __WATCOMC__\r
-// TODO: Could we also provide a build mode to emit debug to the "Bochs E9 hack?"\r
-#ifdef DEBUGSERIAL\r
-# include <stdarg.h>\r
-# include <stdlib.h>\r
-# include <stdio.h>\r
-\r
-unsigned char _DEBUG_INITed = 0;\r
-struct info_8250 *_DEBUG_uart = NULL;\r
-\r
-int _DEBUG_INIT() {\r
-       if (!_DEBUG_INITed) {\r
-               unsigned int i;\r
-               uint16_t port;\r
-\r
-               if (!init_8250()) return 0;\r
-\r
-               // what does the BIOS say the serial ports are?\r
-               probe_8250_bios_ports();\r
-               for (i=0;i < bios_8250_ports;i++) {\r
-                       port = get_8250_bios_port(i);\r
-                       if (port == 0) continue;\r
-                       probe_8250(port);\r
-               }\r
-\r
-               // what about the standard serial ports?\r
-               for (i=0;i < (sizeof(standard_8250_ports)/sizeof(standard_8250_ports[0]));i++) {\r
-                       port = standard_8250_ports[i];\r
-                       if (port == 0) continue;\r
-                       probe_8250(port);\r
-               }\r
-\r
-               // pick the first port, which is probably COM1\r
-               if (base_8250_ports == 0) return 0; // FIXME: You know "base_8250_ports" is probably a bad variable name for the max entries in info_8250_port[]\r
-               _DEBUG_uart = &info_8250_port[0];\r
-               _DEBUG_INITed = 1;\r
-\r
-               // init the COM port.\r
-               // in DOSBox-X, the "log" mode will receive our text and print it into the log file\r
-               // on real hardware, our text will likely go over a null modem cable to another PC running a serial terminal program like PuTTY or minicom.\r
-               // if nothing is connected, then the bytes go off into the ether to get lost and life goes on.\r
-               uart_8250_enable_interrupt(_DEBUG_uart,0);      // disable interrupts\r
-               uart_8250_set_FIFO(_DEBUG_uart,0x07);           // enable FIFO (why not?), also clear xmit/recv FIFO buffers, set threshhold to 1 byte\r
-               uart_8250_set_MCR(_DEBUG_uart,3);               // RTS and DTS on\r
-               uart_8250_set_line_control(_DEBUG_uart,UART_8250_LCR_8BIT | UART_8250_LCR_PARITY); // 8 bit 1 stop bit odd parity\r
-               uart_8250_set_baudrate(_DEBUG_uart,uart_8250_baud_to_divisor(_DEBUG_uart,9600)); // 9600 baud\r
-       }\r
-\r
-       return _DEBUG_INITed;\r
-}\r
-\r
-void _DEBUG(const char *msg) {\r
-       if (_DEBUG_uart != NULL) {\r
-               char c;\r
-\r
-               while ((c=(*msg++)) != 0/*NUL*/) {\r
-                       while (!uart_8250_can_write(_DEBUG_uart)); // wait for the UART to indicate readiness for our output\r
-                       uart_8250_write(_DEBUG_uart,(uint8_t)c); // then write it\r
-               }\r
-       }\r
-}\r
-\r
-static char _DEBUGF_TMP[256];\r
-\r
-void _DEBUGF(const char *fmt,...) {\r
-       va_list va;\r
-\r
-       va_start(va,fmt);\r
-       vsnprintf(_DEBUGF_TMP,sizeof(_DEBUGF_TMP),fmt,va);\r
-       _DEBUG(_DEBUGF_TMP);\r
-       va_end(va);\r
-}\r
-#endif //serial\r
-#endif //watcomc\r