]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/16_dbg.c
16_pm worked on~
[16.git] / src / lib / 16_dbg.c
index 2215c42002c2acaa5ac9de10655db74ac1efa3a7..7766a1d443592a49cc64c032d357fa02e1a6584f 100755 (executable)
@@ -1,76 +1,76 @@
-
-#include "src/16.h"
-
-// TODO: Could we also provide a build mode to emit debug to the "Bochs E9 hack?"
-#ifdef DEBUGSERIAL
-# include <stdarg.h>
-# include <stdlib.h>
-# include <stdio.h>
-
-unsigned char _DEBUG_INITed = 0;
-struct info_8250 *_DEBUG_uart = NULL;
-
-int _DEBUG_INIT() {
-       if (!_DEBUG_INITed) {
-               unsigned int i;
-               uint16_t port;
-
-               if (!init_8250()) return 0;
-
-               // what does the BIOS say the serial ports are?
-               probe_8250_bios_ports();
-               for (i=0;i < bios_8250_ports;i++) {
-                       port = get_8250_bios_port(i);
-                       if (port == 0) continue;
-                       probe_8250(port);
-               }
-
-               // what about the standard serial ports?
-               for (i=0;i < (sizeof(standard_8250_ports)/sizeof(standard_8250_ports[0]));i++) {
-                       port = standard_8250_ports[i];
-                       if (port == 0) continue;
-                       probe_8250(port);
-               }
-
-               // pick the first port, which is probably COM1
-               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[]
-               _DEBUG_uart = &info_8250_port[0];
-               _DEBUG_INITed = 1;
-
-               // init the COM port.
-               // in DOSBox-X, the "log" mode will receive our text and print it into the log file
-               // 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.
-               // if nothing is connected, then the bytes go off into the ether to get lost and life goes on.
-               uart_8250_enable_interrupt(_DEBUG_uart,0);      // disable interrupts
-               uart_8250_set_FIFO(_DEBUG_uart,0x07);           // enable FIFO (why not?), also clear xmit/recv FIFO buffers, set threshhold to 1 byte
-               uart_8250_set_MCR(_DEBUG_uart,3);               // RTS and DTS on
-               uart_8250_set_line_control(_DEBUG_uart,UART_8250_LCR_8BIT | UART_8250_LCR_PARITY); // 8 bit 1 stop bit odd parity
-               uart_8250_set_baudrate(_DEBUG_uart,uart_8250_baud_to_divisor(_DEBUG_uart,9600)); // 9600 baud
-       }
-
-       return _DEBUG_INITed;
-}
-
-void _DEBUG(const char *msg) {
-       if (_DEBUG_uart != NULL) {
-               char c;
-
-               while ((c=(*msg++)) != 0/*NUL*/) {
-                       while (!uart_8250_can_write(_DEBUG_uart)); // wait for the UART to indicate readiness for our output
-                       uart_8250_write(_DEBUG_uart,(uint8_t)c); // then write it
-               }
-       }
-}
-
-static char _DEBUGF_TMP[256];
-
-void _DEBUGF(const char *fmt,...) {
-       va_list va;
-
-       va_start(va,fmt);
-       vsnprintf(_DEBUGF_TMP,sizeof(_DEBUGF_TMP),fmt,va);
-       _DEBUG(_DEBUGF_TMP);
-       va_end(va);
-}
-#endif
-
+\r
+#include "src/16.h"\r
+\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\r
+\r