Hi Guys,

                I needed to output to serial today so I wrote a small file to 
support that.  One of the file goes in ADC the otherone in X86 J

Index: Kernel/Core/ADC/X86/IO.cs
===================================================================
--- Kernel/Core/ADC/X86/IO.cs  (revision 457)
+++ Kernel/Core/ADC/X86/IO.cs  (working copy)
@@ -460,6 +460,34 @@
                       #endregion

                       //03E8-03EF - serial port, same as 02E8, 02F8 and 03F8
+                      /// <summary>
+                      /// Port 0x03F8
+                      /// </summary>
+                      UART_Transmit_Receive_Buffer          = 0x03F8,
+                      /// <summary>
+                      /// Port 0x03F9
+                      /// </summary>
+                      UART_Interrupt_Enable_Register                = 0x03F9,
+                      /// <summary>
+                      /// Port 0x03FA
+                      /// </summary>
+                      UART_Interrupt_Identification_Register = 0x03FA,
+                      /// <summary>
+                      /// Port 0x03FB
+                      /// </summary>
+                      UART_Line_Control_Register            = 0x03FB,
+                      /// <summary>
+                      /// Port 0x03FC
+                      /// </summary>
+                      UART_Modem_Control_Register           = 0x03FC,
+                      /// <summary>
+                      /// Port 0x03FD
+                      /// </summary>
+                      UART_Line_Status_Register                     = 0x03FD,
+                      /// <summary>
+                      /// Port 0x03FE
+                      /// </summary>
+                      UART_Modem_Status_Register            = 0x03FE
                       //03F0-03F7 - First Floppy Disk Controller
                       //03F8-03FF - serial port (8250,8251,16450,16550)
               };


Kveðja/Regards
   Ásgeir Halldórsson
   E.C. Software

using AOTAttr = SharpOS.AOT.Attributes;

namespace SharpOS.ADC
{
        public class Serial
        {
                [AOTAttr.ADCStub]
                public static void Setup()
                {
                        Kernel.Warning("Serial.Setup - not implemented!");
                }

                [AOTAttr.ADCStub]
                public static void PutChar(byte ch)
                {
                        Kernel.Warning("Serial.PutChar - not implemented!");
                }
        }
}
using SharpOS.AOT.X86;

namespace SharpOS.ADC.X86
{
        public class Serial
        {
                public static void Setup()
                {
                        IO.Out8(IO.Port.UART_Interrupt_Enable_Register, 0x00);  
                        // Disable all interrupts
                        IO.Out8(IO.Port.UART_Line_Control_Register, 0x80);      
                                // Enable DLAB (set baud rate divisor)
                        IO.Out8(IO.Port.UART_Transmit_Receive_Buffer, 0x03);    
                        // Set divisor to 3 (lo byte) 38400 baud
                        IO.Out8(IO.Port.UART_Interrupt_Enable_Register, 0x00);  
                        //                  (hi byte)
                        IO.Out8(IO.Port.UART_Line_Control_Register, 0x03);      
                                // 8 bits, no parity, one stop bit
                        IO.Out8(IO.Port.UART_Interrupt_Identification_Register, 
0xC7);          // Enable FIFO, clear them, with 14-byte threshold
                        IO.Out8(IO.Port.UART_Modem_Control_Register, 0x0B);     
                                // IRQs enabled, RTS/DSR set
                }

                private static bool CanTransmit()
                {
                        return (IO.In8(IO.Port.UART_Modem_Status_Register) & 
0x20) != 0;
                }


                public static void PutChar(byte ch)
                {
                        while (!CanTransmit())
                                continue;

                        IO.Out8(IO.Port.UART_Transmit_Receive_Buffer, ch);
                }
        }
}
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
SharpOS-Developers mailing list
SharpOS-Developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sharpos-developers

Reply via email to