Socket Dual Serial I/O PC Card
Version 1.00 ENABLER.TXT file
(c) Copyright 1998 Socket Communications, Inc. All Rights Reserved

************************************************************************

GUIDE FOR SOCKET'S DIRECT ENABLER

INTRODUCTION
This section contains information about using the Socket Dual Serial I/O
Card with DOS. If you run any other operating system such as Windows 95,
Windows NT, Windows CE, then this file is not relevant to you.

The information contained in this ENABLER.TXT file is available for free
as an Adobe Acrobat (PDF format) file from Socket's worldwide web site
at http://www.socketcom.com. You can also download a free copy of the
Adobe Acrobat reader from Socket's web site. The PDF file, which
includes screen shots and tables that are not available in this 
ENABLER.TXT file, is a more convenient way to access the information 
contained here.

WHAT'S IN THIS GUIDE FOR SOCKET'S DIRECT ENABLER?
This document has three sections.

SECTION 1, "Installing the Direct Enabler," describes how to install
the Dual I/O card under MS-DOS.

SECTION 2, "Ways of Running the Enabler," provides detailed information
about running ENABLEDO.EXE from your CONFIG.SYS, as a command line, or
from a BAT file.

SECTION 3, "SOCKETIO.INI," describes the optional configuration file 
which can be used with Socket's direct enabler under DOS.

CONTENTS
SECTION 1: Installing the Direct Enabler
Overview
What's an Enabler?
Steps Needed to Install the Dual I/O Card
Copying the Direct Enabler
Excluding the High Memory Window

SECTION 2: Ways of Running the Enabler
The Enabler as a CONFIG.SYS Device Driver
As a Command Line 
Using a File to Pass Enabler Parameters
Configuration Parameters
Using STARTDIO.BAT to Run the Enabler
Warning!

SECTION 3: SOCKETIO.INI
Overview
Default Search Paths
The Syntax of SOCKETIO.INI
________________________________________________________________________

SECTION 1: INSTALLING THE DIRECT ENABLER

OVERVIEW
To use the Dual I/O Card with MS-DOS (DOS), you must run Socket's direct 
enabler program, ENABLEDO.EXE. The direct enabler software allows DOS to 
recognize the Dual I/O Card and assigns the device two COM port 
addresses and a shared interrupt. The direct enabler program accepts 
command line options that allow you to specify which DOS resources are 
assigned to the Dual I/O Card. This section describes the options 
available for running the direct enabler from a CONFIG.SYS file, a BAT 
file, and a command line.


WHAT'S AN ENABLER?
An enabler is a program that establishes a connection between your PC 
Card and the PCMCIA host controller inside your notebook. Socket's 
direct enabler makes the Dual I/O Card "visible" to DOS.

The file ENABLEDO.EXE, provided with the Dual I/O Card package, is a 
global enabler. A global enabler is really a collection of enablers, 
each one designed to connect a PC Card to a specific type of PCMCIA host 
controller incorporated into a notebook. ENABLEDO works with a number of 
PCMCIA host controllers, but you must identify the notebook or 
controller on which you want it to run. Most notebooks manufactured 
today use the same type of host controller, which is the default used by
Socket's direct enabler.

Socket's direct enabler is unique in its ability to accept a wide array 
of configuration options. This gives you great flexibility to 
accommodate your notebook's particular hardware and software 
environment.


STEPS NEEDED TO INSTALL THE DUAL I/O CARD
To install the direct enabler to run under DOS, you must do the 
following:

a) Create a Dual I/O Card directory on your hard disk (the 
conventional directory name is SOCKETDO).
b) Copy files from your Installation Disk to the Dual I/O Card 
directory you created on your hard disk.
c) Extract the enabler files.
d) Check your CONFIG.SYS file for memory management software and, if 
you find it, exclude 4K of high memory in order to avoid conflicts with 
Socket's direct enabler.
e) Optionally add a PATH statement in your AUTOEXEC.BAT file with the 
name of the Dual I/O Card directory.
f) Run Socket's direct enabler with the appropriate command line 
options and verify that the Dual I/O Card works properly.


COPYING THE DIRECT ENABLER
Before using Socket's direct enabler with the Dual I/O Card, you must 
copy several files from the Socket Dual I/O Card Installation Disk to 
your notebook's hard disk. The files are compressed on the Installation 
Disk, so after coping the compressed file, you must decompress it.
To copy and decompress the necessary files to your hard disk
(Drive C: in this example), insert the Installation Disk into your 
floppy drive (Drive A: in this example) and type the following:

