====================================================== = = = = = Parallel Port Information System = = = = version 1.45 = = = = by = = = = Jay Lowe = = Don Schuman = = = = Parallel Technologies, Inc. = = = = = ====================================================== Version 1.45 27 Oct 1994 Reference Sites for Parallel Compuserve Home: IBMHW forum (go IBMHW) Internet Home: netlab2.usu.edu/misc ====================================================================== Parallel.Exe, v1.45, 27 Oct 1994 Parallel Technologies, Inc. Parallel Port Information Utility 10603 170th Ct NE (C) Copyright 1993-1994 Jay Lowe Redmond, WA 98052 This program may be used Lab 206-869-1136 free of charge subject to the Fax 206-869-1133 Restricted License Agreement Compuserve 76640,203 as stated below Internet jaylowe@halcyon.com ====================================================================== Parallel Port Information System Page 2 --------------------------------------------------------------------------- Front Matter ------------ IMPORTANT: This software is provided AS-IS under a license agreement stated below (see SOFTWARE LICENSE AGREEMENT). YOU ARE RESPONSIBLE for the safe usage of this program. This requires that you READ THE DIRECTIONS if you are going to use the loopback feature for IRQ detection. We are informing you of the danger of physically damaging your parallel port if you are not CAREFUL AND GENTLE when inserting the loopback wire. We strongly recommend that you follow the procedure of making a LOOPBACK EXTENSION CABLE as described below. To the best of our (extensive) knowledge, there is no electrical danger to yourself or to your system or to the parallel port, since parallel ports are designed to withstand permanent shorts across any of their pins. HOWVER WE DO NOT GUARANTEE AN OF THIS AND CAN ACCEPT NO LIABILITY since we cannot control what you or your vendor may do. Parallel.Exe, Parallel.Doc, and all of the associated components of this utility are copyrighted material and may not be reproduced, redistributed, or sold without the express written consent of Parallel Technologies, Inc, except as provided by the License Agreement. Some of the terms, names, and/or symbols used in this document are the trademarks of the companies which own them. Permission is hereby given for distribution of Parallel on a not-for- profit basis. Users may upload and share Parallel, provided it is not modified in any way. Vendors may make Parallel available via bulletin boards or other electronic forums, but may not distribute Parallel with their products without the permission of Parallel Technologies, Inc. Shareware vendors and other software distributors may distribute Parallel provided they do not charge more than $10 per copy. Support for Parallel and parallel port related issues is available only via Compuserve or Internet Email to the addresses given on the cover page of this manual. Parallel Technologies, Inc. does not provide telephone support for this program. Parallel Port Information System Page 3 --------------------------------------------------------------------------- Acknowledgements ---------------- We would like to express our appreciation to the many people and organizations who have given of their time and expertise to provide information and support for Parallel in various ways. Some of these contributors include: Parallel Port Chipset Vendors: Intel Corporation Standard Microsystems Corporation National Semiconductor Chips and Technologies Parallel Port Direct Sales Vendors: Farpoint Communications JAZ Computer Products Essential Data, Inc. Standards Organizations: Members of the EPP Standards Committee Members of the IEEE 1284 Standards Committee Individuals: Larry Stein, Farpoint Communications Prof. Joe Dupnik, Utah State University Don Watson, Compuserve IBMHW Forum Sysop The users: who have reported test results, bugs, and feature requests! And the innumerable hackers who have gone before. My thanks to all of you for your generosity. And if I've left anyone out, my apologies. Please remind me. Parallel Port Information System Page 4 --------------------------------------------------------------------------- Table of Contents ----------------- FRONT MATTER 2 ACKNOWLEDGEMENTS 3 TABLE OF CONTENTS 4 WELCOME TO THE PARALLEL PORT INFORMATION UTILITY 7 QUICK STARTING PARALLEL 8 DETAILED PROGRAM OPERATION 9 How to Prepare Your System for Best Results 9 How to Run Parallel.Exe 9 How to Get Quick Help 9 How to Prevent Scrolling 9 How to Save Parallel's Output 9 How to Avoid the Funny Line Drawing Characters 9 How to get Help with your Parallel Port Questions 10 INTERPRETING PARALLEL'S DISPLAY 11 Parallel Port Type 11 No Port 11 4bit ports 12 8bit ports 13 EPP ports 14 ECP ports 16 IO Address 18 Understanding the IRQ Level 20 Understanding the BIOS Name 22 Understanding the Notes and Comments 24 Parallel Port Information System Page 5 --------------------------------------------------------------------------- AUTOMATIC IRQ DETECTION 30 Understanding Port Float 30 IRQ detection using the LoopBack Feature 31 TechNote: Making Your Own Loopback Connector 33 MISCELLANEOUS TOPICS 34 Technote: Pseudo-Bidirectional Ports, A Special Case 34 PARALLEL PORT STANDARDS 35 4bit and 8bit parallel ports 35 EPP Specification 35 ECP Specification 35 IEEE 1284 Specification 36 Parallel Port Standards Diagram 37 PARALLEL PORT BUYER'S GUIDE 38 4bit parallel ports 38 8bit parallel ports 38 EPP Parallel Ports 39 ECP Parallel Ports 41 Advanced Parallel Port Chipsets 42 VENDOR CONTACT INFORMATION 44 TECHNICAL SUPPORT 45 ABOUT PARALLEL TECHNOLOGIES, INC. 46 Firsts, Bests, and Mosts 46 Partial List of Parallel Technologies' Developments 46 Parallel Port Developer's Kits 47 Level One Developer's Kit 47 Parallel Port Information System Page 6 --------------------------------------------------------------------------- Level Two Developer's Kit 48 Super IEEE 1284 Developer's Kit 48 DirectNet -- The Parallel Port Networking System 48 Parallel -- the Parallel Port Information Utility 49 OEM Products 49 Development Services 50 Consulting and Training 50 SOFTWARE LICENSE AGREEMENT 51 Parallel Port Information System Page 7 --------------------------------------------------------------------------- Welcome to the Parallel Port Information Utility ------------------------------------------------ Parallel is a simple utility which displays the configuration of the parallel ports (LPT ports) in your system. Parallel is useful for: 1. Configuring parallel port software such as Windows printer connections, parallel port device drivers, and print spoolers. 2. Resolving technical support problems with parallel devices, including printers and external peripherals such as network adapters, portable disks, tape drives, CD-ROMs, floppies, etc. 3. Configuring your parallel ports for best performance. 4. Resolving pesky IO address and IRQ contention problems. 5. Measuring the performance capabilities of your parallel ports. 6. Learning how your particular system's CMOS configuration relates to the actual configuration of your parallel ports. 7. Making informed decisions when buying parallel ports and external parallel port devices. 8. Getting the best parallel port performance for your dollar. 9. Experimenting with your parallel port configuration. 10. Solving problems associated with print spoolers and network print capture programs which redirect printer output by changing the port mappings kept in the LPT Bios data area. Now is a good time for you to learn something about parallel ports. Parallel ports are becoming increasingly useful due to the recent explosion in the popularity of portable and external peripherals. New parallel port standards (such as EPP and ECP ) are breaking performance barriers and allowing full bus speed operation. Parallel ports have traditionally been perceived as "printer ports", which explains a lot about their idiosyncrasies. In fact, a relatively small percentage of parallel ports are actually used for printing. The ratio of PCs to printers is usually "many to few" in a group setting, and as networking and networked printers become increasingly common this trend will increase. In general, PC parallel ports are usually available for other purposes ... for portable, external peripherals and parallel port networking (Desktop and Personal Area Networking). There are major performance differences between different types of parallel ports and parallel port devices, and these differences are becoming of increasing significance to consumers. These applications of Parallel are discussed in more detail below. But first let's take a quick look at how you run the program itself and interpret the various information it displays. Parallel Port Information System Page 8 --------------------------------------------------------------------------- Quick Starting Parallel ----------------------- Parallel operates by testing each of the standard addresses in your system where parallel ports might be found and gathering a broad assortment of useful information about the specific port behavior. Parallel tests the ports and then produces a compact display which is convenient and easy to read. You may need to refer to these instructions or the built-in reference screen a few times until you learn what the various columns of information mean. How to use Parallel: Step 1 => Disconnect any attached parallel port peripherals such as printers, LAN adapters, disks, CDROMs, etc Step 2 => Run PARALLEL from the DOS command line (not in Windows) Step 3 => Read the display as described below. Parallel will display five columns of information containing one or more lines about each port. The columns are: Port Type The parallel port's IO capabilities. Types are: No Port -- No port is exists at the address 4 bit -- A "unidirectional" port 8 bit -- A "bidirectional" port EPP -- An Enhanced Parallel Port ECP -- An Extended Capabilities Port Address IO Base Address of the port (3BC, 378, 278) IRQ Interrupt level associated with the port (5 or 7) BIOS Name Logical device name of the port (LPT1, LPT2, LPT3) Notes A wide assortment of comments, warnings, and miscellaneous additional information Port On a single line, after the columnar display, Strangeness Parallel ports a magic number called the Factor. `Port Strangeness Factor'. This is simply the total number of strange or unusual properties that Parallel has found when examining your configuration. If your ports are considered strange by Parallel, you might want to take some action to correct the situtation, or at least appreciate the peculiarity. The Port Strangeness is not reported if your configuration is boring. Detailed procedures for using Parallel are given in the next section. Parallel Port Information System Page 9 --------------------------------------------------------------------------- Detailed Program Operation -------------------------- How to Prepare Your System for Best Results ------------------------------------------- Before running Parallel, temporarily remove all parallel port devices and software to establish a baseline configuration. Temporarily disconnect printers and other parallel port devices such as disks, network adapters, tape drives, etc, and disable any special parallel port software you may have running, like print spoolers or parallel port device drivers for external devices. The interaction of Parallel with external devices is discussed in some detail later on, and you may find that disconnecting these devices is not necessary in your configuration. How to Run Parallel.Exe ----------------------- Type PARALLEL at the DOS command line. Parallel will display the parallel port type, IO address, IRQ level, BIOS names, and an assortment of informative notes about your parallel ports. Running Parallel in a Windows DOS box generally provides useless results. How to Get Quick Help --------------------- PARALLEL ? ; displays the a reminder screen How to Prevent Scrolling ------------------------ If, perchance, the display scrolls off the screen, which might happen if Parallel is reporting extensive notes about interesting conditions on your ports, then use the MORE command as follows: PARALLEL | MORE ; pauses the output every screen How to Save Parallel's Output ----------------------------- Use DOS redirection to write Parallel's display to a file: PARALLEL > filename ; redirects output to a file How to Avoid the Funny Line Drawing Characters ---------------------------------------------- Sorry, you can't. We plan to add a switch to omit or replace the linedrawing characters for more convenient display via email, etc. Parallel Port Information System Page 10 --------------------------------------------------------------------------- How to get Help with your Parallel Port Questions ------------------------------------------------- 1. Contact your vendor. Your vendor has a responsibility to support you in using their products. If you have a problem with a parallel port device, your vendor may already know a successful resolution. Some vendors maintain BBS systems or Compuserve forums on which may occasionally be found useful information, utilities, and driver software upgrades. Many vendors of parallel port peripherals offer very good technical support IF YOU GIVE THEM A CHANCE ... or several chances! Don't hesitate to be persistant. If you have a problem configuring a PC parallel port, your vendor may already have a fix ready for you. This may consist of a utility program, a BIOS upgrade, or a manual procedure for configuring the port. Since PC vendors use a bizarre array of different methods for parallel port configuration, your best bet is really the vendor themselves. Alas, however, some PC vendors are completely clueless about parallel ports, although this situation is improving rapidly. Give your vendor a chance to resolve the problem. They are sometimes the most responsive source of assistance, AND THEY NEED YOUR INPUT. Let them know what you want, and what you are doing -- it helps them adjust their plans and priorities. If you are not getting the proper assistance, call your vendor and let the product manager know about the situation. Think of it as your contribution to overall product quality! And if Parallel doesn't detect your ports tell your vendor to (a) get a copy of Parallel and (b) help us detect their port! 2. Post your question in the IBMHW forum on Compuserve or in the IBM PC Hardware newsgroup on the Internet. Quite a few technical gurus read these forums and they tend to be generous in giving you the benefit of their experience. 3. Email to CIS ID 76640,203 or jaylowe@halcyon.com. We can't promise immediate service (or indeed any service at all!) but we try to do our best. Please understand that we get quite a few random technical inquiries and have to fit them around our development schedule. Parallel Port Information System Page 11 --------------------------------------------------------------------------- Interpreting Parallel's Display ------------------------------- Parallel Port Type ------------------ Parallel reports the port type as 4bit, 8bit, EPP, ECP or No Port. No Port ------- No port was found at the given IO Address. This is a normal result if no parallel port is installed at the given address. Parallel tests all the base addresses at which parallel ports are commonly found and displays at least one line of information about each base address, even if there is no port installed at that address. Parallel uses a rather more robust technique for detecting a port than is used in any of the BIOSes we have seen. This means that Parallel can detect ports which fail the BIOS boot-time tests. Parallel uses a rotating bit test and assumes the port exists if any of the bits at the port location respond correctly. Parallel is also starting to detect specific advanced parallel port chipsets. Intel and SMC detection is present in this release and National and C&T detection will be included in the next release. False Positives. Parallel can be fooled into thinking that a port is present when it is not (false positive) only if there is some other device which behaves like a parallel port located at the address being tested. We have only seen this on one system, an off-shore 286 laptop which had several other design problems as well. False Negatives. There is one way in which Parallel can be fooled into thinking that a port does not exist (false negative). If an active device is connected to the data lines and is providing enough power to "overdrive" the port, then the port existance test will fail because the incoming data from the device will spoof the readback test. We have only seen Parallel produce false negatives when an external device is actively driving the port's inputs or when the Loopback connector is incorrectly installed. By the way, in this case, the PC's BIOS will also fail to detect the port. Remember, Parallel works best when you disconnect any external parallel port devices or cables. Parallel Port Information System Page 12 --------------------------------------------------------------------------- 4bit ports ---------- The port can do 8bit byte output and 4bit nibble input. These ports are often called "unidirectional", and are most commonly found on desktop bus cards (also called IO expansion cards, serial/parallel cards, or even 2S+P cards) and older laptops. This is still the most common type of port, especially on desktop systems. HOW FAST: 4bit ports are capable of effective transfer rates of about 40-60 KBytes/sec (KBPS) in typical devices and can be pushed upwards of 140 KBytes/sec with certain design tricks. The port speed is also affected by electrical characteristics of the noise suppression circuitry. A few ports have completely ridiculous arrangements of noise suppression circuits which slow them down quite dramatically and can prevent their correct functioning with parallel port peripherals. TECH NOTE: The sample transfer rates given here reflect the actual performance of parallel port network adapters, disks, etc. The raw transfer rate of the port itself is higher but since most parallel devices use software strobing to access data , the effective transfer rate is dependent on the quality of the software supplied with the device. Due to the recent explosion of parallel port peripherals entering the market, there is an extreme degree of variability in the quality and performance of these devices and their drivers. WHERE FOUND: 4bit ports are found on about 50% of all systems and about 75% or more of desktop systems prior to 1993. Systems built after 1993 are more likely to have more capable parallel ports such as 8bit, EPP, or ECP. TECH NOTE: Many new systems, especially laptops, have parallel ports whose mode can be selected via a CMOS setup procedure. Often these system default to a 4bit port type even if more port capabilities are present. We do not recommend 4bit ports; 8bit ports are better. TECH NOTE: There is a class of "semi-bidirectional" parallel ports which appear to the PC to be 4bit ports, but actually have 8bit capability when they are connected to external devices with strong drivers. These include the original PC/AT parallel port. Parallel will report such ports as 4bit ports but they may actually function as 8bit ports with better parallel port peripherals which are especially designed to use such port as 8bit. Parallel Port Information System Page 13 --------------------------------------------------------------------------- It is actually possible to identify this type of port using a side-effect of Parallel's loopback test. See the special section below on Semi-Bidirectional ports. 8bit ports ---------- These ports can do both 8bit input and output. These ports are sometimes called "bidirectional ports", but that term is often misused by some vendors to refer to 4bit ports as well. Most newer laptops have 8bit capability although it may need to be enabled with the laptop's vendor-specific CMOS setup function. This is discussed below. A relatively smaller percentage of LPT bus cards have 8bit capability which sometimes must be enabled with a hardware jumper on the board itself. True 8bit ports are preferable to 4bit ports because they are considerably faster when used with external devices that take advantage of the 8BIT capability. HOW FAST: 8bit ports are capable of speeds ranging from 80-300 Kbytes/second, again depending on the speed of the attached device, the quality of the driver software, and on the port's electrical characteristics. WHERE FOUND: 8bit ports are found on about 25% of desktops, about 50% of laptops, and 90% of laptops built since 1991. CAVEAT EMPTOR: A number of vendors claim "bidirectional" capability for their parallel ports when they are actually mere 4bit ports. When buying a parallel port expansion card, or an entire system, you might want to use Parallel to find out the REAL capabilities of the port. Be aware that a vendor's general reputation for quality may not translate into good parallel ports. There are examples of well-known vendors making false claims for their parallel ports... sometimes, it appears, simply because they don't understand them... the claims or the ports. We are not going to pan anyone's "bidirectional" parallel ports specifically, but be warned that the use of terms like "bidirectional" or "PS/2 compatible" may have nothing to do with the port's actual capability. Some vendors even refer to 8bit ports as "enhanced", which is totally misleading and creates no end of user confusion. Make sure exactly what you are getting. The moral of the story ... use Parallel to test ports to determine their real I/O behavior and compatibility. Parallel Port Information System Page 14 --------------------------------------------------------------------------- Remember that if Parallel can't detect the port, or reliably report it's actual behavior, then chances are good that other software won't be able to either! EPP ports --------- Can do both 8bit input and output at ISA bus speeds. This type of port is defined by the EPP 1.7 standard, by the actual behavior if the Intel 360SL I/O chip, and also by the IEEE 1284 standard (which is substantially incompatible with the EPP 1.7 standard - more below). HOW FAST: These ports are as fast as 8bit bus cards and can achieve transfer rates of upwards of 1 Mbyte/sec. For example, our EPP-capable external SCSI disk is faster on a popular SL laptop than it's own internal drive. EPP ports are supposed to conform to a well defined electrical standard and many of them actually do so. However, if you are buying a laptop and want to be sure of using fast EPP-capable external peripherals, then you should definitely arrange to try before you buy. HISTORY: EPP ports came about as a joint effort involving Zenith, Intel, and Xircom. After the introduction of the EPP port capability in the Intel 360SL I/O chip, many manufacturers began providing this feature on their SL-based laptops. An EPP Standards Committee was formed which standardized the behavior of the Intel SL EPP port as the EPP 1.7 standard ... and life was good. Then the EPP standards committee merged with the IEEE 1284 committee which was itself struggling to specify new parallel port type(s) with a predominant focus on fast and bi-directional communication for printers. Parallel port peripherals other than printers were considered strange beasts and received extremely short shrift in the 1284 deliberations, to the point that the 1284 specification does not really embody a long term vision of the parallel port as a high-speed external pathway for interfacing various peripherals to the PC. Also, the 1284 committee did not like the details of how the signalling occurred between the PC and the attached device in the EPP 1.7 spec, and agreed to include EPP within the scope of IEEE 1284 only if the EPP standard was changed to correspond to the rules for 1284 signalling. Hence the IEEE 1284 EPP spec, which is incompatible with the original EPP 1.7 spec. As a result, there are actually TWO standards for EPP signalling, the original 1.7 specification (embodied in Parallel Port Information System Page 15 --------------------------------------------------------------------------- hundreds of thousands of SL laptops) and the IEEE 1284 EPP specification (embodied in a new generation of IEEE compatible parallel ports which support multiple modes of parallel port operation - see below). A typical IEEE 1284 style parallel port supports a combination of Compatible (4bit and/or 8bit), EPP (version 1.7 and/or 1284) and/or ECP (which we visit in the next section). EPP BIOS: To make matters more complicated, the EPP Standards Committee began work on an EPP BIOS spec quite some time ago but the specification is still not adopted either formally by the (now) IEEE 1284 Committee or by any significant numbers of vendors. It is uncertain whether such a BIOS will ever be widely supported, and in any case, it will be too little - too late, because developers will still be required to support the existing defacto standards for non-BIOS interfaces as well as the hypothetical new BIOS standard. This reduces the EPP BIOS's usefulness; instead of being a global standard, it becomes just another special case. If this seems complicated to you, then congratulations, you have successfully evaluated the situation! CAVEAT EMPTOR: Therefore, when buying a system or external peripheral which has high-speed EPP capability, it is crucial to determine whether the system or device supports EPP 1.7 or EPP 1284 or both. See the Buyer's Guide section for more information on this subject. Xircom was active in creating and defining the EPP 1.7 standard, and since their EPP-capable network adapters are fairly common, it's worth mentioning that these adapters can be used as a practical benchmark for the goodness of a EPP 1.7 port. Crude but effective. EPP ports are most often found on laptops using the Intel 386SL chipset with the 360SL I/O support chip or a register-compatible parallel port implmentation. You can usually identify these laptops by the 'SL' suffix in their name, HOWEVER this is not a hard and fast rule, since there are non-SL systems with EPP ports as well as SL systems which (in our tests) have non- functioning or sub-standard EPP ports. Other vendors offer add-in EPP cards for the ISA bus. The Future: Standard Microsystems Corp., National Semiconductor, and Chips and Technologies have released multifunction chipsets with both EPP and ECP capability, so users can expect to see fast ports become available on a wider range of systems. Other such chipsets are on the way. This new generation of chipsets, combined with the IEEE 1284 standard, provides another window of opportunity Parallel Port Information System Page 16 --------------------------------------------------------------------------- for a comprehensive parallel port technology solution. It remains to be seen if parallel port hardware and software vendors will produce a cohesive response, or if parallel ports will remain the PC's prodigal child. ECP ports --------- Can do both 8bit input and output at bus speeds. The specification for this port type was jointly developed by Microsoft and Hewlett-Packard. ECP ports are distinguished by having DMA capability, on-board FIFOs at least 16 bytes deep (too small), some hardware data compression capability, and are generally more featureful than other ports. The MS/HP ECP port specification defines the ISA bus registers by which the PC software can read and write data at high speed to an attached device. The MS/HP ECP port specification (what's inside the PC) is related to the IEEE 1284 specification (what happens on the wires outside the PC in various modes). HOW FAST: These ports are as fast as 8bit bus cards and can achieve transfer rates upwards of 1 Mbyte/sec and faster on PCs whose buses will support it. The design is capable of faster transfer rates in the future. TECH NOTE: ECP port specification defines an ECR control register with port mode configuration bits which may be used to place the ECP port into several different submodes. The ECP specification defines a multimodal port which can support backward compatible and enhanced modes of operation. My goodness, this is starting to look like an excellent solution to the proliferation of incompatible parallel port standards. A standard port with multiple modes! Alas, the ECP port specification does not define an EPP mode, so vendors have chosen various ways of providing an EPP capability within the framework of the ECP port specification. Let's look at how this works. SMC, for example, uses a reserved bit of the ECR register to place the port into EPP 1284 mode on their 66xQPF chip (see Parallel Port Buyer's Guide). The 66xQPF chip, used on the Intel Pentium motherboards, does not support EPP 1.7, which means that the large installed base of parallel port network adapters, Parallel Port Information System Page 17 --------------------------------------------------------------------------- external disks, SCSI adapters, etc generally don't work on such systems. When SMC figured this out, they announced the 66xGT revision of the chip, which has TWO EPP modes, 1.7 and 1284, as well as various bug fixes. In addition, the SMC chip implements a TWO level approach for controlling parallel port configuration. The 66x contains configuration registers which ENABLE the port to be in Standard, EPP-only, ECP-only, or EPP- ECP modes. If the port is in ECP or EPP-ECP modes, then the actual submode is SELECTED according to the ECP spec by using the ECR register which appears on the bus only when the chip is ENABLED for ECP or EPP-ECP. To make matters even more complicated, other vendors have taken other approaches to shoehorning EPP into the framework of the ECP specification. STANDARDS: Note that while both the EPP and ECP parallel port specifications establish how the port operates within the PC when it is enabled, the specs do not describe how the enablement occurs - that is left to vendors. For example, the EPP 1.7 specification defines the various I/O registers of the EPP port, but does not define how to detect such a port or enable it. Similarly, the ECP port specification defines the port I/O registers and some of the configuration processes, but does not define exactly how such ports are enabled, this is a constant problem with inadequate standards. Therefore it is possible for vendor ABC's excellent EPP 1.7 (or ECP, etc) device to fail to operate on vendor XYZ's system because XYZ implemented the port in a way that ABC does not recognize (yet). Parallel port device vendors are constantly challenged by the appearance of new types of ports - and the better vendors frequently have software upgrades which support specific ports. Existing parallel port standards have missed the mark. they do not qualify as fully conceived response to the overall requirement for speed, vendor flexibility, and ease of use in the PC environment. These standards have focused on bringing short-term capabilities to market rather than on providing a comprehensive, universal solution to the end user. In the Buyer's Guide section, we will attempt to throw some light on your practical options when shopping for a system with fast parallel ports. The Parallel Port Standards section reviews the various parallel port standards, de facto and de jure. Parallel Port Information System Page 18 --------------------------------------------------------------------------- IO Address ---------- Also called the "base address" the port. It will almost always be 3BC, 378, or 278 hex. A very rare subset of parallel ports may support additional addresses such as 280, 290, etc. The IO address specifies the port's location on the PC's IO bus. Normally the first port is configured to 3BC, the second to 378, etc, however ports can be assigned to any of these three addresses. On bus cards, the IO address is usually set by a arrangement of jumpers unique to the particular board. You will need a manual or the ability to read PC board traces (gacck!). These jumpers are usually arranged to allow you to select one of three addresses. Sometimes these addresses are called by the "logical device names" of LPT1, LPT2, and LPT3, although this practice is quite misleading (see BIOS discussion below). Some boards offer a more limited selection of configurations, usually 378 and 278, and a few are actually hardwired to a specific address. Vendors do this to save a little money and to eliminate the chance of creating an address collision with the "standard" address of 3BC. Because of the increasing number of clones which are assembled from various components, we often see systems with one LPT card, configured to address 378. In fact, a fair number of systems are shipped with this 378 default configuration. A slightly interesting result we've seen in several desktops spins off when someone adds a second LPT card to a system which already has a LPT at 378, IRQ 7. Sometimes they naively reason that since 378 is taken they can use 3BC and slap in the card without checking the IRQ level. This creates a configuration of 3BC and 378 both using IRQ 7, a situation which can lead to intermittent crashes when using interrupt-driven parallel port software. By the way, some systems have parallel ports and com ports built onto the motherboard itself and, in this case, the configuration jumpers will be found on the motherboard or, as in the case of more recent systems, in the CMOS SETUP utility. The new generation of ECP-capable parallel ports typically implement software selectable modes, base addresses, and IRQs. If you have one of these new parallel ports, you will require appropriate software in order to configure your port. This may exist within the CMOS setup function or may exist as a separate utility. When you buy a system or an add-in card which has advanced parallel port functionality MAKE SURE YOU GET THE SOFTWARE which allows you to enable it. Some vendors include it, some don't. Parallel Port Information System Page 19 --------------------------------------------------------------------------- Be aware of the distinction between configuration software which allows you to control the configuration of your port, and device- specific driver software which uses the port. Notice that there are three commonly used IO Addresses (3BC, 378, 278) and two available interrupt levels (IRQ 7 and IRQ 5). This means that if you have three LPT cards in a system, two of them will probably be configured to share a hardware interrupt level. This is hardwarily permissible, and generally doesn't create any problems since most DOS and Windows software doesn't ENABLE interrupts for printing anyway. However, if you are using LPT software like an interrupt-driven print spooler or interrupt-driven LPT devices like external hard disks, external network adapters, and so forth, then you have to be sure that either (1) the ports are not using the same interrupt level, or (2) both the ports and the software are capable of "interrupt sharing". When adding or configuring LPT cards, we suggest using 3BC, IRQ 7 for the first card; 378, IRQ 5 for the second card; and 278, no IRQ for the third card. This gives you two interrupt-capable LPT ports, and one port (at 278) which you should use only for non-interrupt driven usage, like the status-driven spooling provided by DOS. You should only configure your system to share interrupts when you are (1) absolutely sure that they will not be simultaneously enabled, and (2) when you have totally run out of other options. Also, you should know that many sound cards, like the SoundBlaster, arbitrarily use IRQ5 by default. This was a bad design decision, especially so since the SoundBlaster's implementation of interrupts creates a serious conflict when sharing the interrupt with other devices, but we are stuck with it. If you are using a sound card on IRQ 5, then you should definitely AVOID ENABLING that level on any of your parallel ports. Armed with this understanding and the Parallel Utility, you are equipped to select a configuration which works for you. HOW TO: The IO ADDRESS is a standard parameter in network configuration files where it takes on different names to confuse innocent users. (Base, Port, etc). Some simple-minded parallel port peripherals (ones without auto-configuring capability) require that you specify the IO address, IRQ level, and sometimes the Port Type in a vendor-specific way. Parallel provides you with this information. HOW TO: Resolving IO Address conflicts is usually fairly simple, since it is rare to find a device which uses the standard parallel port addresses. A good procedure for eliminating potential IO address conflicts when installing parallel port add-in boards Parallel Port Information System Page 20 --------------------------------------------------------------------------- is to remove all the boards, install one, use Parallel to see what address it finds, install the next, and so forth. If Parallel finds each board at a separate addresses as you install them, then you can be sure of your configuration. Understanding the IRQ Level --------------------------- This is the hardware interrupt level assigned to the port. It will almost always be either 7 or 5. Only a few specific parallel ports support IRQ levels other than 7 or 5. Parallel displays: "?" when it cannot detect the IRQ level of the port and "-" when it knows the the port doesn't exist. Parallel needs an external loopback connector to automatically detect the IRQ. With appropriate precautions (described in horrible and excruciating detail below) you can use a simple paperclip as a loopback connector. Normally IRQ 7 is assigned to the first port and IRQ 5 is assigned to the second port. However, due to the explosion of clones assembled from disparate parts, it is not uncommon to see systems with one LPT port located at 378 with an IRQ of 7 or 5. This is because clones are often assembled using offshore add-in LPT cards which are shipped configured to operate as a second LPT card. This is a good time to point out that there are few hard and fast rules when it comes to parallel port configuration. Ports can be located at any one of the three standard base address and can use either of the IRQ levels. If you are developing parallel port software, you should auto-detect the actual configuration rather than assume any standard usage. We offer libraries and source code for this purpose. Here at Parallel Technologies, we test our software using many strange configurations and delight in adding idiosyncratic ports to our extensive collection. The most common idiosyncrasy of port IRQ is IRQ inversion. The PC standard calls for interrupts to be generated on 0->1 transitions of the interrupt line. A small percentage of parallel ports generate their interrupts on 1->0 transitions. Ports with inverted IRQ can fail to operate with some interrupt software, particularly certain external network adapters, disks, and so forth. Parallel identifies these ports with a note "IRQ style is INVERTED". Some parallel ports have non-functioning IRQ lines. They are simply not capable of generating interrupts. Only a very few pieces of software are capable of dealing with these ports by using a polled Parallel Port Information System Page 21 --------------------------------------------------------------------------- mode of operation. It is sometimes possible to repair such systems by jumpering the interrupt enable line to the parallel port chip. In the case of an add-in board with broken IRQ capability, check to be sure the IRQ jumper, if any, has not gone missing somehow. On ISA cards (bus cards in ISA slots) the interrupt level is usually set with jumpers on the board - these jumpers are different for every card so you need to hunt around for the manual in order to change them. If you're lucky there will be readable labels on the card itself. On laptops and an increasing number of desktops, the IRQ level can usually be set using the vendor's CMOS configuration (setup) program. Sometimes these CMOS setup programs are built into the ROM; sometimes they exist as separate programs or as part of the vendor's diagnostic program(s). Refer to your manual to find out how to enter the CMOS setup mode. BE CAREFUL when using the CMOS setup, since it gives you access to parameters that can disable your system if wrongly changed. KNOW WHAT YOU ARE DOING. DON'T CHANGE ANYTHING YOU DON'T FULLY UNDERSTAND. WRITE DOWN THE INITIAL VALUES OF ANY SETTINGS YOU CHANGE. ASK YOUR VENDOR FOR HELP. ****************** * IMPORTANT NOTE * ****************** Misuse of your system's CMOS setup program can prevent your system from operating correctly, or in some cases, from operating at all! Be sure you know what you are doing; read your user's manual or get qualified help if you have any doubts. Another strange feature of these software configurable ports is that they often have very peculiar ideas about nomenclature. Often these CMOS setup programs use vendor specific "magic code words" to select various parallel port configurations, and these magic words can have non-obvious effects. Sometimes the vendor's manuals don't even provide a secret decoder ring to explain what their magic words really mean in terms of IO Address, IRQ, and Port Type. Parallel will be useful for determining the actual effect of the CMOS setup choices on your system. For example, on my Dell NL25 laptop, 4bit mode is called "Normal" and 8bit is called "Enhanced" and there is no choice at all for the real Enhanced Parallel Port (the SL's EPP port). So someone might obviously think they have enabled EPP by choosing "Enhanced". Futhermore, the IRQ level cannot be set directly, but rather is set as a by-product of selecting combinations of the IO address and the Port Type. Most of the choices on my Dell yield IRQ 7, but one lonely choice - LPT1, 278, Normal mode results in IRQ 5. It makes a bizarre sort of sense when you are experienced with parallel ports, Parallel Port Information System Page 22 --------------------------------------------------------------------------- but is likely to be confusing to the Average User (if we ever find him, or her). The Dell is hardly alone in it's strange naming conventions ... most PCs have confusing, misleading, or incomplete labels and controls in their CMOS setup programs. This sort of indirect control in very common in CMOS setups and creates a lot of tech support calls from frustrated users. In addition, most SL laptops don't have the capability to enable their EPP ports from CMOS. Usually you need to run a separate vendor-supplied BIOS extension to enable EPP capability. These take the form of a tiny TSR which adds INT 17h BIOS extensions for controlling the EPP port, and handles command line arguments for enabling and disabling EPP. An interesting sidelight of switching into EPP mode can be that your port IO address may change on the fly. The Intel EPP hardware allows EPP ports to be configured at IO Addresses 378 and 278. So if you have set your port address to 3BC (with CMOS for example) and then switch into EPP mode, your port will appear to have moved. Parallel will come in handy in trying to make sense of what your system's CMOS settings are actually doing to your parallel ports. Understanding the BIOS Name --------------------------- This is the "human-readable" (hah!) name which you use to refer to the port when using DOS commands, Windows picklists, and so forth. It will be one of the following: LPT1, LPT2, LPT3. LPT4 is extremely rare and Parallel currently ignores it. The port address is NOT the same as the BIOS name for the port. For example, LPT1 can refer to a port at any address: 3BC, 378, or 278. So how does the BIOS associate the LPT names with the actual ports? It works like this ... Whenever your system boots, the BIOS goes out and tries to write and read back data from locations 3BC, 378, and 278. If it can read back what it writes, then the BIOS decides that a parallel port is there and adds the IO address to a LPT table in the "Bios Data Area". This table is four words located at memory location 40:8. A command like "copy foo.txt lpt2:" really means "copy the file foo.txt to the second printer that BIOS knows about" and DOS uses a software interrupt, INT 17h, to do just that. INT 17h looks in the Bios Data area to find out the IO address of the "second printer port", which can be any of the IO addresses - 3BC, 378, or 278. The result is that LPT1 refers to the first port BIOS finds at boot time, wherever it may be. So "LPT1" means "the first port found in Parallel Port Information System Page 23 --------------------------------------------------------------------------- the address order", not necessarily 3BC, 378, or 278 specifically. Some BIOSes have unique methods for finding their LPT ports. When you see LPT1, LPT2, or LPT3 used to refer to port locations, be alert for possible misleading information. Some well-known vendor's manuals use LPT1 to refer to 378 and LPT2 to refer to 278, etc, an entirely spurious practice which has confused many users. It is possible for some parallel port software to set the port into an IO mode that causes it to fail the simple BIOS test and seem to "disappear" from your system even after a soft boot (CTRL-ALT-DEL). Parallel has a better port detection test, and can usually find such ports. A hard reset (a power-off reset) will clear the port. Parallel ports are not completely trivial devices; they have a number of states that can affect their operation. So if you are having a parallel port problem, one of the first things to do is a power-off reset. Another factor here is that various programs can fiddle with the LPT table in order to rearrange how the names relate to the ports or to accomplish other effects like network print redirection. The utility SWAPPRT, for example, can be used to swap LPTx with LPTy which it does by moving the entries in the LPT table. There are variations of this redirection theme. Network print capture functions (such as those founf in Netware and so forth) put special values in the LPT BIOS table to mark that the port is not a physical port but rather is a `` virtual port'' which is actually served by a software function, usually redirection of INT 17. Some parallel port devices with passthrough printing ports also use this technique to intercept the output of programs which print using the INT 17 function call. If Parallel does not display a BIOS name for a port, that means the IO Address for that LPT position has been replaced with a value that does not match a valid hardware port. This can occur when some other parallel port software has grabbed possesion of the port by placing a "magic number" in the BIOS LPT Table. Remember, the BIOS decides how LPT symbolic names are mapped onto physical port addresses, generally by a test a boot time, not the vendor's manual, or the jumpers, or the CMOS settings. Parallel Port Information System Page 24 --------------------------------------------------------------------------- Understanding the Notes and Comments ------------------------------------ The "Notes" field of the display will contain various comments, depending on what Parallel has detected. Each note may be followed by one or more comments giving further information or directions. These secondary comments are indented one space under their note. "Port is an XYZZY chip" Parallel is reporting the specific chipset used to implement the parallel port at that address. Some vendors may design completely compatible chipsets (thank you) which spoof the specific chip detection. Parallel may also report additional information about the current setting of the chipset. For example, in the case of an SMC 66x chip that is enabled for EPP-ECP mode and which currently has the Compatible submode of ECP selected (whew!), Parallel will report an ECP port with a Note that the port is currently in 4bit mode. "No port found at this address" No parallel port is installed at this IO Address. This is a normal result if no port in installed there. However, it is possible that something is connected to the parallel port and is overdriving the port's inputs, which prevents the software readback test from working. Be sure you have disconnected all external devices. "Need loopback to determine IRQ" The port exists, but does not respond to attempts to generate IRQs. This is because a loopback connector is required for IRQ detection in most cases. "Port IRQs are not functioning" This is pretty bad. It means that the loopback connector is present and working correctly, but Parallel still can't generate any interrupts. Technically it means that transitions in the ACK line are not causing interrupts through the PC's interrupt controller. Parallel Port Information System Page 25 --------------------------------------------------------------------------- In practice, it means that interrupt-driven devices and software won't work, unless they have polling support. Possible reasons for failing the IRQ test include: 1. The port's interrupt capability is disabled Check your CMOS configuration and/or the hardware jumpers on the parallel port board(s) to be sure that the interrupt is enabled. The function of CMOS parameters and/or hardware jumpers varies from system to system, so check your manual or contact your vendor if you have problems enabling the port's interrupt line. Note that most CMOS and jumper arrangements combine enabling the IRQ with selecting the level, ie, "enable IRQ5" or "enable IRQ7". Installing the jumper may combine selecting a level and enabling IRQ. Removing the jumper generally disables IRQ. 2. The port does not have IRQ capability Most ports DO have interrupt capability, but a small percentage of older systems(at a guess %1 to %5) do not. More laptops lack interrupts than add- in cards. Add-in cards without IRQ are rare. Most reports of non-functional parallel port IRQs in desktop systems can be tracked to configuration problems which create interrupt conflicts (see #3) which effectively disable IRQ. 3. There is an IRQ conflict with another device It is possible that another device in your system is preventing the parallel port IRQs from functioning. For example, in IBM-PCs and XTs, the disk controller may use IRQ 5 and prevent parallel ports configured to IRQ5 from creating interrupts. Sound cards frequently use IRQ5 and are likely candidates for creating such IRQ conflicts. To isolate this problem, remove all boards from your system which are not required to perform the test. In other words, strip down to just the parallel port, floppy controller and video, and repeat the test. If possible, configure the parallel port to IRQ7. If the port can use IRQ7 interrupts, but not IRQ5 interrupts, then an interrupt conflict is likely. "IRQ determined by loopback" Parallel Port Information System Page 26 --------------------------------------------------------------------------- The loopback was detected, is operating correctly, and the port's IRQs are functioning correctly. The IRQ level found is given in the IRQ column. "IRQ estimated by port float" No loopback connector was detected, but the port is generating IRQs anyway. This probably means that the port is connected to an inactive (unpowered) external device. Treat IRQs determined in this way with some skepticism; better to disconnect the device and use a known-good loopback connector. "IRQ determined by EPP hardware" If the Port Type is determined to be Intel EPP, then Parallel does not use the IRQ test, but rather reports the IRQ which is standard for an Intel EPP port at that IO Address. This only applies to actual Intel SL type EPP ports. "IRQ noise is present" Parallel has detected extraneous interrupts occuring on IRQ level 5 or 7 during the IRQ test. This condition is reported when the total number of interrupts occurring on both IRQ5 and IRQ7 exceeds the number of interrupts Parallel expects. This can mean several things: 1. PIC errors. The PC's interrupt controller (PIC) is generating errors as described below. 2. An active device other than the parallel port under test is generating interrupts on IRQ 5 or 7. This is typically a sound card or another parallel port with a enabled, floating, IRQ line. 3. The port's IRQ line is electrically noisy. This has been seen with boards which have dual parallel ports where transitions in one port's IRQ line causes noise on the other port's IRQ line. This result may be ignored if you are not having any problems, but be informed that this condition is quite likely to confuse parallel port software which tries to autodetect the port's IRQ level. Parallel Port Information System Page 27 --------------------------------------------------------------------------- Noisy IRQ lines can also slow down or break driver software which is not intelligent enough to defend itself against this relatively common situation. TECHNICAL NOTE: PIC errors are usually found with parallel port chips whose "open" condition on the ACK line may allow the IRQ signal to float randomly. This effect creates PC interrupt controller errors which are redirected by the PIC to IRQ7 where they can be mistaken for "real" interrupts. An PIC error condition is defined to occur when the PIC attempts to service the requesting device but the device's interrupt line has gone inactive. These are also known as "lost interrupts", which are not really lost but rather redirected to IRQ7. A noisy IRQ line can create the appearance of lost interrupts and this confuse driver software. The effect of lost interrupts being redirected to IRQ 7 explains why some parallel port driver software works well on IRQ7 but not IRQ5, or vice versa. The interrupt is lost, redirected to IRQ 7, and thus becomes found again. Strange. Parallel port interrupt handlers have to account for conditions that are generally not seen by other device drivers. If you are having problems with parallel port software you may want to try configuring the port to the other interrupt level. "Data port has stuck bits!" The rotating bit test has detected bits in the data port which cannot be set or cleared properly. This can mean that an enternal connection is preventing the datalines from makeing the expected transistions. You may have inserted the Loopback incorrectly. Of course if there is no external device present, then something else must be happening! It could be that an active device is forcing some of the data lines to a fixed level. It could also mean that your port exists, but some of the data bits are not working, which is a polite way of saying that your port is busted. A false Port Type may be reported in this case. Make sure that the loopback, if used, is correct. Make sure that all devices are disconnected. Parallel Port Information System Page 28 --------------------------------------------------------------------------- "IRQ style is INVERTED" The port's IRQ line functions in an opposite sense from the PC standard. A significant amount of software will fail to work with such ports. There is no remedy for this condition in general; the best we can advise is to use a different port if you have a bus system or try other CMOS settings on a laptop if that is possible. You might try contacting your vendor. Parallel may falsely report inverted IRQ if there is an external device connected to the port. "Possible IRQ Conflict" Two or more ports in your system are using the same IRQ level. If you are not using interrupt- driven parallel port peripherals or printing software then you might simply ignore the warning if you are not experiencing any problems. However, you should know that some very strange results can occur when two parallel ports are trying to drive the same IRQ line. Sometimes one or both ports can falsely appear to have INVERTED IRQ. The best solution is to move one of the ports to another IRQ level, if that is possible. "BIOS Data doesn't match hardware" The contents of the BIOS LPT Table does not match the expected initial state at boot time. This is probably due to a parallel port device driver, a SWAPLPT program, or print spooler having fiddled with the BIOS data, in which case it may be considered normal operation. Network drivers (typically the redirector clients) also commonly rearrange the BIOS LPT Table in other to provide network print redirection. This information is useful if you are having problems with print redirection. Also, some parallel port device drivers do not examine the hardware directly to determine which ports exist, but rather only look at the BIOS. If you have run other parallel port software which has changed the BIOS in a non-standard way, then these device drivers may fail to find any parallel ports, or may try to access the wrong port with peculiar results. This can often be solved by changing the Parallel Port Information System Page 29 --------------------------------------------------------------------------- order of loading or by manually configuring the failing driver. "Port has latent EPP tendencies" The port is an Intel SL EPP port, but it is currently configured to a non-EPP mode. Use your vendor-supplied CMOS or separate configuration program if you need to enable the EPP capability. Some vendors do not ship the ability to enable EPP; an appropriate utility may be available on the vendor's BBS. In particular, the EPP function of Compaq SL laptops may be enabled with their SETEPP utility. "EPP port is Intel SL flavored" The EPP port is an Intel SL port (360SL chipset). It is possible for Parallel to report a false Intel EPP detection on some systems. One Toshiba system (3600) has an 360SL onboard which does respond to EPP detection but is NOT connected to the outside world - instead their custom ASIC is used to implement the parallel port. So Parallel will report a false EPP result on this laptop. "EPP port is vanilla flavored" The EPP port is NOT an Intel SL port, but does pass a generic EPP write/readback test. This test is only attempted if the EPP BUSY line is not HIGH. This avoids hanging the CPU on EPP ports which do not implement the access watchdog timer. Parallel Port Information System Page 30 --------------------------------------------------------------------------- Automatic IRQ detection ----------------------- Parallel uses two methods for automatic detection of a port's IRQ level: port float or the external loopback connector. Understanding Port Float ------------------------ Many parallel ports will "float" in a unstable logic state when connected to an unpowered external device such as a printer. This unstable logic state may cause the port to generate a limitless stream of apparent interrupts to the CPU if the port's interrupt line is enabled. This peculiar behavior is used to advantage by Parallel. If you have a unpowered (powered off) printer, or other device, attached to a port, then Parallel may be able to detect the interrupt level using this floating port behavior. In this case, Parallel will display "IRQ determined by port float". You should treat the IRQ determined in this way as a "best guess". To be sure of the IRQ, you need to disconnect the floating device and use loopback. In some cases, attaching a unpowered device to a port will enable Parallel to detect IRQ by loopback, since the combination of port and device appears indistinguishable from a loopback connector to Parallel. FLOATNOTE: Powered on devices usually hold the interrupt line in a stable state and prevent IRQ autodetection. Remember that it is best to disconnect your parallel port device(s) and use the loopback connector when you need the absolute best results from Parallel. EXAMPLE: On my home system, an unpowered HP LaserJet II printer on an 8bit port "floats" and Parallel reliably reports IRQ5. Attached to a 4bit port on the same system, the LaserJet is indistinguishable from a loopback connector. So turning the LaserJet off converts it into an expensive, but handy, paperclip. Turning it on prevents IRQ detection. TECH NOTE: Whether or not a given device and port combination will float, emulate loopback, or be invisible to Parallel is determined by the pull-ups on each end, CMOS vs TTL logic behavior, and the power available at the port to a unpowered device. In the above example, I suspect that enough power is provided by the 8bit TTL port to drive the unpowered CMOS logic in the LaserJet into an unstable oscillating state, which appears to the system as a frenzy of level 5 IRQs. Port float is a handy effect, but use Loopback for best results. Parallel Port Information System Page 31 --------------------------------------------------------------------------- The most reliable way to determine IRQ is to use an external loopback connection. Loopback is described in the next section. IRQ detection using the LoopBack Feature ---------------------------------------- ****************** * IMPORTANT NOTE * ****************** First, DECIDE NOT TO SCREW UP YOUR PORT by crudely jamming wires into the wrong places with too much force. REMEMBER that the female DB-25 connector is likely to be made out of CHEAP, BREAKABLE PLASTIC, so decide right now not to break it. WE ARE NOT LIABLE FOR ANY DAMAGE YOU MAY DO FOR WHATEVER REASON. The danger is that you will push too hard when inserting the loopback wire and force the female connector pin out of its position in the DB-25 shell. That is why WE SUGGEST MAKING A LOOPBACK PLUG using a male DB-25 connector as described below. If you cannot make a loopback plug, then use a parallel port extension cable instead. This protects your port from physical damage and also makes it a lot easier to work with. The port is supposed to be electrically designed to tolerate the loopback perfectly well. However there is a DANGER OF DAMAGE BY STATIC DISCHARGE so make sure that you GROUND YOURSELF TO THE PORT before inserting the loopback wire. It would be terrible if you blew out a $25 parallel port on a $1000 Pentium motherboard simply because you failed to PAY ATTENTION TO THESE PRECAUTIONS. PROCEED AT YOUR OWN RISK. The other danger is that you will apply the loopback to a port which is not really a parallel port at all. DON'T DO THIS. If you are not sure of what you are doing STOP RIGHT NOW. We have no control over what you might damage if you try this with a port other than a parallel port. Whew... now on with the instructions. 1. Find the parallel port(s) you want to test. They will be female DB-25 connectors. MAKE SURE THAT YOU HAVE CORRECTLY IDENTIFIED THE PARALLEL PORT. Disconnect any devices (printers, network adapters, external disks, etc) which might be attached to other parallel ports on your system. 2. Make sure that the connector IS NOT SOME OTHER TYPE OF CONNECTOR like an external SCSI connector or a COM port. SCSI ports can be either female DB-25s or a larger connector, like a 37, 40, or 50-pin connector. COM ports are usually Parallel Port Information System Page 32 --------------------------------------------------------------------------- male DB-25 or small male DB-9 connectors, but this is not guaranteed. Look in your manual if there is any doubt. DON'T PROCEED unless you are sure you have identified the parallel port(s) correctly. 3. Connect the Loopback Plug and go to Step 7. If you do not have a Loopback Plug, use a straight thru M-F parallel port extension cable to prevent damage to your port. Connect the male end of the extension cable to your port and place the loopback wire into the female end of the cable. |--- expensive | | +-+ cheap +-+ PC | | | |---------------| | <- loopback here parallel port | | +-+ cable +-+ |--- 4. Identify Pin 10 and Pin 9 on the female end of the extension cable. Refer to the illustration below. Notice that a DB-25 connector is wider on one side. The pins you want are the 4th and 5th from the left on the wider edge. USE A FLASHLIGHT TO FIND THE MARKINGS IF YOU HAVE ANY DOUBT. Front View -------- Pin 10 - 4th from left on wider edge Female DB-25 | ---- Pin 9 - 5th from left on wider edge Connector | | v v ____________________________________________________________ / \ \ 13 12 11 10 9 8 7 6 5 4 3 2 1 / \ / \ 25 24 23 22 21 20 19 18 17 16 15 14 / \______________________________________________________/ Pin 10 is the interrupt line (the ACK line) Pin 9 is the high order data line (the 80h bit) 4. Create a loopback wire. A standard paperclip works fine. Just straighten it out and bend it into a "U" shape with the ends 1/8 inch apart. Make sure that the paperclip is SMOOTH and has NO ROUGH EDGES that might damage the plastic connector. 5. GROUND YOURSELF to the PC and to the parallel port by touching your hand and the loopback wire first to the PC's metal chassis near the parallel port connector and then to one of the connector nuts or the connector metal housing itself. Do this to DISCHARGE ANY STATIC ELECTRICITY you may have about you (created for example by scooting across the rug in a silk negligee on the way to your PC or by stroking your cat with woolen gloves while purusing this document). Parallel Port Information System Page 33 --------------------------------------------------------------------------- Parallel ports are usually resistant to static discharge, but not all ports are created equally, so don't ask for trouble. 6. Carefully insert the paperclip into the extension cable's female DB-25 connector so that Pin 9 is connected to Pin 10. DON'T FORCE IT. It will insert at most about 1/4 inch (about .5 cm) and there should be absolutely no physical resistance. 7. Now run Parallel. It will automatically use the loopback to determine which IRQ level the port is actually using. You may loopback more than one, or all, ports at the same time. Parallel will report that is has detected a proper loopback. 8. Remove the loopback when you are done. 9. Congratulate yourself on using reasonable handling precautions when working with expensive equipment. TechNote: Making Your Own Loopback Connector -------------------------------------------- We strongly advise that you make a loopback connector, inside of using the expedient paperclip approach. Simply obtain a male DB-25 connector and solder a permanent connection bewteen Pin 9 to Pin 10 on the back of the connector. Male DB-25 connectors are inexpensive and available in electronics parts stores. Cheap DB-25 jumper boxes cost only a few dollars. This will prevent any physical damage to your port, which is the major source of risk with this procedure, and the reason for our incessant nagging about precautions. This sort of loopback connector will be no more dangerous to your system than a printer, and is a handy accessory if you frequently use Parallel. Connect Pin 10 to Pin 9 Back View ----- Pin 10 - 4th from left on wider edge Male DB-25 | | Pin 9 - 5th from left on wider edge Connector | | v v ____________________________________________________________ / \ \ 13 12 11 10 9 8 7 6 5 4 3 2 1 / \ / \ 25 24 23 22 21 20 19 18 17 16 15 14 / \______________________________________________________/ Pin 10 is the interrupt line (the ACK line) Pin 9 is the high order data line (the 80h bit) Parallel Port Information System Page 34 --------------------------------------------------------------------------- Miscellaneous Topics -------------------- Technote: Pseudo-Bidirectional Ports, A Special Case ---------------------------------------------------- A 4bit port is pseudo-bidirectional (also called pseudo-8bit, sometimes semi-8bit) when it is capable of performing 8BIT input when connected to a device which has strong drivers. So this pseudo-bidirectionality comes about as the relationship between the port and the device it is connected to. This type of port will appear to be a 4BIT port with most parallel port external peripherals, since low power CMOS drivers are by far the most common in these external devices. A few peripherals have stronger TTL drivers which can achieve 8BIT operation by overdriving the port. There are even sub-classes of ports which can achieve the effect depending on what data is used. Some vendors describe their ports as bidirectional when actually they are only pseudo-bidirectional and will function as 4BIT ports with most peripherals. True 8BIT ports are preferable because they have a significant speed advantage with most external peripherals. Indeed, some parallel port peripherals require true 8BIT behavior. Identifying pseudo-bidirectional ports -------------------------------------- Step 1 => Read the cautions and disclaimers applying to loopback Step 2 => Read them again Step 3 => Select the port. The test only applies to 4BIT ports. Step 4 => Attach a parallel port extension cable to the port Step 5 => At the female DB-25, loopback Pin 8 to Pin 21 (GND). Step 6 => Run Parallel Step 7 => If Parallel reports "Data port has stuck bits" then the port is likely to have semi-bidirectional capability. Parallel Port Information System Page 35 --------------------------------------------------------------------------- Parallel Port Standards ----------------------- 4bit and 8bit parallel ports ---------------------------- There is no true standard for these types of ports other than the actual behavior of existing systems. The original IBM PC Technical Reference manual gave a schematic for the parallel port which was ambiguous about the ability to input from the printer port. Various vendors interpreted the ambiguity differently ... and this appears to have been the genesis of a persistantly loose and confused industry attitude toward parallel port standards. EPP Specification ----------------- There are two substantially incompatible standards for EPP parallel ports: the original EPP Standards Committee version 1.7 standard, and the IEEE 1284 Committee standard. We call these two types of EPP ports "EPP 1.7" and "EPP 1284". The two standards are sufficiently similar that new peripherals may be designed in such a way as to support both standards, but existing EPP 1.7 peripherals will generally not operate with EPP 1284 ports. The reference implementation of EPP 1.7 is the Intel 360SL chip. There are several implementations of EPP 1284 including the SMC 66x, the National PC87xxx family, and perhaps others. Chipset vendors are rapidly adding advanced parallel port functionality to their product lines. We will continue to review these chips as they appear from other manufacturers. ECP Specification ----------------- The ECP port standard was developed by Microsoft and Hewlett- Packard. The standard specifies a PC parallel port with certain I/O registers and features and an external signalling behavior. The external signalling specification has been incorporated into the IEEE 1284 specification as the ECP mode of 1284. Reference implementations of ECP include the SMC 66x, the National PC87xxx, and others. These chips vary in the processes required to configure, and specific PC implementations will vary in their setup and/or BIOS support. Parallel Port Information System Page 36 --------------------------------------------------------------------------- IEEE 1284 Specification ----------------------- The IEEE 1284 specification defines the electrical signalling behavior external to the PC for a multimodal parallel port which may support 4bit, 8bit, EPP, and ECP modes of operation. Not all modes are required by the 1284 specification and the standard allows makes some provision for additional modes. The IEEE 1284 standard is targeted at specifying the behavior between a PC and an attached device, most specifically attached printers, although the specification is of interest to vendors of parallel port peripherals (disks, LAN adapters, etc, etc). The IEEE 1284 standard is currently maintained by Larry Stein of Farpoint Communications (see Vendor Contact section). The IEEE standard has additional "substandards", including IEEE 1284.3 (daisychain and multiplex standard) and the committee is beginning work on operating system standards and certification processes. The IEEE 1284 style parallel port is required for PCs to comply with the PC95 platform specification. We know of no parallel port implementations with native plug-and-play support. Various non-PC/DOS/Windows hardware and software vendors (Sun, Apple, Next) have shown interest in the committee's efforts. It is very likely that future versions of Windows will support the 1284 specification, at least in the area of high-speed printing. The 1284 specification will also likely be approved as a component of the Desktop Management Task Force (DTMF) standard for PC resource management. The downside of the IEEE 1284 specification is that it does not specify the PC's internal interface to a 1284 compliant parallel port, either at the ISA register level or a software API level. Each chipset vendor is implementing subtly different behaviors in their chipsets, especially as regards configuration and setup - a process which is recreating the same system and software management mess that exists on earlier generations of parallel port technology. In order words, the IEEE 1284 specification does not answer the basuc question "What is a parallel port and how do I perform I/O to it?". Perhaps the Committee's efforts will successfully expand to provide a unified solution, and perhaps such efforts will again be too little, too late in the technology curve to achieve a unified practical standard. To date, the IEEE 1284 standard does not represent a unified solution to the challenges and potential of future parallel port technology. It represents a tolerable, if uninspired, next step in the evolution of particular classes of the technology. Parallel Port Information System Page 37 --------------------------------------------------------------------------- Parallel Port Standards Diagram ------------------------------- The following diagram attempts to depict the interrelatedness of various standards affecting the PC parallel port. It is useful to keep in mind the distinctions between systems, interfaces, port designs, and specific chips when considering parallel port issues. Since the parallel port has been a "poor relation" in the evolution of these standards, there are gaping holes in the overall standarization process. For example, there is no standard for hardware independent I/O to any parallel port and device. Existing proposed standards are inadequate to the purpose. Such a standard must provide a level of adaptive flexibility in expanding dynamically to incorporate new instances of ports, devices, and I/O methods. Actually, the Plug-and-Play standards concept is an interesting paradigm for such a parallel port software standard, which would treat ports, devices, and I/O methods as pluggable entities in a comprehensive and real-time extensible software architecture. ------------------------------------------------------------------- | Platform | PC95 Platform DTMF Individual Level | Standard Standard Operating System Standards | Software Standards | ^ ------------------------------------------------------------|------ | | Interface | IEEE 1284 Interface possible future IEEE | Standards | Standard software standards --- ? | ------------------------------------------------------------------- | PC Port | EPP 1.7 Port MS/HP ECP Port Standards | Standard Standard | ------------------------------------------------------------------- | C&T Specific | Intel SMC National Cirrus Logic Chips | 360SL 66x PC87xxx StarTech | others | ------------------------------------------------------------------- | Example | SL laptops Intel IBM unknown Specific | with 360SL Pentium ThinkPad or Systems | or equiv. Mthrbrd 755 forthcoming | ------------------------------------------------------------------- Parallel Port Information System Page 38 --------------------------------------------------------------------------- Parallel Port Buyer's Guide --------------------------- This Guide is intended to serve as a starting point for user's in search of quality parallel ports and peripheral devices. Parallel Technologies makes no warranties regarding these products and indeed we remind you to independently verify that the product will perform as expected in your environment. Parallel's evaluation and recommendation policy is: 1. We recommend only those products that we ourselves have tested extensively. 2. We make only positive recommendations. Inferior products will generally NOT be mentioned unless we consider them patently offensive to the user. 3. Vendors are invited to arrange evaluations of their products so that they may be included in the Buyer's Guide. We will evaluate the product and propose a short description of it's capabilities, features, and quality. The vendor has the option of requesting that the product not be listed. 4. We are planning to expand the coverage in the Buyer's Guide to include parallel port peripheral devices: LAN adapters, disks, SCSI adapters, CDROMs, and so forth. Again, interested vendors are welcome to arrange and actively contribute to a review of their product. The "no-pan" rule will apply. Direct Sales suppliers of products are listed in those cases where such suppliers are known and have proven reliable in the past. See the Vendor Contact section for specific vendor information, including telelphone numbers and email addresses, if applicable. 4bit parallel ports ------------------- This type of port is not recommended. Although most external parallel devices will support this type of port quite well, it is considerably slower at input operations than all other port types and has no cost advantages. At a minimum, get an 8bit port or better yet, one of the advanced port types (EPP, ECP, or a multimodal port which support both EPP and ECP). 8bit parallel ports ------------------- 8bit parallel ports are adequate for CURRENT printing purposes and may be used with all parallel port devices. However, you Parallel Port Information System Page 39 --------------------------------------------------------------------------- should consider buying an advanced parallel port (particularly an EPP/ECP capable multimodal port) when buying new systems. Mfg & Model Features Suppliers -------------- ----------------------------- --------------- STB DSP 550 basic 2S+P ISA add-in card Essential Data requires jumper for 8bit mode JAZ COmputer has 16550 serial ports -------------- ----------------------------- --------------- Everex MagicIO very clean signals hard to find -------------- ----------------------------- --------------- other 8bit generic 2S+P I/O cards Parallel reliably detects them highly variable quality -------------- ----------------------------- --------------- QuickPath multifunction ISA add-in card Essential Data PortFolio IDE, 4 floppy, game port 4 serial ports with 16650's 2 parallel ports EPP Parallel Ports ------------------ EPP-capable parallel ports are generally found only on laptops, as a result of their introduction on the Intel 360SL I/O chip which was part of the SL chipset designed for laptops. We have listed one supplier (FarPoint) for a ISA add-in card suitable for desktops. Be sure that you identify the VERSION of EPP support the port provides, EPP 1.7 or IEEE 1284 EPP. EPP 1.7 is the older Intel-style EPP which is compatible with many existing parallel port devices such a Xircom LAN adapters, Trantor SCSI adapters, SyDOS cartridge disks, and so forth. IEEE 1284 EPP is a new specification for EPP which is not completely backward-compatible with the EPP 1.7. This means that most existing parallel devices do not work with IEEE 1284 EPP. Tech Note: It is possible to design parallel port devices so that they are compatible with BOTH the EPP 1.7 and 1284 EPP specs, however existing devices typically don't do this yet. Existing devices generally support only EPP 1.7. Parallel Port Information System Page 40 --------------------------------------------------------------------------- If you are buying a parallel port device (LAN, Disk, CDROM, etc, etc) for general use, consider holding out for a version that support BOTH EPP 1.7 and IEEE 1284 EPP or ECP modes of operation. This gives you support for the large installed base of SL style laptops and compatibility with future system where IEEE 1284 style ports will predominate. Mfg & Model Features Supplier -------------- ----------------------------- --------------- Intel SL-based any laptop fully implementing many and varied laptops Intel 360SL compatibility or compatibles more than 50 models available provides EPP 1.7 capability -------------- ----------------------------- --------------- Farpoint Fport ISA add-in card with EPP 1.7 Farpoint downloadable personalities has extra useful IO addresses has extra useful IRQ levels good documentation value-added software for port configuration and drivers for fast DOS / NOVELL printing excellent tech support When buying an EPP-capable laptop for use with EPP external peripherals, it is important to BE VERY CLEAR about what you are getting. Even different models from the same manufacturer will have different implementations of EPP. CHECK COMPATIBILITY with the specific peripherals you intend to use. Example 1: Various SL-based Compaqs (SL25s, Conturas) have long has excellent implementations of EPP 1.7. However the more recent Compaq Aero appears to have a unique implementation which is not fully SL compatible. Example 2: The IBM Thinkpad 750 has an SL-compatible EPP 1.7 port, but the 755 model has a non-SL-compatible EPP port. Devices which work on one 700 model do not work on another. NOTE: This is not an indictment of these laptops by any means, as they as fine systems overall. It IS A REMINDER that you must independently verify the current state of compatibility between any particular EPP-capable laptop and parallel devices you plan to use with them. Laptop vendors generally will not know the answers to your questions about parallel ports and the best bet is the peripheral vendor. EPP 1.7 type parallel ports MAY OR MAY NOT be supported by any specific new IEEE 1284 type peripheral. We predict that most developers of new devices will want to support EPP 1.7 in order to be compatible with the install base of SLs, however they may Parallel Port Information System Page 41 --------------------------------------------------------------------------- opt to just support IEEE 1284 style EPP which leaves the SLs up the creek. It is possible to support both. So there is a certain risk factor in buying a laptop with only EPP 1.7 support today ... as an increasing number of systems are appearing with multimodal 1284 style ports. On the other hand, buying a laptop without EPP 1.7 leaves you incompatible with a large variety of existing external peripherals - you will have a bit of a wait as peripheral vendors scurry to support IEEE 1284. In the best of worlds, you will buy a system which supports all the IEEE 1284 modes, EPP 1.7 to boot, and comes with a handy utility which allows you to configure your port easily. ECP Parallel Ports ------------------ There are some very nice chipsets coming out for multimodal parallel ports which support the multiple parallel port modes. These chipsets have been appearing in systems since early this year and have just now reached the stage where they are safe consumer choices given a little caution. In some cases, early "steps" of particular chips had significant flaws and the buyer should verify that he is getting the latest step - not something that's been in a warehouse since Easter. Vendors may or may not provide user level support for selecting the parallel port mode. Check that any PC you are considering has appropriate CMOS port configuration or at least a separate utility for the purpose. Be aware that vendors may have BIOS upgrades which retroactively enable such support. If you need immediate support for existing parallel port devices operating in EPP mode you should INDEPENDENTLY VERIFY that the device works with the particular system you are considering. Be aware that existing EPP 1.7 type devices may or may not work with any particular new multimodal parallel port. It is still early days yet for ECP support in parallel port devices and this caution also applies to any early versions of such devices you might consider - check that they work with your specific system. Mfgr & Model Features Supplier -------------- ----------------------------- --------------- Intel Premiere motherboard with SMC 665 chip used in many Pentium PCI 66xQPF chip has various bugs Pentium systems Motherboard be sure you get the 665GT chip from various requires Plato version 10 BIOS "manufacturers" to enable EPP/ECP in Setup Parallel Port Information System Page 42 --------------------------------------------------------------------------- -------------- ----------------------------- --------------- Other systems be sure you get the 665GT chip various with SMC 66x check for software support -------------- ----------------------------- --------------- SIIG IDE multifunction ISA add-in card superstores, etc Professional IDE, floppy, 2serial, parallel uses the SMC 66x chip again, avoid the QPF version no port configuration software no value-added software decent jumper documentation -------------- ----------------------------- --------------- Farpoint ISA add-in card with SMC 66x Farpoint Fport Plus serial and parallel port only good configuration utility fast DOS / Windows driver 1 16650 serial port excellent tech support -------------- ----------------------------- --------------- Farpoint ISA add-in card with SMC 66x Farpoint Fport IDE IDE, 2 serial, parallel good configuration utility fast DOS / Windows driver 2 16650 serial w/ extra IRQs excellent tech support -------------- ----------------------------- --------------- Kouwell typical clone SMC 66x ISA card Essential Data IDE, 2 16550 COM, parallel, no value added software very low cost check that you get the GT step Advanced Parallel Port Chipsets ------------------------------- Mfg & Model Features Supplier -------------- ----------------------------- --------------- SMC 66xQPF multifunction I/O chip SMC multiple parallel port modes IEEE 1284 EPP and ECP no EPP 1.7 has bad serial port FIFO bug EPP mode has minor bugs good chip, but use the GT step -------------- ----------------------------- --------------- SMC 66xGT corrected version of 66xQPF SMC IEEE 1284 EPP and ECP adds EPP 1.7 fixes various bugs, com FIFO Parallel Port Information System Page 43 --------------------------------------------------------------------------- -------------- ----------------------------- --------------- National PC87xxx SuperI/O chip family National Semiconductor 322 is EPP 1.7 only 332, 334, 303, 323, and 306 have EPP 1.7, EPP 1284 & ECP various features on chips: IDE, 16650 serial, floppy, keyboard, clock, serial IR 5 volt and 3.3 volt versions -------------- ----------------------------- --------------- Chips & information not available C&T Technologies at this time, watch this space Parallel Port Information System Page 44 --------------------------------------------------------------------------- Vendor Contact Information -------------------------- Parallel Technologies Jay Lowe, VP 206-869-1136 voice parallel port wizards CIS 76640,203 206-869-1133 fax contract development Don Schuman, Pres product licensing CIS 72242,3631 DirectConnect(TM) technology licensing FarPoint Communications Larry Stein 805-726-4420 direct sales vendor CIS 71514,1057 specialize in parallel IEEE 1284 chairman very experienced Essential Data Bruce McKeag 800-795-4576 voice direct board sales CIS 70572,2670 408-955-0440 voice active on Compuserve 408-955-0821 fax JAZ Computer Products J. Zarifis 914-632-9531 voice direct board sales CIS 71042,1251 GEnie J.ZARIFIS Standard Microsystems Robert Gross chipset vendor National Semiconductor Kishor Padmanabhan 408-721-4563 chipset vendor Chips & Technologies forthcoming chipset vendor IEEE 1284 Committee Larry Stein 805-725-4420 CIS 71514,1057 - also - EET:STDFRM CIS forum Reputable vendors of parallel port technology are invited to forward us a short listing of their interests and contact information for inclusion here. Parallel Port Information System Page 45 --------------------------------------------------------------------------- Technical Support ----------------- Parallel is Freeware, and comes with Freeware-style support. It has been extensively tested with a range of systems from original PCs to Pentiums and works with all parallel port devices we've seen. We are willing to offer friendly assistance on an as-available basis, but only via Compuserve mail (CIS 76640,203), via Internet Email to jaylowe@halcyon.com. or in the Compuserve IBMHW forum. Alas, we do not offer free telephone assistance to the public. If you are in dire need of technical support in solving port related problems, you may open a support account by contacting: Mailing Address Shipping Address --------------------------- --------------------------- Parallel Technologies, Inc. Parallel Technologies, Inc. PO Box 7 10603 170th CT NE Redmond, Wa 98073-0007 Redmond, Wa 98052 (206) 869-1136 (206) 869-1133 (fax) ( for UPS, FEDEX, etc ) Compuserve: 76640,203 InterNet: 76640.203@COMPUSERVE.COM -or- : jaylowe@halcyon.com Custom versions of the Parallel Port Information Utility, and source code, are available. Vendors of parallel port hardware are invited and requested to contact us so that we may ensure that Parallel is compatible with their products. Permission is given to distribute and use Parallel without charge, provided you adhere to the terms and conditions of the license agreement given below. Specifically, you may not charge anyone for for sharing or using Parallel, and you may not modify it or change it. Nor may you use it as part of a commercial product or service without our written permission. Vendors may freely distribute Parallel on an individual basis, without charge, by electronic BBS or other means. However, you may not include it in or with your product without our written permission. We welcome your comments and suggestions by Email, phone, or fax. If you have particular features you would like to see supported by Parallel, we'd be more than glad to hear from you. Parallel Port Information System Page 46 --------------------------------------------------------------------------- About Parallel Technologies, Inc. --------------------------------- We at Parallel Technologies' have been creating innovative parallel port devices and software since 1989. Here are a few highlights: Firsts, Bests, and Mosts ------------------------ o 1st ... parallel port network adapter o 1st ... enhanced, bus-speed, parallel port o 1st ... parallel port external SCSI disk o 1st ... passthrough printing capability o 1st ... automatic self-configuring drivers o 1st ... universal support for all types of parallel ports o 1st ... network adapters with multiple media support o 1st ... Windows 3.1 multimedia driver for parallel adapter o 1st ... Multiple Parallel Device API for shared devices o 1st ... intelligent parasitic power for self-powered devices o 1st ... demonstration of daisychained parallel peripherals o 1st ... demonstration of multiplexed parallel peripherals o 1st ... Parallel Port Expansion System (now IEEE Multiport) o 1st ... Parallel Port Developer's Kits o 1st ... general purpose parallel port networking (DirectNet) o 1st ... Win 95 parallel port networking (DirectNet VCOMM) o PC MAG Editor's Choice for Ethernet parallel port NIC o most total network adapters -- 7 and counting... o most total parallel port peripherals -- 25 and counting... Partial List of Parallel Technologies' Developments --------------------------------------------------- o parallel port Arcnet adapter o parallel port Ethernet Adapter (two versions) o parallel port Token Ring Adapter (two versions) o parallel port portable SCSI disk drive o parallel port portable IDE disk drive o parallel port MIDI interface for Windows o parallel port Zero-Slot mouse adapter o parallel port IR Wireless Adapter o parallel port DSP signal processing interface o parallel port Multiport daisychaining system o parallel port Multiport 4-way parallel device multiplexor o DirectNet ODI driver for parallel port networking o DirectNet VCOMM driver for parallel port networking o DirectNet 4BIT cables for parallel port networking o DirectNet ECP cables for parallel port networking o DirectNet Universal cables for parallel port networking Parallel Port Information System Page 47 --------------------------------------------------------------------------- o DirectNet 4BIT/ECP and UCM cable interface specification licensed to Microsoft for joint Microsoft/PTI publication o Parallel Port Developer's Kit (Level 1) o Parallel Port Developer's Kit (Level 2) o Super IEEE 1284 Printing System Developer's Kit o DirectNet Parallel Port Networking Manufacturing License Kit o DirectNet Parallel Port Networking Software License Kit Many of these products, or their hardware and software components, are available for OEM licensing. We have in-depth experience with the wonderful and sometimes bizarre world of the PC parallel port and have served on both the EPP and IEEE 1284 standards committees. Having created more than TWO DOZEN parallel port devices with their associated drivers and software utilities, we are the most experienced source for off-the- shelf technology, developer tools, and contract services. Here are a few of our current and forthcoming products that you may find interesting. Parallel Port Developer's Kits ------------------------------ Parallel Technologies offers parallel port Developer's Kits which contain those hardware and software components necessary to build very high-speed, consumer-quality external devices. The Developer Kit technology has been used in over 25 parallel port devices including network adapters, parallel port SCSI and IDE disks, parallel port wireless IR adapters, parallel port MIDI and mouse interfaces, parallel to serial interfaces, and so forth. The software includes support for all types of ports, IO code that is extremely resistant to port idiosyncrasies, and full auto- detection of all port hardware features. The code is very well documented. A selection of sample drivers for parallel port devices is also available. Level One Developer's Kit ------------------------- Hardware schematics, timing diagrams, access methods and all other hardware information required to implement basic peripheral devices that are compatible with 4BIT, 8BIT, semi-8BIT,and EPP parallel ports The software section includes sample source code for register and block data access to the sample device. Parallel Port Information System Page 48 --------------------------------------------------------------------------- Level Two Developer's Kit ------------------------- Includes the Level One Kit PLUS additional very high speed IO techniques, passthrough port design techniques daisychain and multiplexor Multiporting design additional ECP hardware design techniques additional source code for ECP I/O techniques full source code for Parallel autodetect utility Also includes full EPP and IEEE 1284 specifications. Super IEEE 1284 Developer's Kit ------------------------------- Prototyping board, printer side interface FPGA equations, assembler source for 1284 negotiation, Windows 3.1 driver source. Allows the rapid development of IEEE 1284 printers. Also Super 1284 goes BEYOND the IEEE 1284 spec to allow very high-speed bi-directional I/O on 4BIT, semi-8BIT, and 8BIT ports. This means that Super 1284 printers can operate bi-directionally at very high speeds (upwards of 300Kbyte/sec) even on the installed base of "old-fashioned" standard parallel ports. Super 1284 maintains complete compatibility with IEEE 1284 ports and printers. It is a compatible enhancement that allows printer vendors to support high-speed operation without requiring EPP and ECP ports. DirectNet -- The Parallel Port Networking System ------------------------------------------------ The DirectNet parallel port networking system has been incorporated into Windows 95 and may be licensed for inclusion in other operating environments. The DirectNet system is a family of completely external connection devices and network driver software that allows PC-to-PC plug-and-play cable connections to be used as an alternative to more expensive LAN hardware. The DirectNet hardware technology includes 3 point-to- point cables, and multiport hub, and a distributed multdrop system which uses RJ-11 standard phone wiring. Parallel Port Information System Page 49 --------------------------------------------------------------------------- DirectNet supports speeds of 40 - 500+ KBytes/sec depending on the parallel ports involved and various other factors. The system is completely self-adaptive. Because DirectNet provides a suite of standard network drivers, it may be used with many existing networking and connectivity systems such as Windows 95, Windows for Workgroups, Netware Lite and Personal Netware, etc. DirectNet connections have been tested with more than a dozen commonly available networking and connectivity software packages. DirectNet is now in a BETA RELEASE status and Parallel Technologies is providing manufacturing and software licenses vendors who wish to include DirectNet products or capability in their product lines. Parallel -- the Parallel Port Information Utility ------------------------------------------------- A handy utility which examines your system's parallel ports and reports the Port Type, IO address, IRQ level, BIOS name, and an assortment of informative notes and warnings in a compact and easy to read display. The output may be redirected to a file for tech support purposes. Parallel uses very sophisticated techniques for port and IRQ detection and is aware of a broad range of quirky port features. Parallel is the definitive parallel Tech Support tool. Parallel is Freeware, subject to a restricted license agreement. It may be used free of charge for any personal, non-commercial purpose. Parallel may not be sold for profit, nor may it be distributed with any other product sold for profit. Vendors should contact us regarding commercial licenses. OEM Products ------------ Most of our products are available for OEM licensing, including network adapters, EPP-capable hard disks, parallel-SCSI interface, parallel MIDI adapter, and the MultiPort parallel port expansion system. Also available are numerous off-the-shelf hardware and software components including: device schematics, FPGA equations, DOS and Windows driver source code, etc. Parallel Port Information System Page 50 --------------------------------------------------------------------------- Development Services -------------------- We specialize in contract development of parallel port peripherals and associated software including DOS and Windows device drivers. Our broad and deep experience with parallel port devices and our commitment to specialization allows us to design, implement, test, and support them very efficiently. You might be interested in our 45/90 development offer. We propose to convert almost any ISA peripheral into a parallel port device in only 45 days to prototype, 90 days to production. We also offer more limited development support, such as developing additional device drivers or enhancements for existing peripherals. We are quite experienced with EPP and ECP ports and are ready to upgrade your existing parallel port devices for peak performance. Consulting and Training ----------------------- In support of in-house development, you will find our consulting and training services invaluable in avoiding the pitfalls of parallel port development - and achieve the highest possible product performance and quality. We conduct in-house trainings and design consultations in hardware, software, and product design / management. You may find these trainings useful in bringing your development and management team up to speed on parallel port issues. Parallel Port Information System Page 51 --------------------------------------------------------------------------- Software License Agreement -------------------------- IMPORTANT Read this agreement before installing or using the Software. Installing and/or using the Software on your computer indicates your acceptance of these terms. If you do not agree to these terms and conditions, delete the Software and all it's associated files from your computer. This Software License Agreement gives you ONLY RESTRICTED RIGHTS to use the Software (and all it's associated files and documentation) as follows: YOU MAY 1. Use the Software without charge on as many systems as you wish, 2. Share the Software with others for their personal use, but only if you share it intact, without any changes or modifications of any kind, and complete with all it's documentation and associated files. You must pass it on exactly in the same form as we release it, or not pass it on at all. 3. Make backup copies of the Software, so long as you place our copyright notice on the backup copies, 4. Request and receive limited technical support as provided in the Freeware Product Support Policy below. 5. Vendors may distribute the Software free of charge by electronic or other means for the purpose of technical support, but may not include the Software in products without our written permission. YOU MAY NOT 1. Use the Software in any way except as provided in this agreement, 2. Modify, alter, copy, transfer, or reproduce the Software in any way, except as expressly allowed in this agreement, 3. Translate, de-assemble, de-compile, reverse program, or reverse engineer the Software or any of its components, 4. Charge any kind of fee for distributing the Software without our written permission, 5. Use the Software for commercial purposes without our permission, 6. Sublicense, lease, rent, sell, distribute, or otherwise dispose of the Software without our written permission. This license is effective from the date of first use of the Software and shall remain in force until terminated. You may terminate this agreement by destroying any and all copies of the Software and its documentation. Parallel Port Information System Page 52 --------------------------------------------------------------------------- Parallel Technologies, Inc. may terminate this agreement if you fail to comply with any of the terms and conditions of it. You agree to destroy any and all copies of the Software and its documentation, in whatever form, if we terminate this license agreement, and you agree to provide us written certification of such destruction upon our request. Statement of Exclusion of Warranty ALL PRODUCTS DELIVERED PURSUANT TO THIS AGREEMENT ARE DELIVERED ON AN "AS-IS" BASIS AND PARALLEL TECHNOLOGIES, ITS DEALERS AND DISTRIBUTORS, EXPRESSLY DISCLAIM ANY AND ALL WARRANTIES OR CONDITIONS OF MERCHANTABLE QUALITY OR FITNESS FOR A PARTICULAR PURPOSE. Limitation of Liability PARALLEL TECHNOLOGIES DISCLAIMS ALL WARRANTIES RELATING TO THIS SOFTWARE, WHETHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, AND ALL SUCH WARRANTIES ARE EXPRESSLY AND SPECIFICALLY DISCLAIMED. NEITHER PARALLEL TECHNOLOGIES NOR ANYONE ELSE WHO HAS BEEN INVOLVED IN THE CREATION, PRODUCTION, OR DELIVERY OF THIS SOFTWARE SHALL BE LIABLE FOR ANY INDIRECT, CONSEQUENTIAL, SPECIAL, PUNITIVE, OR INCIDENTAL DAMAGES OR DAMAGES DUE TO LOST PROFITS, DATA, OR INFORMATION ARISING OUT OF THE USE OR INABILITY TO USE SUCH SOFTWARE EVEN IF PARALLEL TECHNOLOGIES HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES OR CLAIMS. IN NO EVENT SHALL PARALLEL TECHNOLOGIES' LIABILITY FOR ANY DAMAGES EVER EXCEED THE PRICE PAID FOR THE LICENSE TO USE THE SOFTWARE, REGARDLESS OF THE FORM OF CLAIM. THE PERSON USING THE SOFTWARE BEARS ALL RISKS AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. This warranty gives you specific rights and you may have other rights. This agreement shall be governed by the laws of the State of Washington and shall inure to the benefit of Parallel Technologies, Inc. and any successors, administrators, heirs and assigns. Any action or proceeding brought by either party against the other arising out of or related to this agreement shall be brought only in a STATE or FEDERAL COURT of competent jurisdiction located in King County, Washington.