
		 User documentation for the packet driver collection


	  The purpose of the packet drivers

	       Every PC Ethernet board is different.  The 3c501 was, for
	  some time, the most popular board, and would have become the
	  defacto standard but for its poor performance.  By the time 3Com
	  created a board with acceptable performance, so had many others,
	  and 3Com lost its lead.  FTP Software, in order to support each
	  of these boards without losing its collective mind, created the
	  Packet Driver Spec (PDS).

	       Some boards use DMA, programmed I/O, shared memory, and/or
	  bus mastering.  The PDS masks the differences between these
	  boards by defining a software interface to the boards.  This
	  software interface is a software interrupt in the range between
	  0x60 (hex) and 0x80.


	  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.

	  Using the packet drivers

	       The packet driver must be installed prior to use.  Since
	  each packet driver takes only approximately 2K 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.

	  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.

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

	  The -w switch is used for Windows.  Install the packet driver
	  before running MS-Windows.

	  The n option converts between Ethernet type 8137 and Novell
	  ISO-like packets. This is required if you use a standard boot
	  PROM from the network card manufacturer and use the packet
	  driver IPX from BYU. But as an added feature you can also use
	  it to run packet drivers without ECONFIGing the Novell server,
	  which is not always possible.

	  The d option delays initialization and is the elegant solution
	  to make PROM booting work. Because the initialization code must
	  be kept after loading, the size of the packet driver will
	  increase in this case.

Typical AUTOEXEC.BAT for DOS 3.x and Novell Netware PROM boot:

  echo off
  prompt $p$g
  keybsv (or any other TSRs you need)
  CZ1000 -d -n 0x7c 3 0x280
  ipx
  net3
  rem < - - - - - - - - - - - this is a long line of spaces - - - - - - - >
  rem < - - - - - - - - - - - this is a long line of spaces - - - - - - - >
  f:
  login

	  Also copy the above AUTOEXEC.BAT to the SYS:LOGIN directory.

	  SuperLAN-1

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

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


	  SuperLAN-2

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

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

				     Appendix A
		   Interrupt usage in the range 0x60 through 0x80



	  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

