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
& EPP Hardware Programming
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
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
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
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.
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.
Microsystems Corp. is present preliminary versions of the daisy-chain
specification and EPP BIOS, All drivers and source code for SMC
Winford Engineering is present
very handy breadboard adapters and breakout boards with DB-25
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.
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
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
ST78C34 and ST78C36 are EPP/ECP chips. Look under
Products/Communications/General Purpose. (PC-side).
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.
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,
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
monitors and displays all serial and parallel port activity on a system.
From Mark Russinovich.
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.
support PC-to-PC transfers.
Pages has information on how to connect two PCs running various
combinations of operating systems, used serial and parallel ports. From
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.
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
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
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
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
For verify Dllport.dll in Visual Basic .NET, see example program from www.thaiio.comUsed_inpout32_vbdotnet.zip.
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
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.
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.
generic driver for parallel-port, USB, and other devices. From EnTech
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
WinRT, WinRT-VB, WinDK. These products are no longer available from
For Windows 95/98/Me Only
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
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.
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.
Shareware. From Zeal SoftStudio.
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.
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.
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
Use these with products such as Visual Basic 3 or 16-bit Visual Basic 4
under Windows 3.x.
ActiveX control. Shareware. From Hone Software.
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
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
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.
From Zeal SoftStudio.
Other Driver Information and Sources