TECHNICAL BULLETIN LANAI/SETTINGS LANtastic AI 08.05.91 LANtastic AI and setting IRQ, IOBASE and RAMBASE Page 1 of 3 This bulletin should replace all other notes generated from this office to date. The following information is based on in-house testing and customer support of LANtastic AI. If you are not a registered LANtastic owner, your questions should be directed to our technical sales staff at (602) 293-6363. Any questions or comments on this bulletin may be forwarded by FAX (602) 293-8065 or mailed to : Artisoft Inc., 575 East River Road, Tucson, AZ., 85704, ATTN: LANtastic AI Support. RUNNING LANTASTIC AI AND SELECTING UNIQUE IRQ, IOBASE AND RAMBASE SETTINGS There are three things that have to be uniquely selected for the adapter to use, to let it co-exist with the other components in the computer: the IRQ (Interrupt ReQuest line), the IOBASE (beginning I/O port address), and the RAMBASE (the starting address of high memory usage). If any other component is using the same setting for any one of these parameters, this is what is called a conflict. It is imperative that you avoid conflicts with any of these three parameters. The signs of a conflict are: a) The device driver (i.e. WD8003 or NEX000) will lockup the computer. b) The device driver will return an error message telling you that there is a conflict with a certain parameter. c) Even if neither of the above occur, there may still be an error at the time of logging in: "Cannot Locate Network Name", which would be returned after ESCaping out of the "Waiting for server to come on-line" message. d) There would be some sort of problem in using the network for larger amounts of traffic: Executing a program from the server, or COPYing large amounts of files. It could give an error or just lock up the computer with a bleeping noise. (It's a dual tone 'bleep', with the low tone first, and the high tone second, almost as if it were asking a question.) The IRQ is how the network adapter can get in touch with the computer's CPU. It is akin to tapping the CPU on it's shoulder. Thus the name: Interrupt ReQuest line. The CPU then pays attention to the interruption. It will 'branch' to a section of code that has the instructions for what to do when it is interrupted on a certain IRQ line. If there is any other use of the same IRQ by a different component in the computer, the instructions will not be appropriate, the CPU will get confused, and will simply be unable to do anything. Thus the 'lockup'. The IOBASE is the beginning address of which I/O port to use. It can be thought of as a tunnel between the network adapter and the CPU through which information flows. The only way for external events (things happening on the bus) to be brought into the computer is through I/O ports. So, if there is any other use of that tunnel by a different component, the CPU would get confused, and would most likely 'lockup' the computer. An IOBASE conflict can also show itself at the time of running the device driver. It could return an error saying that the adapter cannot be found. The RAMBASE is a bit more involved. DOS can formulate addresses for RAM from 0-1 Megabyte (1Mb). There is a special range of addresses that do not have any physical RAM associated with them. This range of addresses extends from 640K to 1Mb. These are hexadecimal numbers, and will thus have letters in the CPU has to know how to get to the information; it has to know how to address the information. Thus, a contiguous section of these unused addresses in the high memory area can be mapped to the onboard RAM so that the CPU can get access to the information. This is the RAMBASE setting. While IRQ and IOBASE conflicts most often result in a 'lockup', a RAMBASE conflict could also show itself as a disconnect during increased use of the adapter; as the memory locations are filled up by larger and heavier amounts of network traffic. If the conflict were with the video adapter, you could see some sort of screen corruption: 'garbage' characters, or funny colors, or a lock up when the screen changes. There are several different components in the computer that use high memory. The largest user of high memory is the video adapter (VGA, EGA, and Hercules). The actual addresses used vary greatly from video standard to video standard, manufacturer to manufacturer, and from one mode of programming of the video adapter to another: i.e. text vs graphics mode. It is important to identify the range used by your video adapter by consulting the documentation that came with it, talking to your vendor, or calling the manufacturer. The hard disk controller also uses high memory to map to it's onboard ROM chip, wherein the instructions for it's use are kept. If any of you have done a low level format of a hard drive, and have used DEBUG to issue the command "g=c800:5", you are telling DEBUG to go to the address location C800, offset 5, and execute the code contained there. The computer itself uses the F000-FFFF range for it's system BIOS. That is, the addresses F000-FFFF are mapped to the mother board's ROM chip. Quite often, 386 machines have a 'shadow ram' option in the CMOS setup in the E000-EFFF range. This is where information from the video adapter's relatively slow ROM chip is read into the faster motherboard RAM (RAM that is beyond 1Mb), and then has the E000 range of addresses mapped to it. This provides faster video response. There can be software-based usage of high memory, too. Programs like QEMM or 386-to-the-MAX will use high memory for Expanded Memory Specification (EMS) memory or to load network software or other programs into that high memory addressing range. IBM/MS-DOS 5.0 also allows the use of high memory (Upper Memory Blocks, according to Microsoft) to load DOS or other programs high. If any of these products are involved, you will want to deactivate them, temporarily, just to see what is actually going on. It is always prudent to strip the machine in hardware (taking out non-essential adapters), and software (REName the CONFIG.SYS and AUTOEXEC.BAT files and reboot), to see if any of the things you have taken out were involved in the problem. If the problem goes away after doing these things, then you would want to build up the complexity of the system, one step at a time, until you find out what step re-introduces the problem. There are two approaches to finding available IRQ, IOBASE and RAMBASE setting for the network adapter to use. Either: a) identify all the components in the computer, and the IRQ, IOBASE and RAMBASE that they use, to assign something else to the network adapter. OR b) systematically cycle through the available IRQ, IOBASE and RAMBASE options, until you stumble upon an available combination. It is important to have the systematic approach, so that you do not create a second conflict, alleviate the first one, and still be saddled with the second one. The selection of IRQ, IOBASE and RAMBASE invariably is a two step process: 1) Tell the adapter what combination you want. 2) Tell the software (device driver) what combination you want to use.