       Installation instructions for the packet driver collection




Document conventions

     All numbers in this document are given in C-style representation.
Decimal is expressed as 11, hexadecimal is expressed as 0x0B, octal is
expressed as 013.  Optional parameters are enclosed in square brackets,
like [option].




Using the packet drivers

     The packet driver must be installed prior to use.  Since each
packet driver takes only a few thousand bytes, this is best done in your
autoexec.bat.  Since the Ethernet boards typically have jumpers on
board, the packet driver must be informed of the values of these jumpers
(auto-configure is possible, but can disturb other boards).  The first
parameter is the software interrupt used to communicate with the packet
driver.  And again, because each board is different, the rest of the
parameters will be different.

     All parameters must be specified in C-style representation.
Decimal is expressed as 11, hexadecimal is expressed as 0x0B, octal is
expressed as 013.  Any numbers that the packet driver prints will be in
the same notation.  Optional parameters are enclosed in square brackets,
like [option].  If you omit an optional parameter, a default value is
used.

     Before installing the packet driver, you must choose a software
interrupt number in the range between 0x60 and 0x80.  Some of these
interrupts are used for other purposes, so your first choice may not
work.  See Appendix A for the section of Ralf Brown's interrupt list
between 0x60 and 0x80.  In most cases, 0x60 is the right choice.

     Running a packet driver with no specifications will give a usage
message.  The parameters for each packet driver are documented below.

     The -n option is used to convert IPX packets between the Ethernet
II type 8137 encapsulation used by BYU's PDSHELL IPX interface code and
the 802.3-style encapsulation normally used on Ethernet by Netware
servers, shells and boot PROMs.  It will also convert incoming type 8137
packets to type 8138 so that Netware doesn't get confused.

     The -d option is used to delay the initialization of the Ethernet
card until the packet driver is used for the first time.

     The -w switch is used for Windows.  Install the packet driver
before running MS-Windows.  This switch does not prevent Windows from
swapping your network application out of memory, it simply detects when
that has happened, and drops the packets on the floor.




Invisible Ethernet-8

     usage:  inveth8 [-n] [-d] [-w] packet_int_no [int_no [io_addr]]

     The Invisible Ethernet-8 driver requires two additional parameters
-- the hardware interrupt number and the I/O address.  The defaults are
3 and 0x300.

     This is a stand-alone packet driver that you can run without
loading NET/30.  If you want to run a packet driver at the same time you
are running NET/30, you need to use the tbpd driver instead of inveth8.




Invisible Ethernet-16

     usage:  inveth16 [-n] [-d] [-w] packet_int_no [int_no [io_addr]]

     The Invisible Ethernet-16 driver requires two additional parameters
-- the hardware interrupt number and the I/O address.  The defaults are
11 and 0x300.

     This driver supports both boards with 16K RAM and boards with 64K
RAM.

     This is a stand-alone packet driver that you can run without
loading NET/30.  If you want to run a packet driver at the same time you
are running NET/30, you need to use the tbpd driver instead of inveth16.




Invisible Ethernet/A

     usage:  invetha [-n] [-d] [-w] packet_int_no [int_no [io_addr]]

     The Invisible Ethernet/A driver requires two additional parameters
-- the hardware interrupt number and the I/O address.  The defaults are
11 and 0x5400.

     This driver supports both boards with 16K RAM and boards with 64K
RAM.

     This is a stand-alone packet driver that you can run without
loading NET/30.  If you want to run a packet driver at the same time you
are running NET/30, you need to use the tbpd driver instead of invetha.




Invisible Ethernet 1000 (NE1000-compatible)

     usage:  ne1000 [-n] [-d] [-w] packet_int_no [int_no [io_addr]]

     The ne1000 driver requires two additional parameters -- the
hardware interrupt number and the I/O address.  The defaults are 3 and
0x300.

     This is a stand-alone packet driver that you can run without
loading NET/30.  If you want to run a packet driver at the same time you
are running NET/30, you need to use the tbpd driver instead of ne1000.




Invisible Ethernet 2000 (NE2000-compatible)

     usage:  ne2000 [-n] [-d] [-w] packet_int_no [int_no [io_addr]]

     The ne2000 driver requires two additional parameters -- the
