nelson@SUN.SOE.CLARKSON.EDU (Russ Nelson) (08/01/89)
Release 4.x of the Clarkson packet driver collection is now available. This should be considered an alpha release. Do not use this software unless you can deal with any bugs that might appear. The READ.ME file appears below. Major changes (all changes are listed below): BICC Data Networks' ISOLAN 4110 driver added. WD8003ET/A support added to the WD8003E driver. NI5210 initialization bug fixed. Packet driver tracer added. Availability The Clarkson collection of packet drivers is available by FTP, by archive-server, and by modem. FTP: sun.soe.clarkson.edu:/pub/ka9q/alpha.arc grape.ecs.clarkson.edu:/e/tcpip/alpha.arc Archive-server: Send mail to archive-server@sun.soe.clarkson.edu and put the following command as the body of your message: send ka9q alpha01 Repeat for alpha02, alpha03, alpha04, and alpha05. Combine the five parts and unarchive it. Modem: Call the Clarkson Heath User's Group's BBS: (315)268-6667, 8N1, 1200/2400 Baud, 24 hours. Change to file area 24 and download alpha.arc. Opus: 260/360 in the Nodelist. Alpha.arc is file requestable. Read.me: Release 4.0 of the Clarkson packet drivers If you are a user, all you need do is locate the correct packet driver for your interface, and read DRIVERS.DOC. Versions: If you already have an older packet driver, you may wish to upgrade. You should base this decision on the contents of the "Changes..." section below. The major version (currently 4) goes up with every release. The minor version (.x, different for every driver) goes up with every released change. If the minor version hasn't changed, then chances are very good that no significant bugs have been introduced. The device-dependent part of every one of the drivers below has been changed, if only to add do-nothing stubs for receive mode setting and multicasting. 3C501.ASM version equ 0 3C503.ASM version equ 2 3C523.ASM version equ 1 GENERIC.ASM version equ 0 ISOLAN.ASM version equ 1 NI5010.ASM version equ 0 NI5210.ASM version equ 2 SLIP8250.ASM version equ 2 WD8003E.ASM version equ 3 Contents: 3C501.ASM Device dependent 3COM 3C501 code. 3C501.COM Executable for a packet driver for the 3COM 3C501. 3C503.ASM Device dependent 3COM 3C503 code. 3C503.COM Executable for a packet driver for the 3COM 3C503. 3C523.ASM Device dependent 3COM 3C523 code. 3C523.COM Executable for a packet driver for the 3COM 3C523. CHKPKT.ASM Source of the packet driver installation checker. CHKPKT.COM Executable of the packet driver installation checker. COPYING The Free Software Foundation's General Public License. DEFS.ASM Definitions and macros. DRIVERS.DOC User documentation. DUMP.C Source of the trace dumper. DUMP.EXE Executable of the trace dumper. GENERIC.ASM Device dependent generic code (a skeleton only). HEAD.ASM Resident device independent generic code. ISOLAN.ASM Device dependent BICC Isolan 41xx code. ISOLAN.COM Executable for a packet driver for the BICC Isolan 41xx. MAKEFILE Makefile. Uses tasm and tlink, but MS may work. NI5010.ASM Device dependent Interlan NI5010 code. NI5010.COM Executable for a packet driver for the Interlan NI5010. NI5210.ASM Device dependent MICOM-Interlan NI5210 code. NI5210.COM Executable for a packet driver for the MICOM-Interlan NI5210. PACKETQA.TXT Questions from R. Nelson and Answers from jbvb@vax.ftp.com PACKET_D.108 Packet driver spec version 1.08 READ.ME This file. README.503 Bob Clements' README file for the 3c503. README.WD8 Jan Engvald's README file for the WD8003ET/A. SLIP8250.ASM Device dependent SLIP driver using IBM-PC 8250. SLIP8250.COM Executable for a SLIP packet driver for the IBM-PC 8250. STAT.C Source of the statistics printer. STAT.EXE Executable of the statistics printer. SUPPORT.TXT Who supports the packet driver spec. TAIL.ASM Non-resident device independent generic code. TERMIN.ASM Source of the packet driver terminator. TERMIN.COM Executable of the packet driver terminator. TRACE.ASM Source of the packet driver tracer. TRACE.COM Executable of the packet driver tracer. WD8003E.ASM Device dependent Western Digital WD-8003e code. WD8003E.COM Executable for a packet driver for the Western Digital WD-8003e. Editor's note: I created the infrastructure for the packet drivers. All of the device dependent portions were written by other people. The best term to describe what I do is "Editor and publisher", because I perform a function similar to that served in the literary world. Please direct bug reports to me. Chances are that the bug is in my code anyway. If not, I'll forward the bug report on to the device driver author. As with all free software, no guarantee of support is given. Russell Nelson, Editor of the Clarkson packet drivers. nelson@clutx.clarkson.edu, nelson@clutx.bitnet, 70441.205@compuserve.com Changes from version 3.0 to 4.0 of the drivers: Russell Nelson added code to enable interrupts in the body of the packet driver. Denis DeLaRoca added hardware handshake to the SLIP8250 driver. John Grover optimized the SLIP8250 driver to work at 38.4 Kbps. Russell Nelson added some sanity checking to slip8250 to warn the user about possible incorrect parameters. Bob Clements added a switch to select thick or thin Ethernet in the 3c503. Russell Nelson found a minor bug in NI5210 that caused it to fail to initialize sometimes. Thanks to everyone who reported it. Dan Lanciani found a race condition in the 80586 code common to the NI5210 and 3c523 drivers. Russell Nelson split out the 82586 code from the NI5210 and 3c523 drivers into a single file. Russell Nelson added memory address checking to NI5210. Glen M. Marianko devised a method for determining the memory size of the NI5210 automagically. Jan Engvald enhanced the packet driver code for Western Digital Ethernet cards to handle the micro channel version WD8003ET/A. Jan Engvald enhanced TAIL.ASM to return error codes to DOS. Jan Engvald enhanced HEAD.ASM to be aware of running on a MicroChannel bus. Rainer Toebbicke wrote the BICC Data Networks' ISOLAN 4110 ethernet driver. Russell Nelson wrote the packet driver tracer and dumper (trace.com and dump.exe). Russell Nelson added support for set_rcv_mode, get_rcv_mode, set_multicast_list, and get_multicast_list to the infrastructure. It is up to the individuals who wrote the individual drivers to add the device-dependent support. Changes from version 2.0 to 3.0 of the drivers: GNU General Public License adopted. The restriction on commercial usage prevented some companies from distributing the packet drivers. This is entirely my idea, so send any comments to nelson@clutx.clarkson.edu. 3c523 driver added, thanks to Dan Lanciani (ddl@harvard.edu). Gregg Stefanik (wstef@eng.clemson.edu) is working on a 3c505 driver. Don't bug him about it unless you're willing to be a alpha tester. User documentation added (DRIVERS.DOC). Brad Clements (no relation to Bob Clements) fixed the NI5210 driver so that it will work with a MTU of 1500. The NI5210 now checks for shorts and opens before it starts up, thanks to Brad. All memory-mapped packet drivers now check the packet length in send_pkt to ensure that too-long packets get trapped. All packet drivers will work with MTUs of 1500 (plus 14 bytes of Ethernet header). Deborah Swanberg noticed that attach_type was returning NO_CLASS when it meant to return NO_TYPE. She also noted that packet drivers weren't returning unique handles. This is only a problem with Phil Karn's code, as his code directs *every* packet driver to the same receiver routine. With non-unique handles, it was impossible to tell which packet driver was upcalling the receiver. Unique handles are now generated, based on the starting segment of the driver. The latest version of Karn's code uses different receiver routines, so the code to implement this will eventually go away. Tail.asm now prints the Ethernet address of the interface (if it is an Ethernet class device) Micom has sold Interlan, and Racal has bought it, so perhaps the NI5210 is now the Racal-Interlan NI5210? If anyone is interested in using the Zenith Z-100 with a SLIP packet driver, please send me (Russell Nelson) mail. I have it partially written, but will probably never use it myself. WD8003E and 3c503 sped up slightly -- stole movemem from NI5210. Changes from version 3 to 2.0 of the drivers: Version numbering now changed. If the skeleton changes, the major version is incremented and all the minor versions are reset to zero. Support for version 1.08 of the packet driver spec included. Bob Clements' 3c503 driver added. See README.503. Some comments improved. BAD_COMMAND checking code fixed. cld instructions added to ensure that DF=0. NI5210 sped up slightly -- look at movemem in ni5210.asm for an especially fast routine to move memory around. Changes from version 2 to 3 of the drivers: SLIP8250 can now be one of three classes: SLIP, AX.25, and KISS. Tail.asm now checks for a packet driver already at the given interrupt. Tail.asm now echoes its arguments in hex and decimal. Tail.asm will close stdout so that a file handle won't be used up in case the user redirects stdout to NUL. Head.asm now supports driver termination. Termin.com added to terminate a driver. Head.asm now does a stack swap to avoid pushing too many things when interrupting MS-LOSS. Changes from version 1 to 2 of the drivers: !! Arguments are now in decimal by default !! Use a 0x prefix for hex. DEFS.ASM created. The loadport macro improved. SLIP8250 driver added, thanks for a C version from Phil Karn. I've tried to put some 16550 support in, but I don't have one to test it with. The documentation insists the TBRE goes low when the transmit buffer is not empty, while it makes sense for it to stay high while the buffer is not full. I suspect the documentation is wrong. NI5010 driver added, thanks for a C version from Bill Doster. WD8003 driver added, by Bob Clements. Loadport macro added to WD8003 driver by Russell Nelson. Numeric arguments may now be specified in octal, decimal or hex, using the C notation. Numeric arguments can now use up to 32 bits. Source files reformatted. -- --russ (nelson@clutx [.bitnet | .clarkson.edu])|(70441.205@compuserve.com)| (Russell.Nelson@f360.n260.z1.fidonet.org)|(BH01@GEnie.com :-)