UTIL.TXT - Serial Utility Programs Serial Utility Diskette 1997 ********************************************************************* This document is organized with the following conventions: Section 1. MouseFix Section 2. SetCOM Section 3. 16550 High-Speed UART ********************************************************************* Section 1. MouseFix MOUSEFIX.EXE will patch the standard Microsoft Mouse driver. This will create a file that will act as a mouse driver for any interrupt (2-7) and any I/O address. Input file must be titled MOUSE.COM, MOUSE.DRV, or MOUSE.SYS. Output filename is determined by command line entry. Error messages indicate various errors. Return code values are as follows: 1 : FILE TRANSFER ERROR 2 : COMMAND LINE ERROR 3 : UNSUCCESSFUL FILE PATCH 4 : MEMORY ERROR Command line format can be viewed by typing MOUSEFIX at the DOS prompt. The format for command line entry is as follows: Syntax : MOUSEFIX output filename/address/irq/input filename OUTPUT FILENAME: Must have same extension as Input file. ADDRESS : I/O Address, must be in HEX. IRQ : Interrupt Number / IRQ (2-7) INPUT FILENAME : (1-3) Where 1=MOUSE.COM 2=MOUSE.DRV 3=MOUSE.SYS Example: MOUSEFIX NEWFILE.COM/2E0/5/1 | | | | Output filename| | | |Input filename | | | |interrupt number | |I/O address NOTE: MOUSE.COM Version 7.14, addresses 100H, 200H, AND 300H are invalid selections. ********************************************************************* Section 2. SetCOM SETCOM.COM - Utility to set COM1: - COM4: to any Address and communication parameter. PC compatible machines communicate with other devices such as printers, test equipment, programmable logic controllers, and other computers through their serial ports. DOS Versions 3.2 and below refer to these ports as COM1: and COM2:, while Versions 3.3 and above include support for 2 additional ports, COM3: AND COM4:. The standard device used in a serial port is called a UART (Universal Asynchronous Receiver Transmitter). A UART contains 7 functional registers that are used for reporting the ports' status and for initializing the communication parameters under which the serial port will function. To gain access to these registers, all DOS versions reserve four locations in memory which hold the base address for the UART associated with COM1: - COM4:. all DOS functions that operate on the COM: ports such as MODE, PRINT, CTTY, or pipe-lining, along with the BIOS (Basic Input Output Services) serial port procedures get the base address for the port from this area. The standard addresses for COM1: -COM4: are COM1: = 3F8H, COM2: = 2F8H, COM3: = 3E8H, COM4: = 2E8H. When the PC is first started, the BIOS may initialize COM1: and COM2: to 3F8H and 2F8H respectively, if a UART has been verified at those addresses. If a UART is verified at 2F8H, but not 3F8H, some BIOS routines will initialize COM1: to 2F8H. Therefore, the serial port addresses are restricted to only two choices: 3F8H and 2F8H. By altering these port values in memory, DOS can access multiple ports, all referred to as COM1: or COM2:. There is also a limitation on the baud rate that can be set with the DOS MODE command: 9600 baud for versions 3.2 and below, 19.2K baud for versions 3.3 and above. The baud rate in a UART is set by writing a divisor value to two of the functional registers, called the divisor latch. DOS keeps standard divisor rates in memory, but does not supply the means to initialize the COM: ports to higher baud rates. The SETCOM program can initialize the specified COM: port for any port address with rates up to 115.2K baud. * NOTE: Even though COM3: and COM4: can be initialized, DOS Versions 3.2 and below do not recognize them as valid devices. The BIOS serial port routines however, will access COM1: - COM4: as long as the ports base address stored in memory is not 0. Syntax: SETCOM A,BBB,CCCC,D,E,F Where: A = COM#: to be set (1-4) B = Hex Address to be set C = Baud Rage (300,600,1200,2400,4800,9600,19.2,38.4,57.6,115.2) D = Parity (N,E,O) E = Word Length (5,6,7,8) F = Stop Bits (1,2) Examples: 1) Set COM1: to address 2E0 Hex, 9600 Baud, NO Parity, 8 Bit Word, 1 Stop Bit. Syntax: SETCOM 1,2E0,9600,N,8,1 2) Set COM2: to Address 2F8 Hex, 19.2K Baud, NO Parity, 7 Bit Word, 1 Stop Bit. Syntax: SETCOM 1,2F8,19.2,N,7,1 3) Set COM1: To Address 3F8 Hex, 38.4K Baud, NO Parity, 8 Bit Word, 1 Stop Bit. Syntax: SETCOM 1,3F8,38.4,N,8,1 ********************************************************************* Section 3. 16550 High Speed UART 1) - 16550 UART The NS16550 replacement UART is functionally identical to the NS16450 on power-up, but has the option of being placed in buffered FIFO mode with a programmable interrupt trigger level selectable from 1,4,8, or 14 bytes. This function reduces the number of interrupts presented to the CPU, thus reducing CPU overhead and increasing throughput. 2) - 3.6864 MHz OSCILLATOR REPLACEMENT (GTO Option) The GTO options for communication boards provide hardware to enable the standard communication boards to run at higher baud rates with greater throughput. The 3.6864 oscillator option will double the expected baud rate from the UART using standard divisor values. For example, programming the UART for 9600 baud will generate 19.2 Kbps, programming for 4800 will generate 9600 baud, and so on. Example: MODE COM1:9600,N,8,1 - sets parameters for 19.2 Kbps,N,8,1. 3) - Diagnostic Software and Examples The enclosed programs are provided as references for enabling FIFO mode of operation and selecting interrupt trigger levels. SETFIFO.EXE - SETS FIFO AND TRIGGER LEVEL FOR 16550 AT ANY ADDRESS. CXFIFO.EXE - VERIFY THAT FIFO IS ON OR OFF FOR 16550 AT ANY ADDRESS. 16550.BAS - DEMO PROGRAM TO TEST THE TRIGGER LEVEL OF 16550. FIFO.COM - ILLUSTRATES OVERHEAD SAVINGS WHEN USING THE 16550s. *********************************************************************