hardware interrupt number and the I/O address.  The defaults are 2 and
0x300.

     This is a stand-alone packet driver that you can run without
loading NET/30.  If you want to run a packet driver at the same time you
are running NET/30, you need to use the tbpd driver instead of ne2000.




Invisible Ethernet 2/A (NE/2-compatible)

     usage:  ne2 [-n] [-d] [-w] packet_int_no

     The ne/2 driver requires no additional parameters.

     This is a stand-alone packet driver that you can run without
loading NET/30.  If you want to run a packet driver at the same time you
are running NET/30, you need to use the tbpd driver instead of ne2.




TransBIOS Packet Driver

     usage:  tbpd [-n] [-d] [-w] packet_int_no

     The TransBIOS packet driver requires no additional parameters.  It
uses TransBIOS to send and receive packets.

     You need to start NET/30 before loading the tbpd driver.  This
driver is hardware-independent, since TransBIOS controls the hardware,
and tbpd just calls TransBIOS.  Refer to TBPD.TXT for additional
information.




TERMIN

     usage:  termin [-s] packet_int_no

     The specified packet driver is terminated, and its memory
recovered.

     The s-option (stop) is used to prepare for termination.  The in-use
flag for all handles are cleared.  This prevents upcalls to handlers
that are to be removed and also makes it possible to later terminate the
packet driver even though handles are not released.




                               Appendix A

     Interrupt usage in the range 0x60 through 0x80, from Ralf Brown's
interrupt list.



60 -- -- reserved for user interrupt
60 -- -- FTP Driver - PC/TCP Packet Driver Specification
60 01 FF FTP Driver - DRIVER INFO
60 02 -- FTP Driver - ACCESS TYPE
60 03 -- FTP Driver - RELEASE TYPE
60 04 -- FTP Driver - SEND PACKET
60 05 -- FTP Driver - TERMINATE DRIVER FOR HANDLE
60 06 -- FTP Driver - GET ADDRESS
60 07 -- FTP Driver - RESET INTERFACE
60 11 -- 10-NET - LOCK AND WAIT
60 12 -- 10-NET - LOCK
60 13 -- 10-NET - UNLOCK
60 20 -- FTP Driver - SET RECEIVE MODE
60 21 -- FTP Driver - GET RECEIVE MODE
60 24 -- FTP Driver - GET STATISTICS
61 -- -- reserved for user interrupt
62 -- -- reserved for user interrupt
63 -- -- reserved for user interrupt
64 -- -- reserved for user interrupt
65 -- -- reserved for user interrupt
66 -- -- reserved for user interrupt
67 -- -- LIM EMS
         ...
67 DE 00 Virtual Control Program Interface - INSTALLATION CHECK
         ...
68 01 -- APPC/PC
         ...
69 -- -- unused
6A -- -- unused
6B -- -- unused
6C -- -- system resume vector (CONVERTIBLE)
6C -- -- DOS 3.2 Realtime Clock update
6D -- -- VGA - internal
6E -- -- unused
6F -- -- Novell NetWare - PCOX API (3270 PC terminal interface)
6F 00 -- 10-NET - LOGIN
         ...
70 -- -- IRQ8 - AT/XT286/PS50+ - REAL-TIME CLOCK
71 -- -- IRQ9 - AT/XT286/PS50+ - LAN ADAPTER 1
72 -- -- IRQ10 - AT/XT286/PS50+ - RESERVED
73 -- -- IRQ11 - AT/XT286/PS50+ - RESERVED
74 -- -- IRQ12 - PS50+ - MOUSE INTERRUPT
75 -- -- IRQ13 - AT/XT286/PS50+ - 80287 ERROR
76 -- -- IRQ14 - AT/XT286/PS50+ - FIXED DISK
77 -- -- IRQ15 - AT/XT286/PS50+ - RESERVED
78 -- -- not used
79 -- -- not used
7A -- -- Novell NetWare - LOW-LEVEL API
7A -- -- AutoCAD Device Interface
7B -- -- not used
7C -- -- not used
7D -- -- not used
7E -- -- not used
7F -- -- HDILOAD.EXE - 8514/A VIDEO CONTROLLER INTERFACE
7F -- -- HLLAPI (High-Level Language API)
80 -- -- reserved for BASIC
