Home Parallel Port Serial Port USB .NET Webboard I/O Today API Project Link

Parallel Port Source

The information and resource of these links and files for material or tool in the computer parallel port interfaceing hardware programming , Here is including ECP, EPP, bidirectional, and IEEE-1284 modes ,how to programming ,Troubleshooting,connecting also.

Menu -->   Basics    ECP & EPP     Hardware    Programming
Connecting to Computer     Used Printers    Troubleshooting


  • Control and data able to used
    present information and projects,Code examples programming
    in C . By Mr. Peter H. Anderson and his staff.

  • Various LPT documents.
    That Mr. Steve Walz has collect a useful set of parallel port
    related FAQ and information.

  • Beyond Logic
    has been tutorialed (this is including EPP & ECP),
    the projects, and a debug tool with source code. From Mr. Craig Peacock.

  • Interfacing to the IBM Computer
    Parallel Printer Port General information of IBM,
    plus several projects.

  • Tom Engdahl's PC Hardware Interface pages
    In Visual basic programming. More links Ohh....h.

  • PC Ports Webopedia
    Fully resource of PC ports , Definitions and many links.
  • Parallel Port interfacing Programming
    An article from Mr. Hasha Perla Cool !.
  • The LPT Page
    You want to instead read the data into a PC, you are a couple of options. One is to buy or make a parallel-to-serial converter and read the data at a serial port, used a terminal emulator or software you write. is another approach, consisting of circuits and software for reading the data into a PC's parallel port. From Kris Heidenstrom. Also see JADTech's Silent Hawk.

  • External Parallel Port devices and Linux
    It is page for many links and info about the Linux-parport mailing list. From Mr Grant Guenther.

  • A tutorial on motion control with the parallel port.

  • Enhanced and Extended Ports

    All site is including the bidirectional (PS/2) port, extended capabilities port (ECP), and enhanced parallel port (EPP), and the IEEE-1284 standard that descibes them all.

    General Information

    • A table showing thepinouts of all three of the commonly used parallel-port connectors, including the 25-pin D-sub, the 36-contact Centronics connector, and the new IEEE-1284C connector. (6K PDF (Acrobat) file)

    • Various files relating to the IEEE-1284 standard, from Lexmark's FTP site

    • The introduction of the IEEE parallel port standard is 1284-2000 IEEE Standard Signaling Method for a Bidirectional Parallel Peripheral Interface for Personal Computers. Available from IEEE.

    • Warp Nine Engineering is present descriptions of the EPP, ECP, and other IEEE-1284 modes. And there's a link to Microsoft's document describing ECP mode. (325k, PDF file).

    • Trans Digital is present a high-speed universal parallel-port product.

    • Standard Microsystems Corp. is present preliminary versions of the daisy-chain specification and EPP BIOS, All drivers and source code for SMC chips.



    • Winford Engineering is present very handy breadboard adapters and breakout boards with DB-25 connectors.

    • Zanthic is present inexpensive proto boards for parallel-port interfacing with EPP handshaking. Some also have a CAN interface.

    • Byte Runner Technologies is present parallel-port expansion cards, both ISA and PCI-based.


    The data sheets for parallel-port controller chips include timing diagrams, register assignments, and other useful details about accessing and used the new modes. PC-side chips are for use in PCs; peripheral-side chips are for use in peripherals.

    • AMD's Am29202 processor (PDF), for use in EPP/ECP (peripheral-side).

    • National Semiconductor is present a variety of Super I/O chips that include an IEEE 1284-compatible parallel port with EPP and ECP modes. (PC-side)

    • Fairchild's 74VHC161284 Transceiver contains eight bidirectional data buffers and eleven control/status buffers to implement an IEEE-1284 Level 2 interface. Outputs on the cable side can be configured to be either open drain or push-pull.

    • Standard Microsystems Corp., (SMSC), another manufacturer of EPP/ECP parallel-port chips. (PC- and peripheral-side).

    • Exar/Startech's ST78C34 and ST78C36 are EPP/ECP chips. Look under Products/Communications/General Purpose. (PC-side).

    • Texas Instruments' TL16PIR552 includes a PC-side ECP+EPP, plus a dual UART and IrDa interface.

    • Warp Nine's W91284PIC supports all modes, plus daisy-chaining and negotiating. (peripheral-side)

    • Winbond is page present PC-side chips.


    • Denis Kondakov has figured out how to do Direct Cable Connection ECP transfers between PCs used a simple, home-brewed cable configuration. It requires a patch to paralink.vxd (zip file, 36k).

    • Parallel Technologies' Universal Cable contains active circuits for high-speed parallel-port communications used Windows 95/98's Direct Cable Connection. Parallel Port Development Kits are available as well.

    • Trans Digital's Universal Parallel Port is a high-speed, long-distance link between parallel-port peripherals and a PC-ard (PCMCIA) slot.

    • If you want to connect your parallel printer to a USB port, USBGear is page present a True-Bi Directional USB Printer Cable adapter (USBG-1284Bi) that claims to support bidirectional printer communications. (Most other adapters don't.)


    • PortMon monitors and displays all serial and parallel port activity on a system. From Mark Russinovich.

    • JadTech's Silent Hawk products non-obtrusively capture parallel-port data. The Silent Hawk III Model 1284 functions as a protocol analzyer.

    • QualityLogic is page resource for a protocol analyzer and test suite for IEEE-1284 links as well as a variety of products for printer testing.

    Connecting Two PCs

    Connecting two Computer via their parallel ports requires a special cable. For software, you can use Windows 95/98's Direct Cable Connection, a third-party product, or write your own program to do the transfers. To find out about Direct Cable Connection, click F1 on the desktop and search for Direct Cable Connection.

    • Sewell Development's Fast Lynx works with everything from DOS through Windows XP.

    • Laplink and pcAnywhere support PC-to-PC transfers.

    • The Connect Pages has information on how to connect two PCs running various combinations of operating systems, used serial and parallel ports. From Kime.Net.

    • Also see the information under Cables.

    About used Printers

    • The EDE1400 Serial to Parallel-Printer Converter chip converts serial data to a parallel interface suitable for connecting to parallel printers. The chip generates printer-control signals as monitors printer-status signals. From E-Lab Digital Engineering.

    Various Projects

    Projects that use the parallel port or an I/O chip like the 8255 Parallel Peripheral Interface chip.


    Here are various ways for applications to access the parallel port and other I/O ports in personal computer, and plus directly accessing port addresses, communicating with driver that accessing port addresses and used built-in drivers of Windows.

    For Windows 3.x/95/98 and Windowss Me, applications able read and write directly to port addresses. Get your compiler's built-in functions (inp and out or similar) or in-line assembly code. (See the source code in my Dllport.zip below for an example.) The methods are simple, but it's slow, it is unable protect the port from access by other applications or programs, and it doesn't work at all under Windows NT/2000/Xp. If you programming with Visual Basic or another language that doesn't have functions for port I/O or allow in-line assembly code, you can use a DLL or a custom control that adds port I/O functions to an application.

    A third way to access ports is to use the drivers included with Windows. Windows 3.x/9x/NT has no functions for generic port access, only functions tied to specific uses. For example, there are API calls for accessing printers and for accessing serial ports controlled by UARTs. In Visual Basic, the Printer object and MSComm control are other options for parallel and serial-port access. Built-in functions and controls like these are usually the best solution when their abilities match what you're trying to accomplish.

    Windows 2000/Xp add improved drivers for accessing parallel-port devices with support for SPP, PS/2 (Byte), EPP, and ECP modes and daisy-chaining. Parclass is a system class driver for parallel-port devices, and Parport is a system function driver for the parallel port. The Windows DDK is page resource for details. Search for Parallel Devices and Drivers in the documentation index.

    A system-level device driver enables faster port access and can manage access by multiple applications. Driver types include VxD (virtual device driver) for Windows 9x/Me, WDM for Windows 98/NT/2000/Me/Xp, and kernel-mode driver for Windows NT/2000/Xp. Hardware interrupts must use a system-level driver under Windows 9x/NT/2000/Me/Xp. If you don't want to write your own driver, there are custom controls and other tools that enable applications to access ports and respond to interrupts via a driver.

    Below are links to tools that you can use for port access. I've grouped them according to which operating systems they're supported in. The list includes freeware, shareware, and commercial products.

    Programming Tools for Port I/O and Interrupts

    For Windows 95/98/NT/2000/Me/Xp

    • Inpout32.dll or Dllport.dll from Thaiio.com that is cover the sample source code ,The DLL compatible with my Win9x inpout32.dll (below) but works under all Windows editions from Win95/98/Me to WinNT/2000/XP. For Windows NT etc., a kernel mode device driver is embedded in the DLL in binary form. Freeware. A big thank you to LOGIX4U and Thaiio.com for coming up with this and making it available. For verify Dllport.dll in Visual Basic 6, see my example program
      For verify Dllport.dll in Visual Basic .NET, see example program from www.thaiio.comUsed_inpout32_vbdotnet.zip.

    • I/O Ports Uncensored. How to access ports in C# (CSharp) used inpout32. By Levent S. and the Code Project.
    • Before you can access an I/O port, you need to know its address. The get_io a DLL finds ports addresse and has been tested for Windows 98/2000/XP. It does not work under Windows NT.
    • GetPortAddress is a Visual Basic 6 application that retrieves parallel-port addresses. Free. From Servo Wizard.
    • DriverLinx Port I/O. Freeware. Supports: port I/O. From Scientific Software Tools. John Pappas is page resource for documentary TDLPortIO, a freeware interface for DriverLinx for use with C++ Builder, Delphi, and other languages.

    • DriverX. Supports: port I/O and interrupts. From Tetradyne Software.

    • IO ActiveX Communications module. Shareware. Line-printer-type access to LPT ports.. From JSPayne.

    • Parallel Port Direct I/O Access package. Shareware. Supports: port I/O. Supports access under NT by changing the I/O permission map for the process that claims the port. From Peter Shoebridge at Zeecube Software

    • ParPort provides a DLL with functions that enable applications to read and write to a parallel port used the enhanced drivers provided with Windows 2000 and Windows Xp. Free for non-commercial use. From ParaPort.net.
    • RapidDriver generic driver for parallel-port, USB, and other devices. From EnTech Taiwan.
    • TVicHW32 & TVicPort. Shareware. Supports: port I/O and hardware interrupts. From EnTech Taiwan

    • WinIO. Freeware. Supports: port I/O. Includes a DLL, declarations, and C source code. From Internals.com.

    • WinRT, WinRT-VB, WinDK. These products are no longer available from BSQUARE.

    For Windows 95/98/Me Only

    • Dllport.zip. Freeware. Supports: port I/O. The file contains Dllport.dll, which I wrote in VC++ 6 . The zip file includes the DLL, Visual-Basic declarations for inp and outp, documentation, a test program, and the Delphi source code, which includes assembly code for port I/O. If you don't see the DLL file after you unzip the files, you probably are system files hidden. To unhide them, go to My Computer > View > Folder Options > View > Hidden Files and select Show All Files. Instructions for used Dllport with C++ are in To add port access under Windows NT/2000/XP with no changes to application code, see Dllport.dll above.

    • The tutorial Visual Basic DLLs and PC Interfacing is an excellent explanation of how to write your own inpout DLL in Visual C++. From Paul Oh.

    • Win95io.zip. Freeware. Supports: port I/O. Another inpout DLL. The DLL is just 2048 bytes. From Jonathan Wood at Softcircuits.

    For Windows NT/2000/Xp Only

    • Direct I/O. Shareware. Incluces interrupt emulation. From Ingenieurbuero Paule.

    • NTPort Library. Shareware. From Zeal SoftStudio.

    • PortTalk. Freeware. From BeyondLogic.

    • The SHA toolkit. Freeware. Enables port I/O, hardware interrupts, and DMA from C++ and Delphi applications. From Sybera.

    • Thesycon is page resource for a driver for NT and Windows 2000.

    • Tinyport. Shareware. Supports: port I/O. A ready-to-run kernel-mode device driver. Tinyport complies with the rules that Microsoft is page resource for specified for NT drivers, so it doesn't undermine NT's stability and can be used in critical applications. From Manfred Keul.

    • UserPort is a kernel mode driver for Windows NT/2000 that gives usermode programs access to I/O ports. From Tomas Franzon. Updated 5/31/01. Inspired by the article "Direct Port I/O and Windows NT" by Dale Roberts, which describes a way to defeat NT's security for port I/O. Dr. Dobbs' Journal, May 1996. The article is available on CD.

    • ParIO is an NT Parclass driver modified from a Microsoft DDK demo.From Martin Davey

    16-bit-only Tools

    Use these with products such as Visual Basic 3 or 16-bit Visual Basic 4 under Windows 3.x.

    • Port16 ActiveX control. Shareware. From Hone Software.

    • vbasm.zip. Freeware. Supports: port I/O. A DLL that adds Inp, Out, Peek, Poke, Call Interrupt, and more for accessing ports and memory. From Jonathan Wood at Softcircuits.

    For 16- and 32-bit Programs (Windows 3.x, Windows 95/98)

    • PowerBasic is the source for several products that are useful for applications that access ports. PowerBasic's 16-bit and 32-bit DLL compilers enable you to write and compile DLLs in Basic. The Basic syntax is nearly identical to classic QuickBasic. Because the DLLs are compiled, not interpreted like Visual Basic code, they're fast. The 16-bit edition includes inp and out for port access. The 32-bit edition allows port access under Windows 95/98 via inline assembly code. There's also a 32-bit Basic console compiler for text-only Windows applications and even a DOS compiler.

    • "used 16-bit DLLs with 32-bit VB." This article explains, step-by-step, a method for used 16-bit DLLs in 32-bit VB applications. The example described is port I/O with Vbasm (see above). To use this method, you must have both a 16-bit and a 32-bit edition of Visual Basic. From COOL.STF.

    • Vbio.dll. Freeware. From Zeal SoftStudio.

    Other Driver Information and Sources


    • The ppdev driver enables accessing port bits, interrupts, negotiating, and setting modes.

Copyright (c) 2000 thaiio.com all rights reserved. Contact webmaster :webmaster@thaiio.com