C:
MD C:\SOCKETDO
CD\SOCKETDO
COPY A:\ENABLERS\*.*
ENALBERS

EXCLUDING THE HIGH MEMORY WINDOW
By default, ENABLEDO.EXE uses 4Kb of High Memory between 0xD4000 and 
0xD4FFF. When the enabler terminates, it frees this memory.  If you use 
a memory manager such as EMM386, you should exclude the 4Kb block of 
high memory that begins at 0xD4000. This will allow you to run the 
enabler at any time without having to reboot your notebook.

To exclude the High Memory between 0xD4000 and 0xD4FFF under DOS 5.0 or 
6.0, edit the line in the CONFIG.SYS file that refers to EMM386 and add 
the parameter X=D400-D4FF. A sample line invoking EMM386 in this way 
would be:

device=c:\emm386.exe X=D400-D4FF

If you prefer not to exclude High Memory, you must run ENABLEDO.EXE from
your CONFIG.SYS file as described below, and you must position the line 
that invokes the enabler before the line that invokes EMM386. In this 
case, to reinitialize the Dual I/O Card you will have to reboot.


SECTION 2: WAYS OF RUNNING THE ENABLER

You can run the ENABLEDO.EXE enabler program the following ways:
From your CONFIG.SYS file
As a command line
From a BAT file 


THE ENABLER AS A CONFIG.SYS DEVICE DRIVER
The syntax of the enabler as a CONFIG.SYS device driver is:

DEVICE=[drive:][path\]ENABLEDO.EXE [switches]

The syntax of the enabler as a command line is:

[drive:][path\]ENABLEDO [switches]

You may have to include one or more software "switches" when you run the
enabler. The syntax of a switch is:

[switch] = [parameter]

A sample line invoking the enabler from CONFIG.SYS is:

DEVICE=C:\SOCKETDO\ENABLEDO.EXE Com = 2 Aux = 3

This example assumes that the file ENABLEDO.EXE has been placed in the 
subdirectory SOCKETDO on Drive C:. The words "Com" and "Aux" are 
switches, and the numbers "2" and "3" are their respective parameters.


AS A COMMAND LINE
To run the enabler from a command line, the equilavent to above
would be:

C:\SOCKETDO\ENABLEDO Com = 2 Aux = 3

Switches tell Socket's enabler what configuration options to set, and 
parameters provide details about how to set these options. The equal 
sign (=) between a switch and its parameter is optional. Not all 
switches require or accept parameters.


USING A FILE TO PASS ENABLER PARAMETERS
Like the direct enablers for all Socket's PC Card products, ENABLEDO can
read a configuration file to find its setup parameters. The major 
advantage of passing setup information through a configuration file is 
that it makes it easy to manage systems that use several different 
Socket PC Cards for different situations. For example, a system may use 
Socket's Dual I/O Card to collect data and Socket's Ethernet Card to 
transfer the collected data to a local area network.

In case of a conflict, parameters passed on the enabler's command line 
override parameters contained in the enabler's configuration file.
To tell the enabler what file to scan for configuration information, use
the following syntax:

ENABLEDO File = [drive:][path\][filename]

You can use any directory and file name as long as they are valid under 
DOS, but the conventional directory is SOCKETDO and the default file 
name is SOCKETIO.INI.

As an example, the following command line would tell the enabler to scan
the SOCKETIO.INI file on the C:\SOCKETDO directory:

ENABLEDO File = C:\SOCKETDO\SOCKETIO.INI

See section 7.2, "THE SOCKETIO.INI FILE," for details on the enabler's 
search paths.

Settings for the Dual I/O Card in the configuration file must be placed 
under the header [SOCKETDIO]. The following lines, which include a 
configuration header in brackets, might appear in a SOCKETIO.INI file:

[SOCKETDIO]

Host = PCIC 
Socket = 0
Com = 2
Aux = 3
Ireq = 3
AuxInt = enabled
MemBase = 0xD4000
MemSize = 0x1000


CONFIGURATION PARAMETERS
The ENABLEDO program accepts more than 20 configuration switches. Most 
of these switches require parameters. All but two of these switches, 
File and Help, may be included in a configuration file designated by the
File switch (as described in the previous section).

