Using the Practical Modem 14400FXSA V.32bis with IBM OS/2 2.0


 * Date: 1992-07-23
 * By Paul E. Hansen

Contrary to what is in the README file of OS/2, this modem can function perfectly well with OS/2. This document is intended as a guide to help users configuring their systems to use the PM14400FXSA with OS/2. By following the tips listed here, you should be able to most DOS, Windows and OS/2 communications software working with the modem as an OS/2 task.

The user is assumed to have a working knowledge of OS/2 and the PM14400FXSA modem.

This document is split into the following sections:
 * 1) MODE parameters
 * 2) CONFIG.SYS commands
 * 3) Using Quick Link II Fax
 * 4) DOS settings
 * 5) 8250 UARTs

MODE parameters
The following MODE parameters can be used as guidelines in helping the user determine optimal settings for use with the PM14400FXSA. Note that only serial ports with a hardware FIFO buffer or DMA capability support the ENHANCED parameter, and only serial ports with DMA capability support RXDMA and TXDMA.

For DOS programs that can support hardware (RTS/CTS) handshaking:
 * BAUD=57600
 * Some systems do not reliably support 57600 baud DTE speeds. In these cases, try a slower speed such as 38400 or 19200. The minimum DTE speed to allow v.32bis (14400 bps) connections is 19200 baud.
 * IDSR=ON,ODSR=ON
 * These settings are needed to allow automatic protocol-override mode. The PM14400FXSA should be set for &S0, which is the factory default.
 * NOTE: Sometimes, using these settings, the application may "freeze." If this happens, use IDSR=OFF,ODSR=OFF instead. If the application drops characters with IDSR=OFF,ODSR=OFF, try using BUFFER=ON instead of BUFFER=AUTO as outlined below. In general, BUFFER=AUTO gives best results at high serial port speeds.
 * OCTS=OFF,RTS=OFF
 * These settings tell OS/2 not to monitor the CTS line or to control the RTS line. Instead, OS/2 will allow the DOS application to monitor CTS and control RTS. The PM14400FXSA should be set for &K3, which is the factory default. If the application loses data while other tasks are running, you can let OS/2 take control of the RTS line with RTS=HS.
 * DTR=OFF
 * This setting tells OS/2 not to control the DTR line. Most programs use the DTR line to hang up the line and force the modem into command mode. Normally the PM14400FXSA should be set for &D2.
 * BUFFER=AUTO
 * This setting tells OS/2 to run in automatic protocol-override mode. This provides maximum serial port performance, and is the optimal setting for using the PM14400FXSA at high baud rates.
 * ENHANCED=ON
 * This setting tells OS/2 to run in enhanced mode, which will enable the FIFO mode or DMA mode of serial ports that allow such operations.
 * RXDMA=AUTO,TXDMA=AUTO
 * This setting tells OS/2 to use DMA to receive or transmit data over serial ports that support DMA mode operations. If no DMA channel is available, FIFO mode is used instead but the data transfer will still occur.

DOS programs that do not know how to use hardware handshaking should use similar settings, except OS/2 itself should be allowed to perform the hardware handshaking. This is done by setting OCTS=ON,RTS=HS.

Some DOS programs (such as those under WIN-OS/2) work better with BUFFER=OFF.

OS/2 programs can usually manipulate these settings without having the user set them. However, most OS/2 programs will function best with OCTS=ON,DTR=ON,RTS=HS and the other above settings.

CONFIG.SYS commands
MODE settings for the system can be set automatically in CONFIG.SYS. To do this, place the following line in between the DEVICE=C:\OS2\COM.SYS (or COMDMA.SYS) and DEVICE=C:\OS2\VCOM.SYS lines: RUN=C:\OS2\MODE.EXE COM1:57600,N,8,1,BUFFER=AUTO,ENHANCED=ON (an example) (Your drive may not necessarily be C:.)

Additionally, communications tasks may gain better performance by setting MAXWAIT=1 in CONFIG.SYS. IOPL=YES may also be required for certain combinations of MODE parameters.

