AI-LANBIOS Low-Level Driver For AMD-Compatible Adapters (readme.txt) -------------------------------------------------- (C) Copyright 1993 ARTISOFT, Inc. (Revised 3/2/93) INTRODUCTION ============ The AM21.EXE low-level AI-LANBIOS driver allows you to use your Novell NE2100, NE1500T or AMD 2100 compatible adapters in a LANtastic network. This includes AMD's PCnet-ISA architecture which is compatible with the 2100. In order for a Novell-compatible NE2100/1500T adapter to function with the LANtastic Network Operating System (NOS), you must first install the adapter as instructed in your adapter installation guide, then run the supporting software (AM21.EXE and AILANBIO.EXE). AM21.EXE communicates with the adapter, while AILANBIO.EXE provides high-level communications across the local area network. Because of this, you cannot run any network software until after you load AM21.EXE and AILANBIO.EXE. (Note: For information on running AILANBIO.EXE, refer to AILANBIO.DOC on your LANtastic driver diskette.) AM21.EXE V4.0 ============= There are command line switches that you can use when you run AM21.EXE and AILANBIO.EXE. These switches allow you greater flexibility in using these programs. For information on the AILANBIO.EXE command line options refer to AILANBIO.DOC on your LANtastic driver disk. For information on AM21.EXE command line switches, refer to "AM21.EXE COMMAND LINE OPTIONS" in this file. RUNNING AM21.EXE ================ The syntax for running AM21.EXE is AM21[switches . . . ] [ ; comment] where "switches" denotes any optional command line switches. If you are using more than one switch in a command line, use a space or a forward slash (/) to separate the arguments. If a switch takes a value (such as when you designate the DOS multiplex number with the MPX= switch) the switch must be followed by an equal sign (=) or a colon (:). All switch values are checked to make sure they are valid. Illegal values produce error messages. These are valid switch formats: SWITCH /SWITCH SWITCH:VALUE /SWITCH=VALUE You would use one of the first two formats for a switch that does not take a value. For example: AM21/HELP You would use the third or fourth formats for a switch that takes a value. Such as: AM21/MPX=D7 AM21.EXE COMMAND LINE OPTIONS ============================= The valid AM21.EXE switches appear below. The letters "ddd" denote that you must provide a decimal number. The letters "hh" denote a required hexadecimal value. Values enclosed in brackets "[]" indicate default values if the switch is omitted. Values after the brackets denote the valid range of variables for the switch. ---------- @switch-file This option specifies that further switches are to be taken from a switch file. Any switches after the @switch-file name will be used, and the switch settings take precedence over any settings in the switch file. You may invoke switch files from within switch files as often as you wish. The file should contain valid switches and may contain comment characters (;) at the beginning of each line or after switches. For example, AM21 @setup The file SETUP contains ; AM21 AI-LANBIOS driver setup file ; IOBASE=360 ; Use I/O port address 360 IRQ=4 ; Use interrupt request 4 VERBOSE ; Display verbose information ---------- HELP or ? This switch instructs AM21.EXE to display information about the valid command line switches, but does not install the AM21.EXE driver. For example, AM21/help AM21 ? See the messages section for a detailed description of the HELP display output. ---------- IEEE This switch causes all transmitted packets to be in the IEEE 802.3 standard instead of the XEROX format. ---------- IOBASE=hhh [300] One of the following choices: 300 320 340 360 This switch specifies the I/O base address configured on the adapter. The IOBASE switch value must match the jumper setting on the card. The default value is the same as the default factory setting on the cards. The IOBASE numbers must be in multiples of 20H. If a non-multiple is encountered, the I/O base address is rounded down to the closest address. For example, IOBASE=310 is the same as IOBASE=300. Consult your adapter installation guide for more information about setting the I/O base address on the card. ---------- IRQ=dd [5] 3-15 This switch specifies the interrupt request (IRQ) level for the board. If you have more than one adapter installed, each should have its own unique IRQ. The IRQ switch value must match the jumper setting on the card. The default value is the same as the default factory setting on the card. Consult your adapter installation guide for more information on setting IRQ jumpers on the cards. NOTE: If you have a 2100 compatible adapter, not all interrupts are supported. These adapters support only interrupts 3,4,5 and 9. ---------- DMA=d [5] 3-7 (Excluding 4) This switch specifies the DMA channel (DREQ/DACK) for the board. If you have more than one adapter installed, each should have it's own unique DREQ/DACK setting. The DMA switch value should match the jumper setting on the board. Both the DREQ and DACK jumpers must be set to the same number. The default number is the same as the default factory setting on the card. Consult your adapter installation guide for more information on setting DREQ/DACK jumpers on the cards. NOTE: DMA level 4 is used to select a special case of no DMA enabled at all. This is used to support future versions of adapters. On adapters which support DMA the selftest will fail if DMA level 4 is selected. ---------- MPX=hh [C7] C0-FF This switch specifies the DOS multiplex (MPX) number to use for communication with AILANBIO.EXE. You will need to change this value only if the default MPX number is in use by another application or NETBIOS. Multiplex numbers 00 through BF are reserved for DOS use; therefore, you must use a multiplex number between C0 and FF. ---------- PACKET_SIZE=dddd [1500] 570-1500 This switch specifies the maximum size of transmitted IEEE 802.3 packets. You may need to change this value when using certain bridges that do not support the full 1500-byte packet size. Even when you reduce the packet size, the low-level driver can still receive larger packets. ---------- RBUFS=dd [4] 2-16 (2,4,8,16) This switch specifies the number of allocated receive buffers used by AM21.EXE. Increasing this number can increase performance, but will also require the use of more memory. Receive buffers must be a power of two. Any other number will be rounded down to the nearest power of two. For example, RBUFS=7 is the same as RBUFS=4. ---------- TBUFS=dd [2] 2-8 This switch specifies the number of allocated transmit buffers used by AM21.EXE. Each transmit buffer occupies 1520 bytes, so increasing this number will increase memory usage accordingly. Increasing this number can increase performance of the network. ---------- REMOVE This switch removes AM21.EXE from memory. You must remove TSR programs in the opposite order they were loaded. For example, if you loaded AM21.EXE and then AILANBIO, you must remove AILANBIO before AM21.EXE In addition, if you have more than one invocation of AM21.EXE and AILANBIO you must use the MPX= switch on the command line to specify which copy of AM21.EXE but not (AILANBIO) that you want to unload. For example, if you load two copies of AM21.EXE and AILANBIO: AM21.EXE/MPX=C7 AILANBIO/ADAPTER=0/MPX=C7 AM21.EXE/MPX=D7 AILANBIO/ADAPTER=1/MPX=D7 To unload these copies of AM21.EXE and AILANBIO: AILANBIO/REMOVE AM21.EXE/MPX=D7/REMOVE AILANBIO/REMOVE AM21.EXE/MPX=C7/REMOVE The REMOVE option will remove the most recently run copy of AILANBIO. ---------- VERBOSE This switch causes the AM21.EXE driver to be installed and detailed information about the configuration of the AM21.EXE driver to be displayed. See the messages section for a detailed description of the VERBOSE output. ---------- XBUS This switch causes the AM21.EXE driver to extend the bus timing of a PCnet-ISA based adapter. This allows operation in certain machines that require longer bus cycles such as the Toshiba T5200 series laptops. USING MULTIPLE ADAPTERS ======================= IMPORTANT NOTE: Multiple 2100 style adapters may not operate in some machines due to the bus master architecture of the design in relation to the motherboard timing. AM21.EXE and AILANBIO.EXE communicate with each other using a DOS multiplex (MPX) number. Each AM21.EXE and AILANBIO.EXE pair supports one adapter. You will need to run an additional copy of AM21.EXE and AILANBIO.EXE for each additional adapter installed in your computer. Using command line switches, you must assign each AM21.EXE and AILANBIO.EXE pair a unique multiplex and adapter number. You must also make sure each copy of AM21.EXE has a unique IRQ line, DMA channel and I/O port address. For example: AM21 AILANBIO AM21/MPX=D7/IRQ=4/DMA=6/IOBASE=320 AILANBIO/MPX=D7/ADAPTER=1 The first invocation of AM21.EXE and AILANBIO.EXE loads into the first adapter using the default MPX number (C7), interrupt request number (5), DMA channel (5), I/O port address (300) and adapter number (0). The command line switches in the second invocation instruct the NETBIOS to load into the second card, (adapter number 1) using interrupt request 4, DMA channel 6, IOBASE 320 and DOS MPX number D7. AM21.EXE MESSAGES =================== The AM21.EXE driver produces two types of messages: Informative and Error. All error messages are preceded by the text "ERROR:" and in those cases the AM21.EXE driver is not installed. -------- MESSAGE: AI-LANBIOS AM21 driver Vn.nn - (C) Copyright 1992 ARTISOFT Inc. This message is displayed each time the low-level driver is invoked. -------- MESSAGE: ---- AM21 driver installed ---- This message is displayed after the low-level driver is successfully installed. -------- MESSAGE: ---- AM21 driver NOT installed ---- This message is displayed if the low-level driver is not installed. The driver will not be installed if HELP information is displayed or an error occurred. -------- MESSAGE: Command line /verbose IEEE 802.3 node address 00001A188085 Network packet size 1500 Allocated Rx buffers 4 Allocated Tx buffers 2 MPX interface number C7 IO base address 0300 Interrupt request (IRQ) 5 DMA channel (DREQ/DACK) 5 Packet type XEROX Bytes of memory used 11648 This message is displayed if the VERBOSE switch is specified. The values displayed specify how the low-level driver is configured. Some values may not agree with switch values specified on the command line. This will happen when you specify an IOBASE switch value that is not a proper multiple of the allowed value, as an example. -------- MESSAGE: Valid command line switches: HELP IEEE IOBASE= Range 0300 to 0360 hex IRQ= Range 3 to 15 decimal DMA= Range 3 to 7 decimal MPX= Range C0 to FF hex PACKET_SIZE= Range 574 to 1500 decimal RBUFS= Range 2 to 16 decimal TBUFS= Range 2 to 8 decimal REMOVE VERBOSE XBUS ? @ Range 0 to 2048 byte file This message is displayed when the HELP or ? switch is used. Each valid switch is listed with the acceptable range of values (if any) and the base (hex or decimal) that the numbers must be entered in. The acceptable file size range for indirect files (@) is also listed. -------- MESSAGE: AM21 not loaded You have issued the AM21/REMOVE command and do not have AM21.EXE loaded into memory. Only issue this command after the program is loaded. ------- MESSAGE: ---- AM21 removed ---- The AM21.EXE driver has been removed from memory. ------- ERROR: Can't REMOVE -- AM21 interrupts re-hooked Meaning: You have attempted to remove AM21.EXE and the interrupts are in use by another TSR, or AM21.EXE was not the last TSR loaded. Remedy: Remove any TSRs loaded after AM21.EXE. For example, if you load AM21.EXE then AILANBIO.EXE, you must first remove AILANBIO.EXE, then you can remove AM21.EXE. ------- ERROR: Installed AM21 is different version Meaning: You have loaded a version of the AM21.EXE program and attempted to remove it from memory with the /REMOVE switch. The version with which you are attempting to remove AM21.EXE is not the same version that was loaded. Remedy: Remove AM21.EXE with the same version of the program that was loaded. ------ ERROR: Cannot open indirect file - @file Meaning: The file "file" cannot be opened as an indirect file. Remedy: The file must exist before it can be used as an indirect file. ------ ERROR: Illegal character after switch name - ??????xnnnn Meaning: The switch ?????? is followed by a character other than "=" or ":" or the switch does not take a value. Remedy: Only use the characters "=" or ":" to specify switch values and do not place characters after switches that do not take values. ------ ERROR: Illegal digit in switch value - ??????=nnnn Meaning: An illegal digit (character) was encountered in the numeric switch value. Remedy: You must restrict numeric decimal values to the numbers 0-9. You must restrict hexadecimal values to the numbers 0-9 and the letters A-F. ------ ERROR: Illegal switch - ??????=nnnn Meaning: The switch ??????=nnnn is not a recognized switch. Remedy: You may only specify legal switches on the command line. ------ ERROR: MPX number hh is already in use - Try another number Meaning: The multiplex (MPX) interrupt number hh is being used by another application or low-level driver. Remedy: Try another MPX number. ------ ERROR: No network hardware found at I/O base address hhhhH Meaning: AM21.EXE did not find an adapter at the I/O port address specified on the command line. Remedy: Make sure the adapter is correctly installed and that the IOBASE command line switch corresponds to the I/O base jumper setting on the board. NOTE: This message will also appear if the DREQ jumper is missing from the adapter. ------ ERROR: Insufficient memory to load driver Meaning: Not enough free DOS memory existed to load the driver. Remedy: Remove other resident programs to free conventional memory. ------ ERROR: VDS memory allocation failed Meaning: An error occurred trying to allocate a physical DMA region. Remedy: Load driver in conventional memory or check memory manager. ------ ERROR: Adapter self test failed -- Meaning: The AM21 performs a self test when the driver is loaded and has failed. Remedy: Replace the adapter or if a PCnet-ISA type card is being installed, set the XBUS command line switch. Valid sub messages: Initialization timeout Loopback timeout Network error Transmit error Receive error Message compare error ------ ERROR: Incorrect DMA jumper setting Meaning: The jumper setting of the adapter doesn't match the value given on the command line. Remedy: Make sure the command line DMA switch matches the DREQ/DACK jumper setting of the adapter. ------ ERROR: Incorrect IRQ jumper setting Meaning: The jumper setting of the adapter doesn't match the value given on the command line. Remedy: Make sure the command line IRQ switch matches the IRQ jumper setting of the adapter. ------ ERROR: Switch value not in range - ??????=nnnn Valid range is ssss to eeee Meaning: The value nnnn is not in proper range. The value "ssss" represents the lowest acceptable value and the value "eeee" represents the highest acceptable value. Remedy: Limit your range of values to the acceptable range. TESTING AM21.EXE RETURN CODES (ERROR LEVELS) ============================================== You may test the AM21.EXE return code or error level in a batch file by using the IF ERRORLEVEL command. The following error levels are returned: 0 No error encountered. AM21.EXE driver installed 1 MPX number is in use 2 Switch error 3 No network hardware present 4 AM21 not loaded 5 Can't remove, different version loaded 6 Cannot remove, interrupts re-hooked 7 ERROR: Can't REMOVE -- AI-LANBIOS (R) still installed 9 Insufficient memory to load driver 10 Incorrect DMA jumper setting 11 Incorrect IRQ jumper setting 12 Adapter failed self test 13 VDS memory allocation failed ------------------ AMD is a registered trademark of Advanced Micro Devices, Inc. PCnet-ISA is a trademark of Advanced Micro Devices, Inc. Novell is a registered trademark of Novell, Inc.