The parameter Help causes the ENABLEDO program to generate a list of all
valid switches and their corresponding default values. You can view 
these parameters by typing:

ENABLEDO Help

To create a text file called ENABLER.TXT that contains this information,
you could type:

ENABLEDO Help >ENABLER.TXT

You can then use a text editor to read or print the ENABLER.TXT file 
from your default disk directory.

The valid switches, parameters, and defaults are:

Adapter <#>, default is 0
Aux <# or 0 for automatic>, default is 0
AuxInt <enabled|disabled>, default is enabled
ClockDiv <enabled|disabled>, default is disabled
Com <# or 0 for automatic>, default is 0
File <filename>, default is SOCKETIO.INI
Help <no parameter>
Host <hostname>, default is SS1, PCIC
HostBase <#>, default is 0x3E0
IgnoreCS <no parameter>, default is disabled
IgnoreSS <no parameter>, default is disabled
IoBase <#>, default is lowest available COM port
IoSize <#>, default is 0x8
IoWidth <8|16>, default is 8
IoWindow <enabled|disabled>, default is enabled
Ireq <#>, default is 4 for COM1 and COM3,
          default is 3 for COM2 and COM4 
MemBase <#>, default is 0xD4000
MemSize <#>, default is 0x1000
MemWidth <8|16>, default is 8
MemWindow <enabled|disabled>, default is disabled
Messages <enabled|disabled>, default is disabled
PrimaryInt <enabled|disabled>, default is enabled
Socket <#>, default is 0

The Adapter switch identifies the number of the host PCMCIA controller. 
Normally, you should use the default parameter 0.

The Aux switch selects the COM port for Port B of the Dual I/O Card. 
Valid parameters are 2, 3, 4, or 0 for automatic. The 0 parameter, which
is the default, selects the COM immediately above the one assigned by 
the Com switch to Port A. For example, if you have only COM1 installed 
in your notebook and Port A of the Dual I/O Card is assigned COM2, the 
enabler will by default address Port B as COM3.

The AuxInt switch determines whether Port B of the Dual I/O Card will 
generate interrupts. The default parameter is enabled, which allows Port
B to generate interrupts. If you wish to communicate with Port B by 
polling rather than via interrupts, you should set this switch to 
disabled. The PrimaryInt switch controls the same function for Port A.

The ClockDiv switch sets the actual baud rate generated by the Dual I/O
Card to double the nominal baud rate. Thus, 115.2 Kbps becomes 230.4 
Kbps, etc. The default parameter is disabled, which uses the nominal 
baud rate. The ClockDiv switch is useful when two Dual I/O Cards talk 
with one another via a program that offers no option for a high baud 
rate. If, for example, you have two Dual I/O Cards communicating with 
one another using LapLink, you can set both copies of LapLink to 115.2 
Kbps (the nominal rate). You can then enable the ClockDiv switch for 
both cards. They will run LapLink at an actual rate of 230.4 Kbps.

The Com switch selects the COM port for Port A of the Dual I/O Card. 
Valid parameters are 1, 2, 3, 4, or 0 for automatic. The 0 parameter, 
which is the default, selects the next available COM port. For example, 
if you have only COM1 installed in your notebook, the enabler will by 
default address Port A as COM2.

By selecting a specific COM port you will either force Port A of the 
Dual I/O Card to that COM port or, if the port is already occupied, 
cause an error message. Port B is set by the Aux switch.

The Com switch automatically sets the IoBase (IO base address) and Ireq 
(interrupt request) switches to comply with the DOS convention for 
serial ports, as shown below:

COM Port     IoBase      Ireq
    1        0x3F8        4
    2        0x2F8        3
    3        0x3E8        4
    4        0x2E8        3

If you configure the Dual I/O Card to use a non-standard IO base or 
interrupt, some application software may not work.

The File switch, described in the previous section, directs the enabler 
to scan a file for configuration data. If a file name is given, that 
file will be scanned. If only a directory is given, the enabler will 
look for a file called SOCKETIO.INI in that directory. Giving no drive 
or file name will cause the enabler to search the default directory for 
SOCKETIO.INI. This is also what the enabler will do if the File switch 
is not invoked.

The Host switch identifies the PCMCIA host controller used by your 
notebook. The default is for the enabler first to look for the presence 
of Card Services, then Socket Services. These are host independent. (You
can override this default with the IgnoreCS and IgnoreSS switches.) The 
enabler then defaults to the Intel 82365SL host controller, referred to 
as PCIC. This type of host controller is used in most new notebooks.

