brain boxes Serial Solutions for Dos 2.
______________ GUARANTEE. FULL 36 MONTHS GUARANTEE. BRAIN BOXES guarantee your Serial Solutions software for a full 36 months from purchase, parts and labour, provided it has been used in the specified manner. In the unlikely event of failure return your interface to BRAIN BOXES or to your Dealer, with proof of purchase, who will determine whether to repair or replace this product with an equivalent unit. _____________ COPYRIGHT. COPYRIGHT (C) 1990 - 1995 BRAIN BOXES. All rights reserved.
Serial Solution Reference _________ Warning!. Unauthorised copying of Serial Solutions is a crime! Although public domain programs allow unlimited copying, and much commercial software allows copying provided the program purchased is only in use on only one machine at a time, many programs specifically forbid copying of proprietary material. The copyright laws of most countries forbid unauthorised copying of computer programs without the authors permission.
Serial Solution Reference Thank You For Buying Serial Solutions Software For DOS! We proudly present the Serial Solutions Software System. Windows Serial Solution Software. ______________________________ Serial Solutions is a device driver for managing multiple Serial Ports from DOS. If you wish to control multiple Serial Ports from the popular Windows graphical environment then you need to use the separate Serial Solutions for Windows package. Introducing Serial Solution Software.
Serial Solution Reference Serial Solutions consists of the following disks and programs. The Serial Solutions Disk 1 disk contains:a) NewCOM.SYS The dos device driver providing 16 COM ports as with buffered interrupt driven i/o and RS232, 422 and 485 style flow control. b) NewMODE.EXE Allows command line reading and setting of baud rates etc for up to 32 ports. c) EASYC.EXE and EASYC.C EASYBAS.EXE and EASYBAS.BAS EASYPAS.EXE and EASYPAS.
Serial Solution a) b) c) Reference BASterm.exe and BASterm.bas Cterm.exe and Cterm.c PASterm.exe and PASterm.pas Aterm.exe and Aterm.asm FORterm.exe and FORterm.for 5 fully featured terminal emulation programs, with the corresponding source code files, TermTXT.def A data file used by the terminal emulation programs to specify the properties of the emulated terminal. NewBIOS.com Loadable replacement BIOS to add Serial Solution BIOS extension features without the DOS device driver capability.
Serial Solution Reference Outline Contents._ _______________ Chapter 1. What To Do First. Chapter 2. NewCOM.sys Parameters. Chapter 3. Using NewMode. Chapter 4. Using NewBIOS. Chapter 5. NewBIOS Reference. Chapter 6. Terminal Emulators. Chapter 7. CTerm. Chapter 8. Aterm. Chapter 9. PASterm. Chapter 10. BASterm. Chapter 11. Forterm. Index.
Serial Solution Reference _________ Contents. Chapter 1. What You Must Do First. System Requirements. 1 Up And Running Within Ten Minutes. Configuring Your System. Setting Up For COM3. Setting Up For COM4. COM1-4 Defaults. COM5 And Above. Address Selection. Interrupt Selection. Multiport Serial Cards. AST Four Port Card. Lynx And Quad Cards. 2 3 4 5 5 5 6 7 8 9 9 Handshake Selection. RS232 Handshake Lines. RS422 Handshaking RS485 Handshake Lines. 10 11 13 14 Chapter 2. NewCOM.
Serial Solution Chapter 2 List Of Figures. Figure 2-1. NewCOM Command Summary. Figure 2-2. Interrupt Allocation. Reference 19 27 Chapter 3. Using NewMode Introduction. 36 Command Format. Help. Parameter Setting. Examples. NewMode Differences From DOS ’mode com’. Query. Examples. 36 36 37 38 38 39 39 Using NewMODE Without NewBIOS. Help. Parameter Setting Query 40 40 40 40 Chapter 4. Using NewBIOS. Introduction. The ROM BIOS. Overview Of Asynchronous Services. Installing NewBIOS.
Serial Solution Reference Borland Turbo Pascal. Example 1, Initialising A Port. Example 2, Sending Data Out. Example 3, Setting Port Addresses. 53 54 54 55 QuickBASIC V4.5 & Visual Basic Dos. Example 1, Initialising A Port. Example 2, Sending Data Out. Example 3, Setting Port Addresses. 56 57 57 58 GWBASIC/BASICA. BIOS Interface Setup Routine. Example 1, Initialising A Port. Example 2, Sending Data Out. Example 3, Setting Port Addresses. 59 59 60 62 62 Microsoft FORTRAN77.
Serial Solution Reference Service B1H, Get/Set Software Handshake. Service B2H, Get/Set Card type. Service B3H, Get/Control buffers. Service B4H, Get Serial Solution Capability 97 99 103 107 Chapter 5 List Of Figures. Figure 5-1. NewBIOS Functions Summary. Figure 5-2. Interrupt Allocation. 71 93 Chapter 6. Terminal Emulators. Introduction. Using Terminal Programs. Setting up. Running Terminal Programs. Commands. Example. Using Translations. 108 109 109 109 110 113 113 Chapter 7. CTerm Introduction.
Serial Solution Reference Chapter 8. Aterm Introduction. Running ATERM. Translations. The ATERM Serial Connection. Quick Summary. Reading From The File. Writing To The File. Closing The File. Serial Port Parameters. Fitting The Parts Together. 128 128 129 129 129 132 134 135 136 137 Chapter 8 List Of Figures. Figure 8-1. Subroutine Open-com. Figure 8-2. Subroutine Uncook. Figure 8-3. Subroutine Inpstr. Figure 8-4. Subroutine Outstr. Figure 8-5. Subroutine Close_com. Figure 8-6. Subroutine Bios_x_init.
Serial Solution Figure 9-5. Function BIOS_X_Init. Figure 9-6. Pasterm Main Program. Figure 9-7. Screen Output Examples. Reference 147 149 150 Chapter 10. BASterm Introduction. Running BASterm. The BASterm Serial Connection. Quick Summary. Reading From The File. Writing To The File. Closing The File. Serial Port Parameters. Fitting The Parts Together. 152 152 154 154 155 157 157 158 159 Chapter 10 List Of Figures. Figure 10-1. Open Subroutine. Figure 10-2. Input Subroutine. Figure 10-3.
Serial Solution Chapter 11 List Of Figures. Figure 11-1. Procedure open_com. Figure 11-2. Function inpstr. Figure 11-3. Subroutine outstr. Figure 11-4. Closing The File. Figure 11-5. Function BIOS_X_init. Figure 11-6. Forterm Main Program. Figure 11-7. Screen Output Examples.
What To Do First Serial Solutions Chapter 1 What To Do First. ____________ Introduction. This chapter explains how to get Serial Solutions up and running as quickly as possible. It starts by showing how install the software to use the standard COM1 and COM2 serial ports, then the configuration is adjusted to allow access to COM3 and COM4.
Serial Solutions What To Do First Up And Running Within Ten Minutes. _________________________________ This section is intended to get up up and running with Serial Solutions within ten minutes. A more detailed explanation of the component parts of the Serial Solution system follows in later chapters. Since this paragraph is a quick installation, details for COM3 onwards are not being set, so only COM1 and COM2 can be used for the moment. Outline 1) Copy NewCOM.SYS from Disk 1 to the hard disk.
What To Do First Serial Solutions serial device connected to the COM2 port. NEWMODE COM2:9600,N,8,1 or NEWMODE COM2:1200,E,7,1 etc. 7) Run the Easyc program using COM2. EASYC COM2 Any data type at the keyboard will be sent to the device attached to the serial port. Incoming data from the serial port is displayed on screen. Within the EASY programs the following keys can be used. F8 prints the COMDEBUG information on screen F9 clears the screen F10 exits back to the DOS prompt.
Serial Solutions What To Do First serial port will have its own unique interrupt line. or b) Interrupt On Multiport Cards with Interrupt Sharing. The interrupt sharing system used if the port is on a multiport card that is using a shared interrupt mechanism. Cards with a shared interrupt line typically have a special register that informs the PC which of its several ports need servicing. These parameters are passed to NEWCOM.SYS, the Serial Solutions device driver, by command line arguments in the CONFIG.
What To Do First Serial Solutions Once the PC has been booted with the COM3 parameters in the CONFIG.SYS file we could now use NEWMODE.EXE and EASYC.EXE with this port. NEWMODE COM3:9600,N,8,1 EASYC COM3 Setting Up For COM4. ___________________ _ In the same way we could add the configuration for a COM4 port using interrupt line IRQ11. The CONFIG.SYS entry becomes:device=c:\newcom.sys /A3,3E8 /I3,10 /H3,4 /A4,2E8 /I4,11 /H4,4 COM1-4 Defaults.
Serial Solutions What To Do First known to the Serial Solutions device driver. The i/o address, interrupt and handshake used must be specified in the CONFIG.SYS file on the NEWCOM.SYS entry line. Address Selection. ________________ Each serial port has its address set by jumpers or dip switches on the interface card and occupies 8 i/o consecutive addresses. As explained in the previous section, com ports COM1- COM4 are at standard addresses and so do not need to be explicitly passed to Serial Solutions.
What To Do First Serial Solutions Interrupt Selection. _________________ For reliable serial communication each serial port needs its own interrupt line. In many ways the interrupt is like the bell on a telephone. When someone is trying to make a call to us our telephone rings. The bell ringing allows us to stop what we are doing temporarily, pick up the phone and deal with the person calling us. After we put the phone down we can carry on where we previously left off.
Serial Solutions What To Do First Interrupt lines for COM3 onwards must be passed to the NEWCOM.SYS driver by the /In,i parameter. Where n specifies the COM port, n may only be a single port NOT a range of ports. And i is the interrupt line, in the range 2 to 15, used by the port. If i is -1 then this port does not use interrupts.
What To Do First Serial Solutions AST Four Port Card. __________________ _ The AST Cluster card pioneered a method where a shared interrupt register holds a status bit for each four serial ports. A global status bit is set if any of the four ports have an interrupt pending. This card become popular in the early days of the PC but its inherent non expandability to more than four ports has since caused it to fall into great decline.
Serial Solutions What To Do First The presence of multiple cards using this Lynx card type sharing mechanism, as used on the Quad RS232 and the Lynx 8 port RS232, as well as the more limited Digiboard cards, is passed to Serial Solutions using the /L parameter on the NEWCOM.SYS line in the CONFIG.SYS file.
What To Do First Serial Solutions light permits the flow of traffic. Thus a serial port can turn its output signals on or off to indicate to the external device whether data can be received or not. It can use its input signals to sense if the external device is ready to receive more data. If traffic lights are ignored then crashes will occur. If handshake lines are ignored data will be sent at the wrong time.
Serial Solutions RS232 signal lines. TXD, Transmitted data an output from PC RXD, Received data an input to PC RTS, Request To Send an output from PC CTS, Clear To Send an input to PC DSR, Data Set Ready an input to PC DCD, Data Carrier Detect an input to PC DTR, Data Terminal Ready an output from PC RI, Ring Indicator an input to PC. What To Do First Data line. Data line. Handshake line. Handshake line. Used by Modems. In some RS232 systems the handshake lines are not used or are simply ignored.
What To Do First Serial Solutions A common RS232 handshake is the DTR /CTS handshake. Here the traffic light signal is passed out of the PC to the external device on its DTR wire. The traffic light signal from the external device is brought in on the PC’s CTS wire. The PC will only transmit, ie send, data when the CTS input is green, ie logically true. The PC will stop transmitting data when the CTS input is red, ie logically false.
Serial Solutions What To Do First RS422 ports only have a transmitted data line pair, a received data line pair, request to send output line pair and clear to send input line pair. Therefore the usual RS422 handshake is the RTS /CTS handshake. Here the traffic light signal is passed out of the PC to the external device on its RTS wire. The traffic light signal from the external device is brought in on the PC’s CTS wire.
What To Do First Serial Solutions differential data transmission system. Over distances up to 40 feet the maximum data rate is 10 Megabits per second, and for distances up to 4000 feet the maximum data rate is 100 Kilobytes per second, allowing communication much further and faster than RS232. RS485 allows up to 32 transmitter receiver pairs to be present on the line at one time.
Serial Solutions What To Do First type 3. The RS485 transmit only handshake is passed to the NEWCOM.SYS driver by the /Hr,3 parameter. Where r is the COM port number, r may be a single port or a range of ports. For example:/H1,3 sets up 485 transmit only handshaking for COM1. /H12,3 sets up 485 transmit only handshake for COM12. /H7-16,3 sets 485 transmit only handshake for COM7 to COM16. RS485: Party Line Half Duplex. One cable.
What To Do First Serial Solutions transmits data when the master commands it to do so. The RS485 full duplex handshake, from a software point of view, is identical to the 3 wire no handshaking option and so is passed to the NEWCOM.SYS driver by the /Hr,4 parameter. Where r is the COM port number, r may be a single port or a range of ports. For example:/H1,4 sets up no handshaking (485 full duplex) for COM1. /H12,4 sets up no handshaking (485 full duplex) for COM12.
Serial Solutions Newcom Parameters Chapter 2 NewCOM.SYS Config.sys Line Parameters. ____________ Introduction. This chapter explains the command line parameters used in the CONFIG.SYS file to configure the Serial Solutions device driver NewCOM.sys. The key to a successful installation is to get the parameter switches right. Driver Commands. ________________ _ To install NewCOM a line of the following form must be placed in the machine’s CONFIG.SYS file: device=newcom.sys[/][/].....
Newcom Parameters Serial Solutions into the following types, note the port range is of particular interest. The maximum number of serial ports supported by the driver is known as maxport. Different version of the driver support different numbers of ports. NewCOM.sys supports 16 serial ports so maxport is 16, when NewCOM.sys is being used. NewCOM24.sys supports 24 serial ports so maxport is 24, when NewCOM24.sys is being used. NewCOM32.sys supports 32 serial ports so maxport is 32, when NewCOM32.
Serial Solutions Newcom Parameters Handshake switch). /H5,4 Serial port COM5 only uses handshake type 4. /H5-7,4 Serial ports COM5, COM6 and COM7 all use handshake type 4. /H5-,4 Serial ports COM5, 6, 7 all the way to maxport -the maximum supported by the driver, eg COM16 use handshake type 4. /H-5,4 Serial ports COM1, COM2, COM3, COM4 and COM5 all use handshake type 4. [, range] A list of one or more ranges of ports.
Newcom Parameters Serial Solutions /A5,1B0h Serial port COM5 at address 01b0 hex. A decimal number in the range 2-32768, rounded down to the nearest power of 2. Used to set the size of the interrupt driven i/o buffer. Decimal number in the range 1 - maxport. Used to specify the number of buffers to allocate. Each interrupt driven port needs its own buffer so this also sets the maximum number of ports that can be used in interrupt mode. Driver Defaults.
Serial Solutions Newcom Parameters Software Handshake. XON/XOFF handshaking is disabled, XON is 17, XOFF is 19, should software handshaking be turned on. Buffer Size. Buffers are 256 bytes long. Buffer Number. The maximum number of pairs of buffers is 6 (that is up to six ports can use interrupt driven buffered i/o). Baud rate etc. All ports recognised by the ROM BIOS are reset to 2400 Baud, no parity, 8 data bits and one stop bit when the machine is powered up.
Newcom Parameters Serial Solutions I/O Address. Switch: /A range,hexaddr Purpose: Set the I/O address of serial port COMn. ’range’ ’range’ must be given. Range specifies the COM ports, range may be a SINGLE port OR a RANGE of ports. ’hexaddr’ is the address of the port, it must be in hexadecimal, suffixed with an optional ’h’ or ’H’. Single port examples:- (old method:- still works) /A5,1A0 COM5 is at 01A0 hex. /A5,1A0H COM5 is at 01A0 hex. /A12,200 COM12 is at 0200hex.
Serial Solutions Newcom Parameters Number Buffers. Switch: /B buffs Purpose: Set number of pairs of buffers to be allocated. buffs is a decimal number in the range 1-maxport and is the number of buffers to allocate. Each interrupt driven port needs its own buffer so this also sets the maximum number of ports that can be used in interrupt mode. Always ensure that there is one for each port in use. NewCOM reserves space for the buffers from main memory when the machine is booted.
Newcom Parameters Serial Solutions Hardware Handshake. Switch: /H [range],[hs] Purpose: Select which hardware handshake type to use on the specified ports. Hardware handshake is flow control of data determined by the state of various lines in the port connector. See chapter "What To Do First", section "Handshake Selection" for more information. ’range’ specifies the COM port. Range may be a SINGLE port OR a RANGE of ports. If range is not specified the handshake is applied to all serial ports.
Serial Solutions Type 3 Type 4 Newcom Parameters serial device needs a true signal. RS485 Send only. This is a half duplex, transmit only handshake. The PC transmits whenever it wishes, it cannot receive any data. The CTS, DSR and DCD inputs are ignored. The RTS output line is set true just in case the external serial device needs a true signal. 3 Wire Handshake. Really no handshake at all since the PC transmits irrespective of the handshake lines.
Newcom Parameters Serial Solutions Hardware Interrupt. Switch: /I port, irq Purpose: Set interrupt line is use with the COM port. With the exception of specially designed shared interrupt cards like the Lynx & Quad RS232 cards, for reliable communications each port needs its own interrupt line. ’port’ a decimal number in the range 1 to maxport specifying a COM port. eg 1 means COM1 10 means COM10. If port is not specified the interrupt line is applied to all ports.
Serial Solutions Newcom Parameters A serial port must be assigned an interrupt line before it can be used. On ISA bus PC compatibles machines and EISA bus machines only one serial port can use an interrupt line. On PS/2 machines serial ports can share interrupts. Multiport cards with special interrupt hardware have different rules- see the /L command switch (also /F) for setting up those cards.
Newcom Parameters Serial Solutions Lynx 8 Port and Quad RS232 cards. Switch: /L hexaddr, irq, range [, range] [, range] The shorthand allowed in using port ranges with the Lynx command, as well as the port Address and Handshake commands, allow a multiport system to be setup by only a few short entries in the NewCOM.SYS line in the CONFIG.SYS file. The older notation, without ranges, where every port is explicitly defined can still be used but is more cumbersome.
Serial Solutions Newcom Parameters Note: Ports on a Lynx or Quad port card that are using interrupt sharing MUST be configured with the /L command line switch rather than the /I switch. Ports on a Lynx or Quad card that are not using the shared interrupt but have their own separate interrupt must be configured with the /I command switch. ’p1’, ’p2, etc. Older notation. p1 etc are the COM port allocated to each serial port on the Lynx card.
Newcom Parameters Serial Solutions Lynx port#6 is mapped as COM7 Lynx port#7 is mapped as COM8 Lynx port#8 is mapped as COM9 If more than one Lynx card is installed in the machine then these can be linked together as shown in the cards’ installation manual, in which case they would share the SISR, shared interrupt status register and interrupt line of the first card. Install this combination as a single card, with one /L switch. Older notation example /L 03A0,3,2,3,4,5,6,7,8,9,10,11,12,13 ’12’ port card.
Serial Solutions Newcom Parameters Omit Port From Serial Solution Control. Switch: /O range Purpose: Prevents Serial Solutions from managing that port. If you wish a mouse driver or the default DOS handlers to control a serial port then remove that port from serial solutions control. ’range’ ’range’ must be given. Range specifies the COM ports, range may be a SINGLE port OR a RANGE of ports. Single port examples:- (old method:- still works) /O1 COM1 not under Serial Solutions control.
Newcom Parameters Serial Solutions Buffer Size. Switch: /S memsize Purpose: Set size of all buffers in bytes, memsize is rounded to the nearest power of 2, and must be a decimal number in the range 32 to 32768. For any serial port opened two buffers of size memsize are allocated, one for input and the other for output.
Serial Solutions Newcom Parameters Xon-Xoff Handshaking. Switch: /X [range] [,xon,xoff] Purpose: Set port COMn to XON/XOFF handshaking. In this mode the hardware handshake lines are ignored and the characters XON and XOFF are used to control the flow of characters on the serial line. ’range’ specifies the COM port. Range may be a SINGLE port OR a RANGE of ports. If range is not specified the XON/XOFF handshake is applied to all serial ports.
Newcom Parameters Serial Solutions XON/XOFF Handshake. _____________________ _ In the XON/XOFF handshake two characters are assigned a special meaning by the serial port. One, called XON, is sent by a device to signal that it is ready to receive data. The second, called XOFF, is sent when the device can no longer receive data. NewCOM therefore traps XON and XOFF characters as they arrive and uses them to switch on and off the output of characters. The user will not detect these characters.
Serial Solutions Using NewMode Chapter 3 Using NewMODE. ____________ Introduction. NewMODE is a replacement for the DOS ’mode com...’ command which supports some of the extra features available under NewBIOS and NewCOM. It enables the user to set the baud rate parity, word length and number of stop bits of a serial port, and a query mode allows the user to find the settings of one or all ports. The i/o address and interrupt line can also be set with the newmode command. Command Format.
Using NewMODE Serial Solutions Parameter Setting._ ________________ This mode nearly mimics the DOS ’mode com’ command, and allows the user to set the parameters (for example baud rate, parity) of a port. The command takes several parameters, firstly the port, then a group of parameters defining the baud rate, parity, number of data bits (word length) and the number of stop bits (these separated by commas), then an optional i/o address and an irq line number separated by spaces.
Serial Solutions Using NewMode
Backwards compatibility only is a hexadecimal I/O address in the range 0 to FFFF eg 03f8 for COM1, 02f8 for COM2, 02e8 for COM3 Note: Do not set the i/o address this way. Use /A on the device= NewCOM.SYS line in CONFIG.SYS file. Backwards compatibility only 2...15 or -1 is the interrupt line to use. Note: Do not set the irq this way. For standard serial ports use /I command on the device= NewCOM.SYS line in CONFIG.Using NewMODE 2) 3) 4) 5) Serial Solutions example ’COM296,e,7,,’ is legal for DOS mode, but not for NewMODE. DOS does not support above COM4. Newmode also supports COM17 to COM32 when NewCOM32.SYS is used, while DOS does not. DOS mode does not give a default Baud rate, where newmode does. Newmode does not support the ’P’ option that DOS mode offers if the port is to be connected to a printer and assigned to LPT. ______ Query. This reports the current state of one or all of the serial ports.
Serial Solutions Using NewMode NEWMODE COM8 0 NEWMODE COM9 0 NEWMODE COM10 0 NEWMODE COM11 0 NEWMODE COM12 0 NEWMODE COM13 0 NEWMODE COM14 0 NEWMODE COM15 0 NEWMODE COM16 0 c>newmode ? >oldmodes.bat creates a disk file called ’OLDMODES.BAT’ and sends the report in the example above to it. If the command oldmodes is given:c>oldmodes will set COM1 to COM4 as set above. The exact content of these reports of course will depend on how your system is set up and how many serial ports are installed.
Using NewBIOS Serial Solutions Chapter 4 Using NewBIOS. ____________ Introduction. NewBIOS is an INT14 upgrade that is installed automatically by the device driver NewCOM.SYS, NewBIOS provides extra function calls designed to make serial i/o easier. Since a few users may wish to NewBIOS as a stand alone program and the NewBIOS.com program is provided on the Serial Solution disks. The NewBIOS.com program ONLY needs loading if you have chosen not to load NEWCOM.SYS in the CONFIG.SYS at boot time.
Serial Solutions Using NewBIOS services is referred instead to our routines. To sum up, if the user loads NewCOM or runs NewBIOS the ROM serial communications routines are replaced by the routines of NewBIOS. These allow up to 16 serial ports to be used and add several extra functions. Overview Of Asynchronous Services. ________________________________ NewBIOS mimics all the services provided by the ROM BIOS of the PC and the extra facilities of the PS/2 ROM BIOS.
Using NewBIOS Serial Solutions RS232 handshake output lines, and to to set them via subservice 1. NewBIOS adds seven completely new services. These are. Service ADH, Set port address. Serial chips at the standard addresses defined by IBM for COM1 and COM2 are automatically recognised by the ROM BIOS (and hence NewBIOS) when the machine is powered on or reset, but NewBIOS must be told of the existence of chips at other addresses. This service returns the address previously attributed to the port.
Serial Solutions Using NewBIOS NewBIOS. Service B1H, Get/Set Software Handshake. This service exists to support NewCOM, which can use software handshakes. A software handshake uses special characters, conventionally called XON and XOFF, to control the flow of data. This is to be compared with a hardware handshake, where control lines fulfil the same purpose.
Using NewBIOS Serial Solutions most users NewBIOS is loaded automatically when the NewCOM.sys device driver is loaded in the CONFIG.SYS file. This allows DOS, and hence applications, easy access to COM3 through to COM16. To do this the following line must be included in the machine’s config.sys file: device=newcom.sys When the machine is powered on or reset DOS examines the file called config.sys and installs the named file as a device driver.
Serial Solutions Using NewBIOS processor executes an ’INT n’ instruction. The number ’n’, in the range 0 to 255, defines which interrupt routine to use. The addresses of the 256 interrupt routines are stored in a table in the PC’s memory which the processor reads to find the correct program to run on an interrupt. So the instruction ’INT n’ causes the processor to read the nth address and then run the routine stored there.
Using NewBIOS Serial Solutions The main registers used to control the asynchronous services are: AH The AH register is set to the number of the asynchronous service required. DX The number of the port to use. 0 means COM1, 1 means COM2 etc. AL, BX, CX Other control information, depending on the service. Returns from the services depend on the particular service. For example for services 0H to 5H: AH Line status, details of receiver errors, whether bytes are ready to be sent/received.
Serial Solutions mov al,09AH Using NewBIOS ;09AH indicates the above parameters. ;later chapters contain details of which mov dx,0 INT 14H ; ;done ;values select which baud rates. ;dx selects the port 0= COM1 ;Call asynchronous services. Before the INT 14H is executed the registers that send data to the service are set. Let us try a more elaborate example, one where the value returned by the service is relevant. Example 2, Sending Data Out.
Using NewBIOS Serial Solutions Example 3, Setting Port Addresses. ______________________________ Service ADH sets the address of a port. Suppose that a second dual serial card has been added to the the machine giving COM3 and COM4. The BIOS must be told of its existence. ;Code fragment to set the addresses ;of COM3 and COM4. ; mov ah, 0ADH ;Set port address mov dx, 2 ;COM3 mov bx,com3addr ;address in i/o map of ;chip for COM3 INT 14H ;asynchronous services.
Serial Solutions unsigned unsigned unsigned unsigned unsigned unsigned unsigned }; Using NewBIOS int int int int int int int struct BYTEREGS { unsigned char unsigned char unsigned char unsigned char }; ax; bx; cx; dx; si; di; cflag; al, bl, cl, dl, ah; bh; ch; dh; union REGS { struct WORDREGS x; struct BYTEREGS h; }; Note how the union of WORDREGS and BYTEREGS reflects the actual organisation of the 8086 register set.
Using NewBIOS inregs.h.al = 0x9A; inregs.x.dx = 0x0; int86(0x14, &inregs, &outregs); Serial Solutions /* Parameters as above. */ /* COM1. */ /* Async services. */ /* Note:- that the return value and the value assigned to outregs are not used. */ /* Note:- also the address operator ’&’ used with inregs and outregs. */ The file BIOS.H includes a set of manifest constants for use with the standard asynchronous services. Using them makes the use of int86() slightly easier, so the above code would be: inregs.
Serial Solutions Using NewBIOS Example 2, Sending Data Out. __________________________ Service 1H is used to send char nextchar to COM2. This example examines the status returned by the service to check that the byte was sent correctly. /* C code fragment to send a character to COM2. */ #include union REGS inregs, outregs; char nextchar; inregs.h.ah = _COM_SEND; inregs.h.al = nextchar; inregs.x.dx = 0x1; /* Defines REGS and int86() */ /* Declare variables. */ /* Service 1, send character.
Using NewBIOS union REGS inregs, outregs; unsigned com3addr, com4addr; inregs.h.ah = 0xAD; inregs.x.dx = 0x2; inregs.x.bx = com3addr; int86(0x14, &inregs, &outregs); Serial Solutions /* Declare variables. */ /* Service ADH, set address. */ /* COM3. */ /* address of com3. */ /* Async services. */ if( outregs.h.ah != 0x52AD ) /* Check that send successful. */ { printf("NewBIOS not installed!\n"); exit(1); }; inregs.x.dx = 0x3; inregs.x.bx = com4addr; /* COM 4. */ /* address of COM4.
Serial Solutions Using NewBIOS The reader may wish to read the earlier section of this chapter, ’accessing asynchronous services’ which discusses the machine interrupts. Example 1, Initialising A Port. __________________________ This example uses service 0H to initialise COM1. A later chapter, "NewBIOS Reference", contains details of this and all asynchronous services. The values that the service requires are loaded into Ioregs, and Intr is performed.
Using NewBIOS DX := $1; Serial Solutions {COM2} Intr($14, Ioregs); {Asynchronous services} IF ( AH AND $80 ) <> 0 {Check that send ok} THEN Writeln(’COM2 timed out on output.’); END; END. Example 3, Setting Port Addresses. ______________________________ I/O addresses for COM3 and COM4 are set using service ADH. This is a service available only to NewBIOS. The program also checks for the presence of NewBIOS.
Serial Solutions Using NewBIOS END. QuickBASIC V4.5 & Visual Basic Dos. _________________________________ _ QuickBASIC, and its highly compatible successor Visual Basic for Dos, are powerful structured languages which has managed to retain the easy program development of an interpreted BASIC. It can easily access the machine’s BIOS. QuickBASIC provides the ’Call Interrupt’ subroutine to access the machine interrupt routines.
Using NewBIOS Serial Solutions Example 1, initialising a port. _________________________ _ This example uses service 0H to set the Baud rate etc. for COM1. A later chapter, "NewBIOS Reference", contains details of this and all other asynchronous services. ’QuickBASIC code fragment to set COM1 to 1200 Baud, ’even parity, seven data bits and 1 stop bit DEFINT A-Z ’All parameters integers REM $INCLUDE: ’QB.BI’ DIM inregs AS RegType, outregs AS RegType inregs.ax = &H9A inregs.
Serial Solutions Using NewBIOS al = outregs.ax AND 255 ah = ASC(RIGHT$(MKI$(outregs.ax), 1)) ’Get at AL ’Get at AH IF ah AND &H80 THEN PRINT "COM2 timed out on output" END END IF The function CVI is used to convert the individual byte values into word values, and MKI$ is used to get at byte values returned in words.
Using NewBIOS Serial Solutions ’Async services END ___________________ GW-BASIC/BASICA. BASICA or GW-BASIC is a straightforward language which offers simple convenient program development and which carries a good number of powerful features. Although it is supplied with all IBM machines and clones BASIC does not include among those features a method of accessing the machine’s BIOS.
Serial Solutions 5100 5110 5120 5130 5140 5150 5160 5170 5180 5190 5200 5210 5215 5220 5230 5240 5250 5260 5270 5280 5290 5300 5310 5320 5330 5340 5350 5360 5370 5380 5390 5400 5410 5420 Using NewBIOS ASM%(I) = VAL("&H" + T$ + S$) TOT# = TOT# + ASM%(I) NEXT I : IF TOT# = -144845! THEN 5190 PRINT "Bad machine code data, terminating." PRINT "Check data statements at line 5230-" END : RETURN : ’8086 machine code.
Using NewBIOS 1020 1030 1040 1050 1060 1080 1090 1100 1110 1115 1120 1130 1140 1150 1160 : DEFINT A-Z : GOSUB 5000 : AX = &H9A Serial Solutions ’Parameters are Integers ’Set up machine code ’Service 0, initialise ’Parameters as above ’COM1 ’These variables must exist ’before call even if not used DX = &H0 BX = 0 CX = 0 DEF SEG ADDR = VARPTR(ASM%(0)) CALL ADDR(AX,BX,CX,DX) : END ’Call interrupt The build-up to the call in lines 1080 to 1130 is important.
Serial Solutions 2115 2120 2130 2140 2150 2160 2170 2180 2190 2200 2210 Using NewBIOS CX = 0 DEF SEG ADDR = VARPTR(ASM%(0)) CALL ADDR(AX,BX,CX,DX) ’Call interrupt : AL = AX AND 255 ’Get at byte registers AH = ASC(RIGHT$(MKI$(AX),1)) : IF AH AND &H80 THEN PRINT "COM2 timed out on output":END : END Note the use of the functions CVI and MKI$ to build byte values into words and decompose word values into bytes.
Using NewBIOS 3420 3440 3450 3460 3470 : ADDR = VARPTR(ASM%(0)) CALL ADDR(AX,BX,CX,DX) : END Serial Solutions ’Second call Microsoft FORTRAN77. _____________________ _ FORTRAN 77, was the very first high-level language and, much enhanced, is still a mainstay of much computing. Microsoft FORTRAN77 for IBM PCs unfortunately provides no services to access the machine BIOS. However it is not to difficult to interface any FORTRAN program to subroutines written in languages which do support the BIOS.
Serial Solutions Using NewBIOS INT Intno. On return the values in the 8086 registers are copied back into ’regs’. This means that the assembly language examples above are very easy to translate into FORTRAN77. The reader may wish to read the section earlier in this chapter called ’accessing asynchronous services’, which discusses the machine interrupts. The user program must be linked with the file ’intrpt.obj’ , as link myprog intrpt; or fl myprog.
Using NewBIOS Serial Solutions Example 2, Sending Data Out. __________________________ In this example service 1H is used to send character nextch to COM2. The example examines the values returned by the service to check that the character has been sent correctly. record /regtype/ registers character nextch /’a’/ C Example 2, Send nextch to COM1 C service 1, send character registers.ah = 16#1 character to send registers.al = ichar(nextch) COM2 registers.
Serial Solutions Using NewBIOS stop end if C Go again for registers.ah registers.bx registers.dx COM4 = 16#AD = com4addr = 3 call intrpt (16#14, registers ) NewBIOS Default Settings. _______________________ _ When NewBIOS is installed the addresses and IRQ lines associated with each port are as shown in below. Figure 4-1 NewBIOS Defaults.
Using NewBIOS 2) 3) 4) Serial Solutions A zero value indicates that no serial chip is known to be present for that COM port. COM1 to COM8 are assumed to have the IRQ line defined by IBM for those ports. An IRQ line of -1 (or 255 since these are stored as byte values), indicates that no IRQ line has been allocated to the port. IBM’s technical references for PS/2 machines includes a list of preferred addresses and IRQ lines for COM1 to COM8.
Serial Solutions Using NewBIOS (this page intentionally blank) Page 68 Chapter 4
NewBIOS Reference Serial Solutions Chapter 5 NewBIOS Reference. ____________ Introduction. This Chapter lists all the services provided by NewBIOS in order of service number. For each service the following are noted: its compatibility with the ROM BIOS, parameters, return values, meaning and other points. Where a service differs from an IBM equivalent the Serial Solutions version is described, and the differences to the IBM version noted.
Serial Solutions NewBIOS Reference DX Register Value. The DX register is used to specify which serial port is being used. If DX=0 then COM1 is being used, if DX=3 then COM4 is being used. The maximum value allowed for DX depends on which version of NewCOM.SYS has been loaded in the CONFIG.SYS file. The versions of NewCOM.SYS have been supplied on the disks:NewCOM.SYS supports up to COM16, max DX value = 15. NewCOM24.SYS supports up to COM24, max DX value = 23. NewCOM32.
NewBIOS Reference Serial Solutions Figure 5-1. NewBIOS Functions Summary. _____________________________________ _______ Service. 0H 1H 2H 3H 4H 5H Built ____________________ In BIOS Function._ Initialise communications port. Send character. Receive character. Read status. Extended initialise. Extended communications port control. _______ Service. ADH AEH AFH B0H B1H B2H B3H B4H NewBIOS __________________________________________ Function Provided by Serial Solutions. _ Set port address.
Serial Solutions NewBIOS Reference Service 3H, read status. The state of the RS232 handshake input lines and the status of the serial chip (including things like reception errors, chip ready to send data) are returned. The other standard services return some or all of this information anyway. Service 4H, extended initialise.
NewBIOS Reference Serial Solutions Service AFH, Get/Set IRQ line. This service exists to support NewCOM, which can use interrupts for more convenient and efficient serial input/output. Subservice 0 returns the IRQ line which a particular com port is assumed to be using, and subservice 1 sets this. Ports COM1 to COM8 are given default values (which may need to be altered), but ports COM9 onwards must be explicitly set before NewCOM can use them in interrupt mode. Service B0H, Get/Set Hardware Handshake.
Serial Solutions NewBIOS Reference Service B2H, Get/Set Card Type. This service exists to support NewCOM, which can use non-standard serial cards. The inherent limitation of the serial ports on a standard IBM PC or clone is the number of ports that can use buffered i/o. Many cards are therefore manufactured which circumvent this limitation.
NewBIOS Reference Serial Solutions __________________ Service 0H, Initialise. _ _____________ Compatibility. This Service is fully compatible with the PC ROM BIOS. ___________ Parameters.
Serial Solutions NewBIOS Reference Return Values.
NewBIOS Reference Serial Solutions Other Points. ___________ _ IBM documentation does not mention the 5- and 6-bit word length settings on the 16450, but these are faithfully written to the 16450 by this service, in both its IBM and Serial Solutions form, as above. IBM documentation treats the return values of services 0H to 5H as the same, listing values which are an amalgam of the correct ones for various services. This listing is more faithful to the IBM routines and the Serial Solutions routines.
Serial Solutions NewBIOS Reference ________________________ Service 1H, Send Character. _ _____________ Compatibility. This Service is fully compatible with the PC ROM BIOS. ___________ Parameters. AH = 1H Denotes service 1H AL = byte Character to send DX = 0...31 Port number, 0=COM1...31=COM32 Return Values. _____________ AH bit 7 is = bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 = = = = = = = 16450 Line status or time-out, where Time-out.
NewBIOS Reference Serial Solutions The time-out period, after which a time-out error is returned, is fixed by a software loop. This time period will therefore vary from machine to machine. For example in the original 4.77MHz 8088 PC it is about 1.3 seconds, and on a 20MHz 80286 AT it is about 0.43 seconds. Other Points.
Serial Solutions NewBIOS Reference __________________________ Service 2H, Receive Character. _ _____________ Compatibility. This Service is fully compatible with the PC ROM BIOS. ___________ Parameters. AH = 2H Denotes service 2H DX = 0...31 Port number 0=COM1...31=COM32 Return Values. _____________ AH is bit 7 = bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 = = = = = = = 16450 Line status or time_out, where Time-out.
NewBIOS Reference Serial Solutions The same timing loop is used as for service 1H. RTS and DTR are left asserted, and as a side effect loop, out1 and out2 (the other bits in the modem control register) are left reset. This is important because IBM-style serial cards (ie almost all) use out2 to gate interrupts off and on. Resetting out2 prevents interrupts from the 16450 reaching the host processor bus.
Serial Solutions NewBIOS Reference _____________________ Service 3H, Read Status. _ _____________ Compatibility. This Service is fully compatible with the PC ROM BIOS. ___________ Parameters. AH = 03H Denotes service 3H DX = 0...31 Port number, 0=COM1...31=COM32 Return Values.
NewBIOS Reference Serial Solutions Service 3H simply reads the line status and modem status registers of the 16450. Other Points. ___________ _ This service may prove useful to save a program from waiting for the send or receive service to time-out. The user can check the handshake and the receive/transmit buffers using service 3H- if the port is not ready the user program can do something useful while it waits for the port to get ready.
Serial Solutions NewBIOS Reference ___________________________ Service 4H, Extended Initialise. _____________ Compatibility. This service was first used in the ROM BIOS of IBM PS/2 machines and is supported by most modern PCs. The NewBIOS version is fully compatible with the version documented in the PS/2 BIOS technical reference, but allows a wider range of baud rates. ___________ Parameters.
NewBIOS Reference DX Serial Solutions = = = = = = = = = 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 600 Baud 1,200 Baud 2,400 Baud 4,800 Baud 9,600 Baud 19,200 Baud 38,400 Baud (NewBIOS only) 57,600 Baud (NewBIOS only) 115,200 Baud (NewBIOS only) = 0...31 Port number, 0=COM1...31=COM32 Return Values.
Serial Solutions NewBIOS Reference _________ Meaning. Service 4H is an extended initialise, providing more functions than its sibling, service 0H. It is also easier to use since it is not necessary for the programmer to build the complex parameter byte written to the 16450, the service builds it. The baud rate parameter in CL is used to index a table of divisors, one of which is written to the 16450 baud rate divisor latch.
NewBIOS Reference Serial Solutions __________________________ Service 5H, Extended Control. _ _____________ Compatibility. This service was first used in the ROM BIOS of IBM PS/2 machines and is supported by most modern PCs. The NewBIOS version is fully compatible with the version documented in the PS/2 BIOS technical reference. ___________ Parameters. AH = 05H Denotes service 5H DX = 0...31 Port number, 0=COM1...
Serial Solutions NewBIOS Reference bit 6 bit 5 bit 4 bit 3 = = = = bit 2 bit 1 bit 0 = = = RI, Ring Indicator DSR, Data Set Ready CTS, Clear To Send Delta DCD, set true if bit 7 has changed since last read Delta RI " " " " 6 " " " " " Delta DSR " " " " 5 " " " " " Delta CTS " " " " 4 " " " " " These return values for AL, AH are the same as for services 0H, 3H and 4H (they are generated by the same piece of code). BL is Modem control register, as above. _________ Meaning.
NewBIOS Reference Serial Solutions interrupt signal from the 16450 to reach the system bus and interrupt the host microprocessor. When the out2 bit is false the interrupt line is disconnected from the system bus. To maintain full PC compatibility all serial cards perform this gating function on out2, and newer serial chips such as the 16552 include within themselves the logic to do this, so that out2 does not appear outside the chip.
Serial Solutions NewBIOS Reference ___________________________ Service ADH, Set Port Address. _ _____________ Compatibility. NewBIOS service only, ignored by PC ROM BIOS. ___________ Parameters. AH = ADH Denotes service ADH DX = 0...31 Port Number 0=COM1...31=COM32 BX = Port address Return Values. _____________ AX = 52ADH Flag for presence of NewBIOS BX = Old port address _________ Meaning. Service ADH informs NewBIOS of the I/O addresses of the ports installed in the machine.
NewBIOS Reference Serial Solutions up when the machine is used, and minimises the (ugly) risk of beginning to use a port and then altering it’s address. The reader who is not well acquainted with the architecture of the 8086 series processors may be a little confused by references to I/O addresses.
Serial Solutions NewBIOS Reference ____________________________ Service AEH, Get Number Ports. _ _____________ Compatibility. NewBIOS service only, ignored by PC ROM BIOS. ___________ Parameters. AH = AEH Denotes service AEH Return Values. _____________ AX = Number ports set up. _________ Meaning. Service AEH returns the number of ports that have been set up. It reads through the list of addresses and counts those that are set (that is are non-zero). Other Points.
NewBIOS Reference Serial Solutions ___________________________ Service AFH, Get/Set IRQ Line. _ _____________ Compatibility. NewBIOS service only, ignored by PC ROM BIOS. ___________ Parameters. AH = AFH Denotes service AFH DX = 0...31 Port number, 0=COM1...31=COM32 AL = 00H Denotes read IRQ line AL BL = = 01H 2..15 Denotes write IRQ line, and IRQ line 2..15 (-1 means no line) 2..15 IRQ line used (-1 means no line) Return Values. _____________ BL = _________ Meaning.
Serial Solutions NewBIOS Reference ³ IRQ ³ýNORMAL USE ýý³ýCOMMENTS ³ýSTATUS ³ ÃÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ý2ýýý³ýVGA GRAPHICS CARD³ýUsed by very few VGA cards ý³ Usually OK ³ ý ýýýý³ý ý³ ³ ³ý ýýý³ý ³ýDedicated to COM2 at 2F8hexý³ COM 2 ONLY ³ ³ý3ýýý³ýCOM2 ý ýýýý³ý ý³ ³ ³ý ýýý³ý ³ýDedicated to COM1 at 3F8hexý³ COM 1 ONLY ³ ³ý4ýýý³ýCOM1 ý ýýýý³ý ý³ ³ ³ý ýýý³ý ³ýDOS/WIN don’t use this IRQ ý³ Good in DOS³ ³ý5ýýý³ýLPT 2 ý ýýýý³ýAvoid with OS/2 Novell WinNT³ & Windows
NewBIOS Reference Serial Solutions ______________________________________ Service B0H, Get/Set Hardware Handshake. _____________ Compatibility. NewBIOS service only, ignored by PC ROM BIOS. ___________ Parameters. AH = B0H Denotes service B0H DX = 0...31 Port number, 0=COM1...31=COM32 AL = 00H Denotes read hardware handshake mode AL = 01H BL = 0..
Serial Solutions NewBIOS Reference The following modes are currently supported: Mode Use 0 RS232 standard, DTR/CTS (this was the default) 1 RS422 RTS/CTS 2 RS485 half duplex handshake, RTS set true during output. 3 RS485 send only, RTS always set true. 4 No handshake, also known as three handshake. Only Txd, Rxd and Ground wires need be connected. All other lines are ignored. (This is now the default ) Chapter "What To Do First", section "Handshake Selection" gives more details of the hardware handshakes.
NewBIOS Reference Serial Solutions _____________________________________ Service B1H, Get/Set Software Handshake. _____________ Compatibility. NewBIOS service only, ignored by PC ROM BIOS. ___________ Parameters. AH = B0H Denotes service B0H DX = 0...31 Port number, 0=COM1...31=COM32 AL = 00H Denotes read software handshake mode AL = 01H BL = 0..
Serial Solutions NewBIOS Reference Service B1H is used to read or set the software handshake mode used with a particular port, and to select the characters that are to be used as XON and XOFF. NewBIOS itself does not use these values, but the NewCOM.SYS device driver does. On reading the handshake mode the value of the mode for the port is returned in BL, and on a write the value in BL is used to set the mode used with the port.
NewBIOS Reference Serial Solutions ___________________________ Service B2H, Get/Set Card type. _ _____________ Compatibility. NewBIOS service only, ignored by PC ROM BIOS. ___________ Parameters. AH = B2H Denotes service B2H DX = 0...31 Port number, 0=COM1...31=COM32 AL = 00H Denotes read card type AL BL = = 01H 0..2 Denotes set card type type, as 0 ==> standard serial port (on card or on motherboard). This is the default.
Serial Solutions NewBIOS Reference information: BX, CX = Up to 4 bytes information _________ Meaning. Service B2H is used to read or set the type of card that this serial port occupies, and to read/set the extra information required to use some cards. NewBIOS itself does not use these values, but the NewCOM.SYS device driver does. On reading the card type the value of the type for the port is returned in BL, and on a write the value in BL is used to set the type.
NewBIOS Reference Serial Solutions the port number on the card so that it can identify the source of any interrupt- port 1 is not assumed to be COM1 and so on. Type 1 compatible cards: DigiBOARD PC/4 and PC/8. These use similar interrupt sharing hardware to the Brain Boxes Lynx and Quad cards, but each card has two status registers and two interrupt lines. However the second status register is usually ignored on the Digiboard card.
Serial Solutions NewBIOS Reference the card so that it can identify the source of any interrupt- port 1 is not assumed to be COM1 and so on. The interrupt set via (or assumed by) NewBIOS service 0AFH is ignored by the device driver for Flynix-8 cards as the interrupt specified here is used instead. This service is used to set up each port on the card that will use interrupt sharing (ports on the card can be switched from the interrupt sharing hardware to a standard interrupt line). Other Points.
NewBIOS Reference Serial Solutions _____________________________ Service B3H, Get/Control buffers. _ _____________ Compatibility. NewBIOS service only, ignored by PC ROM BIOS. Note The EASYC.C program contains sample C source code to write directly into the buffers and demonstrates the use of kickstart. ___________ Parameters. AH = B3H Denotes service B3H DX = 0...31 Port number, 0=COM1...
Serial Solutions BX CX NewBIOS Reference = = number of bytes in buffer size of buffer in bytes Subservice 01H, read output buffer status: AH = buffer disabled flag, true if buffer disabled and false if buffer enabled AL = false if output handshake false, we cannot transmit true if output handshake true, we can transmit. BX = number of bytes in buffer CX = size of buffer in bytes Subservices 02H to 07H, flush, disable and enable buffers, have no return values.
NewBIOS Reference Serial Solutions _________ Meaning. Service B3H is used to read the status of the buffers associated with a port, and to control those buffers. NewBIOS itself does not use these values but the NewCOM.SYS device driver does. The buffer status of a port which has been opened by NewCOM but for polled rather than buffered i/o is reported by subservices 00H and 01H as a port with 1-byte input and output buffers, the chip registers.
Serial Solutions and ax,dx NewBIOS Reference ;ensure that is within range mask with BLENMASK mov cx,ax ;put count here mov bx,offset USERSDATABUFFER ;YOU DECIDE WHERE! show05: mov al,es:[di] ;get from Serial Solution Buffer mov cs:[bx],al ;save inc di inc bx and di,dx ;validate the address with blenmask loop show05 ; ;NOTE since we have not changed the Serial Solution pointers we have just made a copy of the data in the Serial Solution buffer Other Points.
NewBIOS Reference Serial Solutions _____________________________________ Service B4H, Get Serial Solution Capability _ _____________ Compatibility. NewBIOS service only, ignored by PC ROM BIOS. ___________ Parameters. AH = B4H Denotes service B4H Return Values. _____________ AX = 52ADH Flag for presence of NewBIOS BX = BH = BL = Version Of Serial Solutions eg 2.95 Major Version Number eg 2 Minor Version Number eg 95 (range 0-99) DX = Max Number Of Devices Supported -1 newcom.
Serial Solutions Terminal Emulators Chapter 6 Terminal Emulators. ____________ Introduction. Two sets of sample programs are included with Software Solutions. These are the EASY programs and the TERM programs. The ’EASY’ programs EASYC, EASYBAS and EASYPAS should be every users first stop when encountering Serial Solutions. They are short, easy to understand and they work well.
Terminal Emulators Serial Solutions _______________________ Using Terminal Programs._ Setting up._ _________ The terminal programs are designed to be used with NewCOM, the interrupt-driven serial port device driver. The device driver handles all the more difficult parts of serial communications, such as handshaking and buffering. It must have been installed in the machine by placing the line c>device = newcom.sys in the config.sys file of the machine.
Serial Solutions Terminal Emulators the serial port. At each menu the user must hit one of the digit keys to make a selection. The menus include setting the port, the Baud rate, the number of data bits, the number of stop bits and the parity. F10 Quit. This immediately exits the program. ALT-C (That is ’C’ and the ’ALT’ key pressed together). CTERM prompts the user for a command. The user can enter a command together with any parameters that it requires.
Terminal Emulators Serial Solutions continually echo back and forth the first character transmitted! Eg E ls sets both line and screen echo. C Set the serial port (or other device) to use. Eg C COM3 sets terminal to COM3. B where ={110| 150| 300| 600| 2400| 4800| 9600| 19200| 38400| 57600| 115200} Set Baud rate. The Baud rates can be abbreviated to two digits (3 for 115200 Baud). Eg B 1200 sets 1200 Baud P{n|o|e|m|s} Set parity. n = none, o = odd, e = even, m = mark and s = space.
Serial Solutions Terminal Emulators O : where and are as above. Set an output translation. The character is replaced by the characters in . can be empty. The translation is applied after any echo to screen has been performed. Eg O 10:13,10 translates a line feed into a carriage return and line feed. See later section on using translations. X Execute. The file is read and its contents executed.
Terminal Emulators Serial Solutions G [ n][] Get file from serial port, This is available in Cterm only. See chapter 7, Cterm, for more details. _________ Example. The following commands are included on the distribution disk as ’TERMDEF.TXT’. ’Terminal Definitions for CTERM etc. This is a comment. It has no other function c com1 This tells the terminal to use COM1. Any valid device name could be used. es This sets echo to screen only.
Serial Solutions Terminal Emulators mark the end of a line, so whatever serves as an end of line marker for the remote device must be translated on input to a line feed. (This is the convention for C/UNIX programs). TERMDEF.TXT above was written to work with a terminal which sent a lone carriage return.
Cterm Serial Solutions Chapter 7 Cterm. ____________ Introduction. C is a powerful language which is gaining popularity because of its comprehensive libraries and the economy of the run-time code developed. The serial ports provided by NewCOM can be easily programmed in C, and this chapter describes how. CTERM is a terminal emulator originally written in Microsoft C. (It was developed under QuickC version 2.0, and the distributed version compiled using the C 5.1 optimising compiler.
Serial Solutions Cterm port, the Baud rate, the number of data bits, the number of stop bits and the parity. F10 Quit. This immediately exits the program. ALT-C (That is ’C’ and the ’ALT’ key pressed together). CTERM prompts the user for a command. The user can enter a command together with any parameters that it requires. These are the same commands found in the definition files, and control the way that the terminal functions. ____________ Translations.
Cterm Serial Solutions the same byte as the end of file character as a legitimate piece of data. On put, the specified file is sent to the serial port. Unless the ’n’ switch is used the file is translated in exactly the same way that characters typed at the keyboard are. The end of file character, possibly after a translation, is sent to the serial port. The transfer can be halted by pressing a key at any stage. On get, the serial port is read and the characters received are written to the file specified.
Serial Solutions Cterm com = fopen("COM1","rb"); /* Open file for input, or */ com = fopen("COM1","wb"); /* open for output, or */ com = fopen("COM1","rb+"); /* open for both. */ . c = getc( com ); /* read from file */ fputc( com ); /* Write to file */ . fseek( com, 0l, SEEK_SET); /* Flush C output buffer */ i = ferror( com ); /* Check for errors on transmission */ .
Cterm Serial Solutions Figure 7-1. Function open_com()._ ____________________________ FILE *com_inp, *com_out; char comname[] = "COM1\0 /* Open com port. */ void open_com(void) { char bf[80]; "; /* Files for: com port input */ /* com port output */ /* Name */ /* Temporary text buffer. */ com_inp = fopen(comname,"rb"); /* Open port input */ if( com_inp == NULL ) { sprintf(bf, "Failed to open %s\nTry different params.\n" ,comname); screen(bf, fromctrl); } else uncook(com_inp); /* Set to raw data mode.
Serial Solutions Cterm characters sent to and received from the serial port. If the open fails (comname may have been set to a non-valid device with the C command in CTERM) then fopen returns a value NULL. Open_com tests this and generates an error message if the value is NULL. At this stage the device driver has not been accessed. The fopen statement has allowed C and DOS to prepare for I/O to the port, setting up their variables and buffers.
Cterm Serial Solutions Reading From The File. ____________________ _ The function inpstr(), below, reads from the serial port. Figure 7-3. Function inpstr(). _________________________ /* Read a character from com port. */ /* If echo to line true then send it back out. */ /* Return value is number of bytes read. */ int inpstr(char *data) { int c; c = getc( com_inp ); *data = char( c ); if( c == EOF ) { clearerr( com_inp); return 0; /* EOF is error condition ==> return none.
Serial Solutions Cterm Figure 7-4. Function outstr(). _________________________ /* Send a string of characters to com port. */ /* This routine must deal with write errors on COM port. */ void outstr(char *data, int count) { int i,c; time_t t1, t2; for(i = 0; i < count ; i++) { time( &t1 ); fputc(*(data + i), com_out); fseek(com_out, 0l, SEEK_SET); /* Reset file pointer..
Cterm Serial Solutions Closing The File. ______________ _ The C function fclose() is used to close the file. It does not access the device driver, but merely informs DOS and C that the program no longer wishes to use the file. The files are closed by: fclose(com_inp); fclose(com_out); performed just before the program ends or during a change of port on the ’C’ command in CTERM. Serial Port Parameters. ____________________ _ The serial port has several settings, the Baud rate, parity etc.
Serial Solutions case ’s’: inregs.h.bh = 4; default: return FALSE; Cterm /* Parity space */ break; /* Bad parity specification. */ }; if( stop < 1 || stop > 2 ) return FALSE; /* Bad stop bits specification. */ else inregs.h.bl = (char)(stop-1); if( data < 5 || data > 8 ) return FALSE; /* Bad databits specification. */ else inregs.h.ch = (char)(data - 5); if( ( inregs.h.cl = (char)prefer_baud(&baud) ) == -1 ) return FALSE; /* Bad Baud rate. */ inregs.h.ah = 0x04; /* Service 4, extended initialise.
Cterm Serial Solutions a r e selecte d the serial hardw a r e interpr ets 2 stop bits as 1 1/2 bits. Data Baud Number of data bits. 5, 6, 7 or 8. Baud rate. The CTERM function prefer_baud() is used to check and translate this. Bios_x_init returns a true flag to show that is has checked its parameters, found them to be ok, and used them to set the serial port. If the parameters are bad then a false flag is returned and the serial port is left alone. Fitting The Parts Together.
Serial Solutions Cterm Figure 7-6. Function main. _______________________ void main(int argc, char **argv) { init_screen(); /* Set up screen. */ init_xlat(); /* initialise translation tables. */ /* This may need to be replaced. */ exec_defaults(argv); /* Find and execute a file of commands */ open_com(); while( TRUE ) { readin(); switchout(); /* Open com files. */ /* Main program loop. */ /* get any characters from port. */ /* send to display. */ /* Read and process characters */ /* from keyboard.
Cterm Serial Solutions Menuout() deals with the function keys and the ALT-C key. It reads the second byte of the extended key code and interprets it as a request to perform a certain action, and calls cmdout() for help, quit and commands, and setup() for the setup option. Cmdout() decodes a character string as a command (whether the string is from the keyboard, a file or a literal in the program does not matter), calling one of the command execution routines to do the actual work.
Serial Solutions Aterm Chapter 8 Aterm ____________ Introduction. The serial ports provided by NewCOM can be easily accessed from Assembly language, and this, combined with assembly language’s advantages of speed, compact code and good machine control, make it a good choice for serial port programming. ATERM is a version of the terminal emulator.
Aterm Serial Solutions digit keys to make a selection. The menus include setting the port, the Baud rate, the number of data bits, the number of stop bits and the parity. F10 Quit. This immediately exits the program. ALT-C (That is ’C’ and the ’ALT’ key pressed together). Aterm prompts the user for a command. The user can enter a command together with any parameters that it requires. These are the same commands found in the definition files, and control the way that the terminal functions.
Serial Solutions Function 40H, Function 3EH, Aterm write handle, to send characters to the port and close handle, to close the file. BIOS services provided by NewBIOS are accessed through INT 14H, in the subroutine bios_x_init, to set parameters such as the Baud rate and parity associated with a port. DOS function 44H codes 0 and 1 are used to get and set respectively the device data maintained by DOS.
Aterm Serial Solutions jnc opnc01 ;deal with error mov ax, fromctrl mov bx, offset openfail1 call screen mov bx, offset comname call screen mov bx, offset openfail2 call screen mov ax,0FFFFH mov comport,ax jmp short opnc02 opnc01: mov comport,ax call uncook opnc02: ret open_com endp ; ;Carry clear means no error. ;Print out error message ;Flag bad port ;exit ;Save file handle ;Set file to raw data mode ;Done The DOS function 3DH, open handle, is used to ’open’ the com port.
Serial Solutions Aterm Figure 8-2. Subroutine Uncook. ___________________________ ;******************************************************************** ;* * ;* uncook-routine sets mode of file to raw data. I/O * ;* is performed as many bytes as possible at a time, and * ;* control characters are not trapped.
Aterm Serial Solutions Figure 8-3. Subroutine Inpstr. __________________________ ;******************************************************************** ;* * ;* Inpstr- attempts to read a character from the serial * ;* port if echo to line is set then echo character back * ;* to port. Character is written to xiobuf.
Serial Solutions Aterm inst02: ret inpstr endp ; ;done The read is performed by DOS service 03FH, read handle, to read bytes into a buffer in ATERM’s memory (xiobuf). It is at the first access of the port for a read or write that the driver itself is actually accessed. It sets up its internal buffers, which are essential for interrupt driven I/O, and initialises the serial hardware. Service 03FH returns the number of bytes read.
Aterm Serial Solutions jnc outs01 mov ax,fromctrl mov bx,offset writefail call screen ;Data sent ok ;Flag source of output ;Display error message outs01: ret outstr endp The DOS function 040H is used to write characters to the serial port. This returns carry set if there was some problem in sending data out. Such errors are tested by outstr, as above. Closing The File. ______________ _ The subroutine close_com is used to close the file, below. Figure 8-5. Subroutine Close_com.
Serial Solutions clsp01: ret close_com endp Aterm ;Done DOS function 03EH does not access the device driver, but merely informs DOS that the program no longer wishes to use the file. Serial Port Parameters. ____________________ _ The serial port settings, the Baud rate, parity etc., must be set to the values that the remote device requires. In ATERM this is all done by one subroutine, bios_x_init. Figure 8-6. Subroutine Bios_x_init.
Aterm Serial Solutions cmp bl,1 ja bxi01 mov ch,databits cmp ch,3 ja bxi01 mov cl,baud cmp cl,0BH ja bxi01 mov dx,comno cmp dx,15 ja bxi01 mov ah,04H int com ;Bad port ;BIOS extended initialise ;BIOS asynchronous services clc jmp short bxi02 ;exit good ;Bad stop bits ;Bad data bits ;Bad baud rate bxi01: stc ;exit bad bxi02: ret bios_x_init endp ; ;done Bios_x_init uses the extended initialise service supplied as part of NewBIOS to set up the port.
Serial Solutions Aterm Figure 8-7. Aterm Main Program. _____________________________ _ ;******************************************************************** ;* * ;* Aterm main program. Sets up terminal (possibly using an * ;* external file of commands). Alternately polls keyb’d * ;* and RS-232 port and sends out and displays * ;* respectively any characters received. * ;* * ;******************************************************************** ; start proc far ; ;Initialise segment registers.
Aterm Serial Solutions character received. If inxlat returns a non-empty string of characters then readin prints them out. Switchout polls the keyboard using kbdwait. A character, if entered, is compared with zero. A zero byte indicates an extended character code, used for the function keys, cursor and edit keys and ALT key combinations. These are all taken to be commands, and so the function subroutine is called to deal with them.
Serial Solutions Aterm Figure 8-8. Screen Output.
Pasterm Serial Solutions Chapter 9 Pasterm ____________ Introduction. Pascal is a widely used and well structured language. Borland’s implementation of it, Turbo Pascal, is popular and offers many extra features which make programming the serial ports that NewCOM provides very simple. Pasterm is a Turbo Pascal v4 terminal emulation. Its main purpose is to demonstrate how serial ports can be programmed from Turbo Pascal, but it is in its own right a powerful tool for using serial devices.
Serial Solutions Pasterm bits and the parity. F10 Quit. This immediately exits the program. ALT-C (That is ’C’ and the ’ALT’ key pressed together). Pasterm prompts the user for a command. The user can enter a command together with any parameters that it requires. These are the same commands found in the definition files, and control the way that the terminal functions. The Pasterm Serial Connection.
Pasterm Serial Solutions Opening The File. _______________ _ In Pasterm the Procedure ’Open_Com’ opens the port. Figure 9-1. Procedure Open_Com. _____________________________ _ PROCEDURE Open_Com; {Open COM port for input, output} PROCEDURE Uncook (VAR Filename: FileRec); { Change the DOS mode of a text file from cooked to raw } VAR ioregs :Registers; BEGIN WITH ioregs, Filename DO BEGIN ax := $4400; { Function 44H, subservice 0H } bx := Handle; { get device data.
Serial Solutions Pasterm This shows the two variables, type File Of Char, Com_Inp and Com_Out, that refer to the com port. They are the same file, but input and output refer to them via different files structures. A single file would have to be continually opened and closed with Reset and ReWrite as the file was read and written. Text files could be used, and have the advantage that strings and numbers can be read/written with ease.
Pasterm Serial Solutions that is the file variable to find the handle (a word) that DOS associates with the file. Reading From The File. ____________________ _ The Procedure InpStr, Figure 9-3, reads from the serial port. The procedure is local to the function InXlat. Figure 9-2. Procedure InpStr. _________________________ _ {Read a character from COM port.
Serial Solutions Pasterm Figure 9-3. Procedure OutStr. __________________________ {Send a string to serial port} {Must deal here with any errors} PROCEDURE OutStr (s :String); VAR i: Integer; BEGIN {$I-} FOR i := 1 TO Length( s ) DO Write(Com_Out, s[i]); {$I+} IF IoResult <> 0 { Write failure} THEN Screen(’Failed to output characters to port.’+Newl,Fromctrl); END; The output procedure in Pascal used is Write. As before IOResult is used to trap errors that may have occurred. Closing The File.
Pasterm Serial Solutions Serial Port Parameters. ____________________ _ The serial port settings, the Baud rate, parity etc., must be set to the values that the remote device requires. The procedure in Pasterm which does this is BIOS_X_Init(), Figure 9-5. Figure 9-5. Function BIOS_X_Init.
Serial Solutions Pasterm ( Data > 3 ) THEN Exit; CH := Data; { Check Baud rate} IF ( Baud < 0 ) OR ( Baud > 11 ) THEN Exit; CL := Baud; { Bad Data number} { Bad Baud number} AH := $4; { service 4, extended initialise} { Do initialisation} Intr($14, ioregs); {Int 14H is BIOS Asynchronous services interrupt} BIOS_X_Init := true; {This service does not generate any error codes} END; END; BIOX_X_Init uses the extended initialise service supplied as part of NewBIOS to set up the port.
Pasterm Serial Solutions Figure 9-6. Pasterm Main Program.
Serial Solutions Pasterm entered, is compared with zero. A zero byte indicates an extended character code, used for the function keys, cursor and edit keys and ALT key combinations. These are all taken to be commands, and so the procedure MenuOut is called to deal with them. All other keys are echoed (if echo to screen has been set), and then passed on to OutXlat. OutXlat translates the characters and uses OutStr to send them on to the serial port. Outstr is examined in the section above.
Pasterm Serial Solutions Screen(’Command not recognised’+newl,Fromctrl); It can be seen that programming the serial ports that NewCOM provides is simple in Turbo Pascal, although the details of Pasterm may obscure this. The standard Pascal functions of Assign, Reset, ReWrite, Read, Write and Close allow the user to access the serial port. The port parameters such as Baud rate and parity can be set with the Intr procedure, which gives access to the BIOS asynchronous services.
Serial Solutions BASterm Chapter 10 BASterm. ____________ Introduction. Large numbers of people turn to BASIC when they have a programming problem to solve because of its ease of use and the ability to get something working quickly. QuickBASIC and now Visual Basic for Dos are true professional programming languages.
BASterm Serial Solutions The switch ’/L’ is important because the program requires a subroutine, Interrupt, found in the library qb.qlb, loaded by the /L option. From within the environment can be specified via Command$, which is set in the ’Run’ menu (the user may first need to set ’full menus’ in the ’Options’ menu).
Serial Solutions BASterm user can hit a function key, which have the following effects: F1 Display a help screen F2 Setup. This is a group of menus which interactively set up the serial port. At each menu the user must hit one of the digit keys to make a selection. The menus include setting the port, the Baud rate, the number of data bits, the number of stop bits and the parity. F10 Quit. This immediately exits the program. ALT-C (That is ’C’ and the ’ALT’ key pressed together).
BASterm Serial Solutions CLOSE #1 ’Close the file Because BASICA/GW-BASIC does not have an intrinsic method of accessing the BIOS, which contains the services supplied by NewCOM for setting the serial port parameters, and QuickBASIC does, the two programs use very different pieces of code to access the BIOS. QuickBASIC uses its ’CALL INTERRUPT’ statement to access the BIOS. GW-BASIC /BASICA uses a small machine code routine to achieve the same effect.
Serial Solutions BASterm Figure 10-2. Input Subroutine.
BASterm Serial Solutions outputs the translation to the screen. The ON ERROR statement allows the program to continue running even if an error occurs. Writing To The File. __________________ Writes to the serial port file are shown below. Figure 10-3. Output Subroutine.
Serial Solutions BASterm The BASIC CLOSE statement does not access the device driver, but merely informs DOS and BASIC that the program no longer wishes to use the file. CLOSE is performed just before the program ends and during a change of port on the ’C’ command in BASterm. Serial Port Parameters. ____________________ _ The serial port settings, the Baud rate, parity etc., must be set to the values that the remote device requires.
BASterm 28500 28510 28600 28610 28620 28630 28640 28650 28660 28670 Serial Solutions END : ’************************************************************** ’Call BIOS via statement call interrupt. QuickBASIC 4.5 : CALL INTERRUPT(&H14, INREGS, OUTREGS) : RETURN : : The subroutine is Figure 10-5 uses the extended initialise service supplied as part of NewBIOS to set the port up. It works its way though the function parameters, checking that each has a valid value.
Serial Solutions BASterm Figure 10-6. BASterm Main Program. ________________________________ _ 2000 2010 2020 2030 2040 2050 2060 2070 2080 2090 2100 2110 2120 2130 2140 2150 2160 2170 2180 2190 2200 2220 2240 2260 2280 2290 2300 2310 2320 2330 2340 2350 2360 2370 2380 3000 3010 3020 3030 3040 3050 3060 3070 3080 3090 3100 3110 3120 DEFINT A-Z ’Use integers by default : ’Definitions for QuickBASIC BIOS intface (GW-BASIC ignores this) ’ $INCLUDE: ’QB.
BASterm 3130 3140 3150 3160 4000 4010 4020 4030 4040 4050 4060 4070 4080 4090 5000 5010 5020 5030 5040 5050 5060 5070 5080 5090 5100 5110 5120 5130 Serial Solutions KEY(15) ON : KEY OFF ’Turn off key displays at bottom of screen : GOSUB 27000 ’Initialise BIOS interface : GOSUB 6010 ’Initialise translation tables : GOSUB 8010 ’Open file to serial port : : GOSUB 7010 ’Execute definition file : : ’*************************************************************** ’Main program : WHILE 1 ’Repeats forever : GOSUB
Serial Solutions BASterm file is specified on the command line then the file ’TERMDEF.TXT’ is tried. GW-BASIC does not have a command line access mechanism, so the variable which contains the command line in QuickBASIC, Command$, will be empty in GW-BASIC unless the user explicitly sets it before running the program. The program then enters an infinite loop (lines 5000 to 5120) which alternately calls two subroutines, at lines 9010 and 9500. The subroutine at line 9010 is shown in Figure 10-2, above.
Forterm Serial Solutions Chapter 11 Forterm ____________ Introduction. FORTRAN77 was the first high-level programming language, and now, much enhanced, is a mainstay of computing, especially in science and engineering applications. FORTRAN77 can easily be used to run the serial ports provided by NewCOM, and with the BIOS access function supplied with Serial Solutions the full range of serial software functions are available Forterm is a Microsoft FORTRAN77 version 5 terminal emulator.
Serial Solutions Forterm digit keys to make a selection. The menus include setting the port, the Baud rate, the number of data bits, the number of stop bits and the parity. F10 Quit. This immediately exits the program. ALT-C (That is ’C’ and the ’ALT’ key pressed together). FORterm prompts the user for a command. The user can enter a command together with any parameters that it requires. These are the same commands found in the definition files, and control the way that the terminal functions.
Forterm Serial Solutions Figure 11-1. Procedure open_com.
Serial Solutions Forterm Figure 11-2. Function inpstr. _________________________ C C C C C C C ******************************************************************* * * * InpStr reads a character from the serial port, and writes it * * to ’c’. The return value indicates whether any characters * * were read. * * * ******************************************************************* logical function inpstr (c) character c integer io read (1,iostat=io) c inpstr = ( io .EQ.
Forterm Serial Solutions subroutine outstr (data, count) character *(*) data integer count rewind(1,err=1000) write (1,err=1000) data(1:count) rewind(1,err=1000) return 1000 continue call screen(’Failed to output characters to port.\n’C,2) end The output statement in FORTRAN used is write. A different error check is used here. An i/o error causes control to be passed to line 1000, where an error message is printed.
Serial Solutions Forterm Figure 11-5. Function BIOS_X_init.
Forterm Serial Solutions if( (brk .LT. 0) .OR. (brk .GT. 1) ) return registers.al = brk if( (par .LT. 0) .OR. (par .GT. 4) ) return registers.bh = par if( (data .LT. 0) .OR. (data .GT. 3) ) return registers.ch = data if( (stop .LT. 0) .OR. (stop .GT. 1) ) return registers.bl = stop if( (Baud .LT. 0) .OR. (Baud .GT. 11) ) return registers.cl = Baud call intrpt( 16#14, registers ) C Return true for good numbers BIOS_x_init = .TRUE.
Serial Solutions Forterm Figure 11-6. Forterm Main Program.
Forterm Serial Solutions end The first few lines or the main program and the subroutine initxlt set up internal variables for use by Forterm. Exec_defaults checks for a command line parameter and attempts to execute the file of commands to which it refers. If it cannot find the file, or if no file is specified on the command line then the file ’TERMDEF.TXT’ is tried. Open_com opens the serial port, as discussed in the previous section.
Serial Solutions Forterm that appear on the screen- characters from the serial port (where the second parameter of screen is 0), echoed characters from the keyboard (second parameter 1), and control information from the program (second parameter 2). The second parameter of screen flags this. Figure 11-7 contains examples of this. Figure 11-7. Screen Output Examples. _________________________________ if( echos ) then c(2:2) = ’’C call screen(c, 1) end if call inxlat( c ) if( c(1:1) .NE.
Index Serial Solutions ______ Index. 1200 baud......................... 47, 54, 57, 60, 64, 111, 113, 170 16450................................ 1, 69, 76-83, 85-89, 91 16550 /16552.................... 1, 69 2400 baud......................... 22 300 baud........................... 38, 84 7 data bits..........................38, 47, 60, 64, 75, 170 8 data bits..........................22, 75 8250.................................. 1, 69 Addresses..........................
Serial Solutions Index 142, 144, 146, 154, 158, 164-172 Cable.................................2, 10, 11, 15, 16 Clear to send.....................12, 13, 14, 76, 82, 85, 88 Cluster card.......................9 Com1................................ 1-4, 5, 8, 12-14, 16-17, 19-21, 24, 2628, 32, 34, 36, 38-40, 43, 47-51, 54, 57, 60, 61, 64-70, 72-73, 90, 92, 94, 101-103, 124, 142, 149, 154, 160, 170 Com10-16.........................6, 10, 19, 20, 23, 27, 29, 31-32, 34, 40, 66 Com2-4...........................
Index Serial Solutions FIFO ................................. 9 Flynix................................9, 19, 101 Gate Gating.......................25, 79, 81, 89 Handshake........................ 3-6, 10-17, 19-22, 25-26, 29, 34-35, 42-44, 47, 71-73, 78, 80, 83, 95-98, 104-105, 154 Help.................................. 36, 40, 109-110, 115, 127-128, 139, 141, 150, 154, 160, 162-163, 171 Installation........................ 1, 2, 18, 31, 101, 109 Interrupt sharing...............
Serial Solutions Index Polls.................................. 126, 138, 139, 149, 171 PS/2 .................................. 21, 28, 42, 67, 72, 84, 87 Quad................................. 9, 10, 27, 29-30, 99, 100, 101 Receive............................. 7, 11, 13-6, 21, 25-6, 35, 41-2, 70-71, 76, 80, 83, 117 Remote..............................35, 114, 123, 136, 147, 158, 167 Report............................... 39, 40, 41, 46, 90 Request to send.................12, 13, 14, 87 RI...................