In some extreme cases, PRIORITY_DISK_IO=NO may be required to avoid losing data with DOS communications software.

On certain systems, OS/2 will not recognize all serial ports on the system. (This often happens with ISA systems with COM3 and COM4.) To have OS/2 support serial ports, the DEVICE=C:\OS2\COM.SYS line needs to be modified. The parameters are as follows: DEVICE=C:\OS2\COM.SYS (n,a,i) where n is the COM port, a is the I/O address, and i is the IRQ level.

Multiple ports may be defined this way, such as: DEVICE=C:\OS2\COM.SYS (3,03E8,5) (4,02E8,10) would define COM3 at address 3E8 on IRQ5 and COM4 on 2E8 on IRQ10.

ISA systems can have problems in sharing IRQ lines. In general, it's best to avoid using two devices at the same time with the same IRQ level on ISA systems.

Micro Channel and EISA systems use level sensitive interrupts and can normally share IRQ lines reliably.

Using Quick Link II Fax
This is the program that ships with the PM14400FXSA.

Quick Link II Fax should work reliably under OS/2 with the above settings for DOS programs that support hardware handshaking. QL2FAX should itself be set for 57600 baud and RTS/CTS flow control.

Quick Link II Fax may produce SYS3175 or SYS3176 errors when running in a DOS session. If this occurs, running QL2FAX in a stand-alone version of DOS under OS/2. For information about running other versions of DOS under OS/2, look in Appendix E of the OS/2 Installation Guide (page 97). (Note that you cannot normally run the OS/2 MODE command in a stand-alone version of DOS running under OS/2. Set up the serial port before starting the stand-alone version of DOS.)

NiteFax may cause strange behavior if loaded and the system is left at a command prompt. The following batch file (NITEFAX2.BAT) should allow proper NiteFax operation as a DOS task: @ECHO OFF CLS CALL NITEFAX ECHO. ECHO. ECHO All incoming faxes are received and automatically printed. ECHO. ECHO To turn off NiteFax, press any key. PAUSE >Nul You can now load NiteFax from an icon using NITEFAX2.BAT. By pressing any key, the DOS session is closed and NiteFax is terminated.

Users that run QL2FAX from a stand-alone version of DOS may want to make the following text file (EXIT_VDM.DBG). When run through DEBUG, it creates a file called EXIT_VDM.COM that will end any VDM (Virtual DOS Machine), including stand-alone versions of DOS. This is useful since the EXIT command will not end DOS sessions running stand-alone versions of DOS. a100 ; Enter the following: DEBUG <exit_vdm.dbg ; This will create the file EXIT_VDM.COM. ; This program will terminate a VDM. It will ; work in both OS/2 DOS Emulation and VM-Boot. mov ah,4D int 21 hlt db 2,FD rcx 7 n exit_vdm.com w q

DOS settings
DOS programs that perform communications may experience a performance increase by setting HW_TIMER to ON. Some programs can also benefit from setting IDLE_SECONDS to 60 and IDLE_SENSITIVITY to 100.

Setting HW_ROM_TO_RAM to ON may increase performace on some systems, as can settinging COM_HOLD to ON.

Remember that in multitasking operating systems such as OS/2, giving more CPU time to one task (by boosting the IDLE settings) may decrease performance in other tasks.

Running a program as a full screen application can improve performance as well.

8250 UARTs
OS/2 may have poor performance for high-speed serial port communications on systems that use an 8250 UART. Performance can be greatly improved by using a 16450 or 16550 UART. The 16550AFN can provide a hardware FIFO buffer as well.

This document was researched and created by an IBM employee who works with OS/2 on a daily basis. It was created on his own time, using his own computer and does not represent anything 'official' from IBM. He is kindly sharing his knowledge and insight with others on how to get the PM14400FXSA modem and Quick Link II FAX to operate properly under OS/2 version 2.0.
 * Note:

When there is additional information developed on this topic it will be posted as an additional file or as a revision to this file.

Paul E. Hansen 76702,475 Sysop PPIFORUM