[KDCOM][NTOS:INBV][FREELDR] Decrease default baud rate for PC-98 target (#2601)
authorDmitry Borisov <di.sean@protonmail.com>
Tue, 21 Apr 2020 20:22:42 +0000 (02:22 +0600)
committerGitHub <noreply@github.com>
Tue, 21 Apr 2020 20:22:42 +0000 (23:22 +0300)
According to PC-9801 Bible p. 50, divisor for PIT will become unsupported in some cases after having removed the fractional part. Replace 19200 value with 9600 which is supported by both 10 MHz and 8 MHz machines.

boot/bootdata/floppy_pc98.ini
boot/freeldr/freeldr/lib/comm/rs232.c
boot/freeldr/freeldr/lib/debug.c
boot/freeldr/freeldr/ntldr/headless.c
drivers/base/kdcom/kdcom.c
drivers/base/kdgdb/kdcom.c
ntoskrnl/inbv/inbvport.c
ntoskrnl/kd/i386/kdbg.c

index 0466754..a464896 100644 (file)
@@ -39,7 +39,7 @@ Options=/MININT
 [LiveCD_Debug]
 BootType=Windows2003
 SystemPath=multi(0)disk(0)cdrom(0)\reactos
-Options=/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS /MININT
+Options=/DEBUG /DEBUGPORT=COM1 /BAUDRATE=9600 /SOS /MININT
 
 [LiveCD_Screen]
 BootType=Windows2003
index 10d0b0b..61309fc 100644 (file)
 
 /* STATIC VARIABLES ***********************************************************/
 
+#if defined(SARCH_PC98)
+#define DEFAULT_BAUD_RATE   9600
+#else
 #define DEFAULT_BAUD_RATE   19200
+#endif
 
 #if defined(_M_IX86) || defined(_M_AMD64)
 #if defined(SARCH_PC98)
index 24c074d..abc2545 100644 (file)
@@ -43,8 +43,13 @@ static UCHAR DbgChannels[DBG_CHANNELS_COUNT];
 ULONG DebugPort = RS232;
 
 /* Serial debug connection */
-ULONG ComPort  = 0; // The COM port initializer chooses the first available port starting from COM4 down to COM1.
+#if defined(SARCH_PC98)
+ULONG BaudRate = 9600;
+#else
 ULONG BaudRate = 115200;
+#endif
+
+ULONG ComPort  = 0; // The COM port initializer chooses the first available port starting from COM4 down to COM1.
 ULONG PortIrq  = 0; // Not used at the moment.
 
 BOOLEAN DebugStartOfLine = TRUE;
index 35af2e3..64fd04a 100644 (file)
@@ -67,10 +67,10 @@ WinLdrPortInitialize(IN ULONG BaudRate,
                      IN BOOLEAN TerminalConnected,
                      OUT PULONG PortId)
 {
+#if defined(SARCH_PC98)
     /* Set default baud rate */
-    if (BaudRate == 0) BaudRate = 19200;
+    if (BaudRate == 0) BaudRate = 9600;
 
-#if defined(SARCH_PC98)
     /* Check if port or address given */
     if (PortNumber)
     {
@@ -106,6 +106,9 @@ WinLdrPortInitialize(IN ULONG BaudRate,
         }
     }
 #else
+    /* Set default baud rate */
+    if (BaudRate == 0) BaudRate = 19200;
+
     /* Check if port or address given */
     if (PortNumber)
     {
index eb62aa4..c4cfa39 100644 (file)
 #include <ndk/halfuncs.h>
 
 /* Serial debug connection */
+#if defined(SARCH_PC98)
 #define DEFAULT_DEBUG_PORT      2 /* COM2 */
-#define DEFAULT_DEBUG_COM1_IRQ  4 /* COM1 IRQ */
-#define DEFAULT_DEBUG_COM2_IRQ  3 /* COM2 IRQ */
-#define DEFAULT_DEBUG_BAUD_RATE 115200 /* 115200 Baud */
-
-#define DEFAULT_BAUD_RATE   19200
+#define DEFAULT_DEBUG_COM1_IRQ  4
+#define DEFAULT_DEBUG_COM2_IRQ  5
+#define DEFAULT_DEBUG_BAUD_RATE 9600
+#define DEFAULT_BAUD_RATE       9600
+#else
+#define DEFAULT_DEBUG_PORT      2 /* COM2 */
+#define DEFAULT_DEBUG_COM1_IRQ  4
+#define DEFAULT_DEBUG_COM2_IRQ  3
+#define DEFAULT_DEBUG_BAUD_RATE 115200
+#define DEFAULT_BAUD_RATE       19200
+#endif
 
 #if defined(_M_IX86) || defined(_M_AMD64)
 #if defined(SARCH_PC98)
index af9ec39..1871024 100644 (file)
 #include <ndk/halfuncs.h>
 
 /* Serial debug connection */
+#if defined(SARCH_PC98)
 #define DEFAULT_DEBUG_PORT      2 /* COM2 */
-#define DEFAULT_DEBUG_COM1_IRQ  4 /* COM1 IRQ */
-#define DEFAULT_DEBUG_COM2_IRQ  3 /* COM2 IRQ */
-#define DEFAULT_DEBUG_BAUD_RATE 115200 /* 115200 Baud */
-
-#define DEFAULT_BAUD_RATE   19200
+#define DEFAULT_DEBUG_COM1_IRQ  4
+#define DEFAULT_DEBUG_COM2_IRQ  5
+#define DEFAULT_DEBUG_BAUD_RATE 9600
+#define DEFAULT_BAUD_RATE       9600
+#else
+#define DEFAULT_DEBUG_PORT      2 /* COM2 */
+#define DEFAULT_DEBUG_COM1_IRQ  4
+#define DEFAULT_DEBUG_COM2_IRQ  3
+#define DEFAULT_DEBUG_BAUD_RATE 115200
+#define DEFAULT_BAUD_RATE       19200
+#endif
 
 #if defined(_M_IX86) || defined(_M_AMD64)
 #if defined(SARCH_PC98)
@@ -299,12 +306,12 @@ NTAPI
 KdpReceiveByte(_Out_ PUCHAR OutByte)
 {
     USHORT CpStatus;
-    
+
     do
     {
         CpStatus = CpGetByte(&KdComPort, OutByte, TRUE, FALSE);
     } while (CpStatus == CP_GET_NODATA);
-    
+
     /* Get the byte */
     if (CpStatus == CP_GET_SUCCESS)
     {
index 526383a..269c8f9 100644 (file)
@@ -79,10 +79,10 @@ InbvPortInitialize(IN  ULONG   BaudRate,
     /* Not yet supported */
     ASSERT(IsMMIODevice == FALSE);
 
+#if defined(SARCH_PC98)
     /* Set default baud rate */
-    if (BaudRate == 0) BaudRate = 19200;
+    if (BaudRate == 0) BaudRate = 9600;
 
-#if defined(SARCH_PC98)
     /* Check if port or address given */
     if (PortNumber)
     {
@@ -118,6 +118,9 @@ InbvPortInitialize(IN  ULONG   BaudRate,
         }
     }
 #else
+    /* Set default baud rate */
+    if (BaudRate == 0) BaudRate = 19200;
+
     /* Check if port or address given */
     if (PortNumber)
     {
index 9277e01..44bd762 100644 (file)
 #define NDEBUG
 #include <debug.h>
 
-
+#if defined(SARCH_PC98)
+#define DEFAULT_BAUD_RATE   9600
+#else
 #define DEFAULT_BAUD_RATE   19200
+#endif
 
 #if defined(_M_IX86) || defined(_M_AMD64)
 #if defined(SARCH_PC98)