The HostBase switch tells the enabler the base address of the PCMCIA 
host controller. The enabler sets default values of this parameter 
correctly (usually to 0x3E0). You should not change this setting.

The IgnoreCS switch, which takes no parameters, tells the enabler to 
ignore Card Services and to communicate directly with the PCMCIA host 
controller identified by the Host switch. If the enabler detects Card 
Services and you have not used the IgnoreCS switch, then any parameter 
used with the Host switch will generate an error.

The IgnoreSS switch, which takes no parameters, tells the enabler to 
ignore Socket Services and to communicate directly with the PCMCIA host 
controller identified by the Host switch. If the enabler detects Socket 
Services and you have not used the IgnoreSS switch, then any parameter 
used with the Host switch other than SS1 will generate an error.
The IoBase switch sets the I/O base address for Port A of the Dual I/O 
Card. You can use any valid I/O address. The default value is the I/O 
base address that corresponds to the Com switch, but you can use this 
switch to override this choice. If you select a value other than the 
default value, some applications may not work properly. In most cases 
you should not use this switch.

The IoSize switch tells the enabler the length in bytes of the I/O 
window for both ports of the Dual I/O Card. The enabler sets default 
values of this parameter correctly (usually to 0x8). Do not change this 
setting.

The IoWidth switch tells the enabler the width in bits of the I/O path 
for both ports of the Dual I/O Card. The only valid parameters are 8 and
16. The default value is 8. Do not change this setting.

The IoWindow switch tells the enabler whether to set up your Dual I/O 
Card to run as an I/O-mapped device. The default is to run I/O mapped 
(also invoked by the parameter enabled). The parameter disabled tells 
the enabler not to run as an I/O device. If the MemWindow switch is 
enabled in conjunction with the IoWindow switch, then the Dual I/O Card 
can be run I/O-mapped, memory-mapped, or both. In most circumstances, 
you should use the default values.

The Ireq switch sets the Interrupt Request line that will be used with 
the Dual I/O Card. Any decimal number from 1 through 15 is valid. The 
default value is the Interrupt Request line that corresponds to the Com 
switch, but you can use this switch to override this choice. Contact 
your notebook's manufacturer to find out what Interrupt Request lines 
are available on your notebook.

The MemBase switch sets the Dual I/O Card base memory address in 
hexadecimal. The default value is 0xD4000. The highest legal value is 
0xEC000. You should use even address increments of 16Kb (e.g., 0xD8000, 
0xDC000, etc.). In most cases, this memory window will only be used when
the enabler first runs. After that, the memory can be shared by other PC
Card devices. Normally, you should exclude a 4Kb block of memory 
starting at the MemBase address from your memory manager. You should use
the default value of both these switches if possible.

The MemSize switch sets the size of the Dual I/O Card data buffer. This
is only useful when you use the Dual I/O Card as a memory-mapped device.
The highest legal value is 0x10000 (64Kb). The default value is 0x1000
(4Kb). This switch is ignored unless the MemWindow switch is enabled. In
most cases you should not use the MemSize switch.

The MemWidth switch tells the enabler the width in bits of the Dual I/O
Card memory path. The only valid parameters are 8 and 16. The default 
value is 8 and should not be changed.

The MemWindow switch tells the enabler whether to set up your Dual I/O 
Card to run as a memory-mapped device. The default is not to allow it to
run memory-mapped (also invoked by the parameter disabled). The 
parameter enabled tells the enabler to allow the Dual I/O Card to run as
a memory device. If the IoWindow switch is enabled in conjunction with 
the MemWindow switch, then the Dual I/O Card can be run memory-mapped, 
I/O-mapped, or both. If you run the Dual I/O Card memory-mapped, it will
not appear to your application software as a conventional COM port, so 
in most cases you should not use this switch.

The Messages switch turns on debugging messages. The default parameter 
is disabled, which suppresses debugging messages. The enabled parameter 
allows messages to be displayed on your notebook screen. You should not 
enable debugging messages under normal operation.

The Messages switch turns on debugging messages. The default parameter 
is disabled, which suppresses debugging messages. The enabled parameter 
allows messages to be displayed on your notebook screen. You should not 
enable debugging messages under normal operation.

