Updated W95 Printer Driver
Direct Cable Connection
DMA Printer Port (Uncut!)
Checking for DMA Use
Two Parallel Ports under W98SE
Boca Parallel Cards in Server 720
Parallel Port Pinout
Addresses vs. Modes
95A Parallel Ports
Port "A" (bottom parallel port) is an ExpressPrint Parallel
Port that supports IEEE 1284 (P) compliant devices at up to 2MB/s.
Using vendor supplied multiplexer and software, users can attach up to
four supported printers and output 300 dpi complex graphics at the rated
speed of the printer and still have capacity left over. Compared to a direct
LAN attachment, where data is sent over the LAN twice before being printed,
the busmaster ExpressPrint Parallel Port not only reduces the load on the
server processor, but prevents the LAN from being flooded with unnecessary
Port "B" (top parallel port) is a standard parallel port.
Note: If you
experience a problem with a non-IBM device when attaching it to either
the parallel port, you might need to go to the Change configuration screen
of the system programs and set the port DMA (direct memory access) arbitration
level to "Disabled."
Found this on Russ Wright's Cannon
Microsoft released a newer version of the LPT.VXD
file for Windows 95 the LPT.VXD is located in the SYSTEM directory
This LPT.VXD is to replace the version provided
in the Windows 95 service pack #1 and is newer than the version provided
with Windows 95 OEM or OSR2.x This latest LPT.VXD is version 4.00.955
Click here to download the file A5318.EXE
this file contains PRNT5UPD.EXE and README.TXT
Windows 95 Printing Extended Capabilities
(Ed. Applies ONLY to LPT A on 95A
An ECP provides high-speed printing, and support for ECP
and ECP devices is included in Windows 95. If you have an ECP, you can
connect either ECP or non-ECP devices to the port. In either case, using
an ECP will improve I/O performance, although ECP devices will show the
greatest I/O gains. An ECP can be configured in five different ways (defined
in the portís Resources properties), as shown in the following list.
Basic *.inf Configuration(s) Description
0 Standard I/O ranges for LPT ports only
1 Standard I/O ranges for LPT ports and any IRQ
2 Standard I/O ranges for LPT ports, IRQ, and any DMA
3 Any I/O ranges for LPT ports only
4 Any I/O ranges for LPT ports and any IRQ setting
To enable ECP support in Windows 95
1. Consult your computer (or add-in card) manual to determine the IRQ
and DMA settings selected for each of the ECP ports you want to use. Youíll
need this information to enable ECP support.
2. In the System option in Control Panel, click the Device Manager
3. Click Ports (COM & LPT), and then select the ECP device.
4. Click Properties, and then click the Resources tab. This dialog
box shows an I/O range that has been detected automatically.
5. In the Settings Based On field, select Basic Configuration 2. (See
the previous table for a description of possible settings for this field.)
6. In the Resource Settings list, click Interrupt Request, and then
click Change Settings.
7. In the Edit Interrupt Request dialog box, type the IRQ value you
noted in step 1, and then click OK.
8. In the Resources properties, click Direct Memory Access.
9. In the Edit Direct Memory Access dialog box, type the DMA value
you noted in step 1, and then click OK.
10. Reboot so the changes can take effect. After restarting, you can
take advantage of fast I/O capabilities offered by the ECP.
Direct Cable Connection
I've used DCC under W95 to hook up a 9533 to a 77s. A 76s to
a 77s. Go to the very detailed Connect
Pages at Kime.Net to find out how! Sure beats the hell out of SneakerNet
With apologies to "The Micro Channel Architecture Handbook"
ISBN 0-13-583493-2, pages 99-100. Spelling mistakes are probably mine.
"A practical application of Micro Channel technology that
breaks the microprocessor bottleneck in printing is making the printer
port into a DMA that uses a Direct Memory Access controller to move the
data. During a print job, the DMA printer port would briefly take control
of the bus, shuttle the data across, and step out of the way.
The load on the bus itself would immediately be reduced
by this technology, but that's only of the tiniest benefit to system performance.
This sort of advanced printer port trims the overhead on the bus because
it requires only the equivalent of 68,000 characters per second in bus
time to support the same 100,000 characters per second data rate. Fewer
instructions than characters are required because a 16-bit DMA bus master
would be able to move two characters at a time to the printer port instead
of the single character permitted by most printer ports in classic bus
systems. (Overhead mitigates the two-to-one theoretical advantage of the
double-width bus.) Of course, this increase in bus width and consequent
bandwidth saving is only an implementation issue more significant with
The important increase in performance to the single-tasking
system comes from savings in microprocessor useage. Nearly all of the millions
of instructions per second used in the classic bus scenario could be freed
up from the microprocessor by the bus master DMA printer port. The microprocessor
would need to do nothing but spend a few thousand cycles to set up the
DMA transfer, rather than continuously churning through millions of instructions
every second. The DMA controller itself would do all the dirty work. The
instructions it races through would not impact system performance at all.
All the time that the adapter and DMA controller are not
putting data on the bus most of the time, considering that less than 1/10th
(in truth, closer to 1/20th) of the bus bandwidth is used for actual transfer
of characters per task. Instead of being fully loaded and unable to perform
other tasks with any speed at all, the system with a DMA printer port would
have more than 90 percent of it's potential available while the printer
is running full speed. If the microprocessor has it's own cache memory,
the impact on system performance would be even less, potentially zero.
The economics of adding a DMA printer port to a high-performance
Micro Channel computer are astounding. The parts required to make a DMA
printer port are insignificant compared to the cost of an 80386-based computer.
As a result, in practical terma a DMA printer adapter could buy back most
of that system's performance for less than one percent of the total system
cost. In effect, DMA buys you the performance of another 80386-based computer
for pratically nothing.
A true bus master printer port would save more bus cycles
and might be easily justified in a multitasking or multiuser system where
bus cycles are at a premium. Remember that as earlier stated I/O transfers
can take 5 or perhaps 10 percent of the bus bandwidth per
task. This means that 5 or 10 tasks might consume a sizeable
portion of bus bandwidth at the expense of performance overall. In the
single-tasking system, however, the delays introduced by the processor-dependent
I/O adapters can be cost-effectively overcome by DMA.
Parallel DMA Use
Q. I know that the 56/57/76/77/85/90/95 systems use serial and parallel
ports capable of high-speed DMA transfers, but how do I know if my system
is set up to use DMA?
A. Simple. Start the System Program (either from the System Partition
on your hard disk drive, or the Refdisk), and look at the Arbitration Level
for the serial and parallel ports. The parallel port should be set to Shared
7, and the serial port should be set to Shared 4 for Transmit Arb Level,
and Shared 3 for Receive Arb Level. If your system has two DMA serial
ports, the second serial port should be set to Shared 6 for Transmit Arb
Level, and Shared 5 for Receive Arb Level. These are the defaults.
If the ports are set this way, they are using DMA.
Ports under W98SE
How do I ensure both my parallel ports are enabled on a 95A?
Dr. Jim Shorney (on sabbatical)
Actually, use of the LPT interrupts is software dependent.
Windows' 'standard parallel port', by default, is PIO and does not use
interrupts. Just set one up last night while trying to help
Art, and I was able to install both parallel ports as 'standard' with no
I got it using Jim's procedure with a few twists... I
made the port setting changes in system setup but left DMA turned on because
video manufacturer says I need ECP through DMA on the port for best performance.
Next I booted system, went in ControlPanel and added a new ECP port. However,
when checking the port in ControlPanel/System I did have an exclamation
point on the new ECP port.
I had to then change the ECP port @ manually under the resources
tab to 278-27A. (No more conflicts). Both the printer and video camera
are working fine. Printer on plain LPT port and camera on LPT2 (ECP) with
The Hunt for Red ExpressPrint
From: James P. Ward 982-6044 Dept.
W13A ,1715, Boca Raton Fl
ExpressPrint hardware shipped with all Vizcaya (and later...
) based systems. The 4-way printer support is achieved thru
a printshare box from Far Point Communications in San Jose. I believe
there is a NetWare and OS /2 driver for this function (Howard Greenberg
or Mike Derwin should know). The planner for all of this was Lew
Miller. Hope this gets the wheel rolling... Jim
The lone existing F/Mux is all I know to be in existence.
I'm not sure if Warp Nine Engineering will ever produce it. Now that USB
is out, there is less reason than ever to do so. For more info on the F/Mux,
Parallel Resistor Networks on 95A
Bourns 4816P-001 -330 (isolated 33 ohm) and 4816P-002
-472 (bussed 4.7K ohm) for each parallel port. Pdf for the 4800P familyHERE.
> Peter, is there a patch that allows the reconfiguration of the parallel
port to bidirectional?
Err ... PS/2 sysboard LPT are bidirectional by nature. There are 3 registers
used on LPT ports:
- data register (LPT-I/O +0)
- status register (LPT-I/O +1)
- control register (LPT-I/O +2)
The I/O port adress for LPT1 is usually 03BCh on PS/2,
the control register is then 03BEh. (You can determine the adress with
reading the bytes at 0000:0408 and 0000:0409 in the Bios adress space -
the LSB is first, it will read BC 03).
If you set bit 5 (direction) of the control register to
1 you can read from the bytes present at the data-register. To permanently
read from the LPT-port you need to set the bit 0 (strobe) to 1 you get
the bit pattern changes on the port. I use that for the little program
that reads the CP codes from another machine.
A proper handshake signalling between two computers using
the bidirectional mode will most likely work over reading the BUSY lines
from one computer to the ACK signal on the other ... you need to read the
status of the two lines to determine, which of the two is the sender and
which receives data. This is a bit tricky ... but some other software does
that already and uses this feature.
The PS/2 parallelport is a great device to be used as
e.g. input from a Analog-to-Digital converter (however: only 8 bit resolution).
For many simple purposes this is truely great. I used the parallel port
to control the functions of my AKAI tape-machine ... or used it for some
other weird stuff.
The system board provides two 25-pin D-shell connectors
to the parallel port controllers on the system board. The drivers to the
data lines can source up to 15 milliamps and sink up to 24 milliamps.
Boca Parallel Card
>On another subject, would you have any idea why a Boca parallel port
card won't work properly in a server 720? I tested it in my 95, and
it passed wrap tests under DOS, but my friend can't print to it from OS/2
in his 720.
Ahem ... I would say the BOCA is too slow. Remember
that the "target" machines for these cards were the Mod. 50 - 80 with the
MCA Stage 1 / Stage 2 layout. The 720 is not even "real MCA" but a Corollary
system, which uses 80MB/s data streaming mode on all MCA-slots. Therefore
only a very limited number of adapters has ever been announced for
it. The "normal" adapters *may* work in the 720 ... or may not. Most worked
though - but there was a number of adapters that did not. The Boca cards
use very large, very cheap ASICS -as the most of the Multi-I/O card do-
which are known to be slow and I got reports that they even fail on faster
Mod. 80 (and 76/77, 85, 90 and 95 as well).
The Mod. 95 also may handle them good or not - but the "True
MCA" machines have a slightly different mechanism / arbitration to handle
slower cards than the Corollary MCA bridge - obviously this implementation
is not 100% compatible with the MCA Stage 4 of the Mod. 9595 or the Stage
3 of the older 8595-machines.
>Unfortunately, the instructions warn not to use it in a 32 bit slot
as damage might result to card or machine.
This card is rather old and originally designed
for the slow 10MHz-80286 machines like Mod. 50 and 60, but will also run
in 16-bit slots in a 16 or 20MHz Mod. 80.
The "Full 32-bit" machines, like 85 / 90 / 95 run
on a later and much faster MCA-specification and therefore *might*
cause damage to the card buffering chips (those which connect the card
to the bus) due to a much to short cycle speed.
The manufacturer - aware on possible problems and
upcoming warranty issues - wrote this note in the manual to free himself
from possible loss. Logically. All in all I would say it is not specified
and not certified to be used in a Mod. 95.
The first thing to be damaged is the card
itself - but there is the risk of getting a sort of secondary impact on
the machines' systembus drivers, which might get permanently damaged because
of overload due to short-circuits in the adaptercard.
In case of doubt: I would not use it. Only
the manufacturer knows what might happen, and they don't write such a (negative)
passage in the manuals just to tease the users.
||-Auto FD XT
*** Data parity is a function of parallel port A only).
Port Addresses vs. Modes
Many software drivers cannot handle addresses outside
of 278-3BF. Parallel 4 (all modes) and the enhanced/extended Parallel 1
addresses are probably NOT supported unless you use OS/2 or a *nix.
Parallel 1 has a primary address of 3BC-3BF. IBM says
that the DMA controller does NOT support that address, so that's where
the odd 1278-127F come from.
Compatible is the old-styled unidirectional
Enhanced is what?
Extended is bidirectional mode.
Enhanced/Extended ports use DMA. I don't know what the other difference
is. Note that the enhanced port is one bit more than a standard port. Extended
ports are two bits wider.
I have installed an ECP Printer Port under "Add New Hardware".
Go to the ECP Port's Resources and select the correct address and DMA Channel.
It appears that DMA Channel 1 is used by DMA Arbitration Level 1. Am unsure
if that's true, but it still works. I don't have a parallel port device
yet to verify this other than my digital camera.
I also hacked msports.inf in the [1aaa] section so that
I had the extended port address. Dunno if that works better than the Compatible
address, but it "looks" faster. Odd, but the IBM manual lists the enhanced
mode, not the extended mode. The addresses in the adf for the planar are
the ones ending with a "d". Does this mean compatible mode only? Or does
it just show the non-DMA ports? Help!
ADF Settings for
Not all systems support these settings, nor will they be in the same
Parallel Port x
The parallel port x can be set
as Parallel 1 through 4 or the port can be disabled.
<Parallel 1 ( io 03bch-03bfh
1278h-127fh int 7)>, Parallel 2" (io 0378h-037fh int 7), Parallel
3 ( io 0278h-027fh int 7), Parallel 4 ( io 1378h-137fh int 7), Disabled
Parallel Port x DMA Arbitration Level
The parallel port x connector can be
set to any one of the available DMA arbitration levels. If the level
selected is shared then other devices can be set at the same level.
If the level selected is dedicated then only this device can be set to
<Shared level 7>,
Shared level 6, Shared level 5, Shared level 4, Shared level 3, Shared
level 1, Shared level 0, Level 7, Level 6, Level 5, Level 4, Level 3, Level
1, Level 0, Disabled"
Parallel Port x SCB I/O Address
The parallel port x connector can be set to any one of
the available SCB I/O addresses.
8900-8902, 9100-9102, 9500-9502, A100-A102, A900-A902, B100-B102, B900-B902,
C100-C102, C900-C902, D100-D102, D900-D902, E100-E102, E900-E902, F100-F102,