The PrimaryInt switch determines whether Port A of the Dual I/O Card 
will generate interrupts. The default parameter is enabled, which allows
Port A to generate interrupts. If you wish to communicate with Port A by
polling rather than via interrupts, you should set this switch to 
disabled. The AuxInt switch controls the same function for Port B.

The Socket switch identifies the physical PCMCIA slot (also called a 
socket) in which you have inserted your I/O Card. The default is 0. You 
should change this to a 1 if your notebook has two card slots and you 
have installed the Dual I/O Card in slot 1. The lower slot is usually 
slot 0, and the higher slot is usually slot 1. If your notebook has more
than two slots, you can use a higher number with this switch.


USING STARTDIO.BAT TO RUN THE ENABLER
The Dual I/O Card Installation Disk includes a BAT file, 
STARTDIO.BAT. The default STARTDIO.BAT file consists of this line:

c:\socketdo\enabledo.exe file=c:\socketdo\socketio.ini

You can initialize the Dual I/O Card by typing:

STARTDIO

If you have not inserted the Dual I/O Card in the correct Socket slot, 
you will receive an error message. Otherwise, you should see a message 
that tells you what COM ports have been assigned to the card:

Socket DIO Enabler Version 9/30/97
Copyright (c) 1997 Socket Communications Inc.
Card Initialized as COM2
and as COM3
Socket DIO enabled

If you remove the Dual I/O Card from its slot after running the enabler,
run the enabler again before using the card.

If you run the STARTDIO.BAT file from your AUTOEXEC.BAT file, make sure
the Dual I/O Card is inserted in your notebook when you boot or you will
see error messages and you will have to run the direct enabler again.


WARNING!
Any time you change your CONFIG.SYS file, you take the risk that your 
computer will no longer boot properly. This is true no matter how 
trivial the change may seem. It is always possible to make a 
typographical error that sends your notebook into an endless loop 
whenever you boot. To be safe, make sure you have some secondary means 
of booting your notebook that will bypass the CONFIG.SYS file. The 
simplest way to do this is to have a bootable floppy diskette. Please 
read this paragraph again (this is an example of an endless loop but it 
is also good advice).


SECTION 3: SOCKETIO.INI

OVERVIEW
The SOCKETIO.INI file can be shared by multiple Socket PCMCIA cards so 
that you can easily manage how DOS resources are allocated to various 
cards. The parameters for each Socket PCMCIA card must be listed under a
specific header associated with the card. In the case of the Dual I/O 
Card, this header is [SOCKETDIO]. This appendix describes how the 
SOCKETIO.INI file operates.


DEFAULT SEARCH PATHS
By default, the ENABLEDO enabler automatically searches the default 
directory for a configuration file named SOCKETIO.INI. With the File 
switch, you can specify a different directory and/or a different file to
search. If you specify a directory but not a file name, the enabler will
look in that directory for a file called SOCKETIO.INI. If you specify a 
filename but not a directory, the enabler will scan the default 
directory for that file.


THE SYNTAX OF SOCKETIO.INI
If the configuration file has the Dual I/O Card header [SOCKETDIO], the
enabler will accept all valid configuration parameters that appear after
the header. If no configuration file is found, the enabler program will
use default parameters unless other parameters are specified in the 
enabler command line. If the Dual I/O Card header is not found, the 
enabler will ignore the configuration file.

The following command line will cause the enabler to scan the file 
SOCKTEST.INI in the C:\SOCKETDO subdirectory:

ENABLEDO File = C:\SOCKETDO\SOCKTEST.INI

Under most circumstances, it is advisable to use the default directory 
SOCKETDO and the default configuration file name SOCKETIO.INI.

Aside from the header, the syntax for entries in the SOCKETIO.INI file 
is the same as for command-line options for the ENABLEDO.EXE enabler. 

Switches may be separated from their parameters by spaces, equal signs 
(=), or both.

Upper and lower case letters are treated as the same character. Leading 
indents and tabs are ignored.

Blank lines between the header and switches are ignored.

The enabler will stop scanning the configuration file once it either 
encounters an invalid switch or comes to the end of the file.

Below are valid entries in a configuration file:

[SOCKETDIO]

Host = PCIC 
Socket = 0
Com = 2
Aux = 3
Ireq = 3
AuxInt = enabled
MemBase = 0xD4000
MemSize = 0x1000
