• Please review our updated Terms and Rules here

Tandy 1000 Parallel Ports, Part II

Great Hierophant

Veteran Member
Joined
Mar 22, 2006
Messages
1,928
Location
Massachusetts, USA
Early Tandy 1000s have a 34-Pin Card Edge port to connect to a printer. This port was taken from earlier Tandy devices from the TRS-80 line and was designed to be compatible with the pre-IBM Centronics standard. IBM added and changed a few status and control signals and used a DB-25 connector. Early Tandys 1000s sort of updated the port to include IBM's new signals, but not completely.

The early Tandys, 1000/A/HD/EX/SX/HX/TX, generate the printer port signals through a custom chip called the Parallel Port Gate Array. This chip provides 8 data bits, the status bits (Error, Select, Paper End, Acknowledge, and Busy) and the control bits (strobe, auto feed, initialize printer, select input, IRQ enable). All these signals are to be found on the IBM parallel port except IRQ enable. Tandy does not provide all the bits on its parallel port, even with an adapter. This is where you start to see incompatibilities with non-Tandy peripherals.

The later Tandys, the TL, TL/2, TL/3, RL, SL, SL/2, RLX, RSX, all include their parallel port logic inside the PSSJ chip. The earliest incarnation of this chip, codenamed Jacksboro, does not provide a Select line. Jacksboro can be found in the TL and SLs. The second revision of the PSSJ, codenamed Bonanza, is found in the TL/2, SL/2, RL, 2500XL and 2500XL/2 as well as some late manufactured TL and SLs. I am not sure whether the select line was restored. These chips may support a bidirectional parallel port, but it may be a non-PS/2 standard and the functionality was only offered on the RL. The third and fourth revisions of the PSSJ were codenamed Hensdale, found only in the TL/3, and Hensdale 2, found in the RLX, RSX, 2500RSX, 2500SX and Sensation!. This revision adds support for a PS/2 Bidirectional Parallel port.

The only Tandy 1000s to have a DB-25 port are the RL, TL/3, RLX and RSX. All older models have the Card-Edge port.

Another issue is that since the Tandy 1000s internalizes all the ordinary parallel port logic into one chip, there is no way to modify the interface to support a bidirectional mode, except for those machines that explicitly provide for it (RL, TL/3, RLX, RSX) Any devices requiring bidirectional mode, which includes many modern printers and many external drives, have no chance with working with any Tandy 1000 with a card edge.

So, whats missing? Well, Tandy never seemed to like the Select and Select Input signals, as it never connected both to the card edge connector on the same machine. Despite its name, Select Input is sent from the computer to the printer to select the printer. The printer sends the Select signal to indicate that it has been selected. It probably assumed that those signals were generally regarded as superfluous hand-shaking signals. The Acknowledge, Initialize Printer, and Busy signals can usually serve to communicate with a printer. Software decides what to do with all these signals anyway. The old Centronics standard had signals called Busy Negative and Initialize Negative (in addition to Positive versions), which seem to correspond to the function of Select and Select Input, respectively.

Among the parallel port devices which tend to have issues with the Tandys are the Iomega 100MB Zip Drives, the Xircom PE3 Ethernet Adapters and the Disney Sound Source. The Iomega and Xircom adapters can send data to a standard unidirectional parallel port at no more than five bits at a time, using the Status Bits. However, the Select signal is omitted from the card edge connector on every Tandy 1000 after the original, including the 1000A & HD. Thus you are missing a bit and reads from these devices must fail. If you are sufficiently brave, you can solder a wire from pin 16 of the Parallel Port Array chip of the pre-PSSJ models to an unconnected pin on the card edge. Unless Tandy decided to reconnect the pin on its Bonanza or Hensdale PSSJs, you are out of luck with nibble mode. However, since the Hensdale PSSJs support the PS/2 Bidirectional Mode anyway, you are better off.

The Select Input signal can be sent to the card edge on the 1000A, 1000HD, 1000EX, 1000SX, 1000HX, 1000TX, 1000TL, 1000SL, 1000SL/2 via jumper. On the 1000RL, there is an option for it, but the user must install jumper pins himself. The original 1000 requires a wire from pin 26 of the parallel port array. There are no jumpers for it for the TL/2 or other 1000s or the 2500XL and 2500XL-2.

The Disney Sound Source claims that it does not work with the RL, TL/3 or 2500XL. Disney uses the 8-data pins and the Acknowledge, Initialize Printer and Select Input lines. However on Tandy with a card edge it uses a special adapter, and because the Select Input signal cannot be guaranteed to be available, the Auto Feed signal is used instead. When Disney released games for the Sound Source, it probably did not account for the Tandys initially, because different values must be sent to the parallel port to get the Sound Source to work correctly on Tandys with less than full compatibility. It seems that the Hensdale-2 chip in the RLX and other machines put the Select Input back on the connector, as games do not include later Tandys on the list of computers which do not work with the Sound Source. I assume that the line is not connected on the TL/2, 2500XL or 2500XL-2. If the user added the jumper to the RL, then the Sound Source should become fully compatible.
 
GH

Great article on Tandy printers. They were always kind of a pain in the rear when attempting to use a Tandy printer on a PC. The DMP-130 could be used on IBM PC (clone) if you purchased the optional Tandy PC printer cable. If memory serves me correctly, you needed to tape off pin 33 on the DMP-130 for complete IBM/compatibliity. Also, the DMP-130 could be made to emulate the IBM ProPrinter, but you would only see 128 characters out of the full 256 IBM character if set to the IBM mode. Still in all, it was a great printer for the money (@ $350.00) back in 1985/86.
 
I have a theory about the bidirectional function of the RL. The technical reference and jumpers manual states that the RL's parallel port becomes bidirectional by connecting the Select Input line to the parallel connector. But how is this possible? Since the Select Pin is almost certainly not available, the 8-bits must be composed of Error, Paper End, Acknowledge, Busy, Strobe, Auto Feed, Initialize Printer and Select Input. Normally, the last four are not written to by an external source, but maybe Tandy modified that in its logic. Otherwise, an external write to the Select Input bit must allow an external device to reverse the direction of the data bits. However it is done, it is not standard and requires a special driver for a drive. Tandy offered a 25-1087 1.2MB External Floppy Disk Drive, and presumably this and stuff from PC Enterprises and DCS Industries were the only companies to supply drives that would work with the RL's "bidirectional" parallel port. See here : ftp://ftp.oldskool.org/pub/tvdog/tandy1000/documents/zipnotes.txt
 
I have a third theory. The driver and utilities for the 25-1087 1.2MB External Floppy Drive were written by Microcomputer Solutions. They made the backpack parallel port floppy and CD drives. The Tandy drive is probably a rebadged version of the MS drive.

Now it has been confirmed that the MS drive will operate in the nibble mode, if the PS/2 bidirectional mode is unavailable. The Tandy RL can, even assuming the Select signal is unconnected, still implement a nibble mode transfer. Instead of Select, Paper Empty, Busy and Error, Acknowledge, Paper Empty, Busy and Error are used to form the nibble. However, now there is no reliable status input to be received from the drive, unless Select Input is somehow used for this purpose.
 
Apparently, I have overlooked the I/O Port settings in Technical Reference manuals. It specifically assigns 37A Bit 5 to be "Output Data Enable" and has since the original 1000. This suggests that the parallel port array and PSSJ chips have bidirectional functionality built into them. Nothing else does
 
Without the SELECT pin, you're out of luck on many non-printer parallel port peripherals. One of the aspects is that the designers of those devices had plenty of output lines, but only 5 input lines on the standard PC interface. So many devices resorted to "byte" transfer in the computer-to-device and "nibble" in the device-to-computer modes.

Logical if you think about it.
 
So to recap :

Tandy 1000 - Select connected, Select Input needs soldered wire; Card Edge

Tandy 1000A, HD, EX, HX, SX TX - Select Input jumper, Select needs soldered wire; Card Edge

Tandy TL, SL, SL/2 - Select Input jumper, Select not available; Card Edge

Tandy TL/2 - Select Input needs soldered jumper, Select not available; Card Edge

Tandy RL - Select Input needs soldered jumper, Select not available; DB-25 Pin Connector, "Bidirectional if Select Input connected"

Tandy 2500XL, 2500XL/2 - Select Input may need soldered jumper or wire, Select not available; DB-25 Pin Connector, Bidirectional

Tandy TL/3 - Select Input may need soldered jumper or wire, Select may or may not available; DB-25 Pin Connector, Bidirectional

Tandy 1000RLX, 1000RSX, 2500RSX, Sensation - DB-25 Pin Connector, Bidirectional, Select and Select Input are to be present on connector.

Is there a simple test or device to test whether all the status and control bits are present and functioning and whether bidirectional mode is working as it is supposed to be? The card edge devices are seemingly well documented, but the actual DB-25 ports are not.
 
Last edited:
As my last word on the subject, IBM defined Select, Paper Empty and Busy as active high and the rest of the control and status lines (not including IRQ enable) as active low in its implementation of the Centronics standard. Tandy may have switched the active logic level of some of these lines, but the various Tandy Technical References are contradictory. Even IBM didn't always get it right in its Technical References either. If the logic levels are switched for some bits, this will lead to incompatibilities. More info is unavailable at this time.
 
I end up returning to the purported bi-directional parallel port capabilities of Tandy 1000 systems every few months for some reason...

As Great Hierophant mentioned, every Tandy 1000 system, since the inception of the line, implements bit 5 of port 37A. As everyone knows, this bit is used in "bi-directional" PS/2 port implementations to switch the direction of the data. Given this, I think it's reasonable to suggest that:

1. IBM copied Tandy's idea. :)

And, more importantly,

2. The parallel port of every Tandy 1000 system should allow for PS2-style, byte-mode, bi-directional communication.

So... why doesn't it work in practice?

There is a fair amount of anecdotal information about parallel-connected mass storage devices not operating on Tandy 1000 systems, even after the SLCTIN has been jumpered to the port, and mostly relating to the use of Zip drives. My own attempts to get a Tandy 1000 RL working with a Backpack CD-ROM and Xircom parallel ethernet adapter were similarly unsuccessful.

Is it simply a driver issue? The Wikipedia page for IEEE 1284 offers this interesting tidbit:

"IEEE-1284 requires that bi-directional device communication is always initiated in Nibble Mode. If the host receives no reply in this mode, it will assume that the device is a legacy printer, and enter Compatibility Mode."

It's already been discussed that the Select status line is either not available, or not connected, in all but the earliest Tandy 1000 implementations, hence, the "standard" Nibble Mode cannot work. This being the case, and per the Wikipedia statement, a driver that strictly adheres to the IEEE 1284 method of negotiation might try Nibble Mode first, meet with failure, and never attempt a PS/2-style, byte-mode transfer.

Furthering the idea that this may simply be a driver issue is the fact that, wonder-of-wonders, I found a bi-directional device that works with the Tandy 1000 RL setup - the Shuttle parallel-to-SCSI adapter. With SLCTIN properly jumpered, the Shuttle configuration program identifies the parallel port in the RL as being "PS/2 Fast" compatible. ("Fast," in this context, seems to refer to the use of a fast interrupt handler.) And hey, it works. In the RL's 4.77MHz CPU mode, I'm reportedly getting a ~66KB/s transfer rate, compared to ~131KB/sec in the 9.54MHz mode. For now, I'm assuming that any of these Shuttle parallel-to-SCSI adapters (of which there are rebranded versions) can be used similarly with the other Tandy 1000 variants. Now we're playing with power!
 
Last edited:
Why not just install an ISA Parallel Card? That's what I used to do.
This is probably an adequate solution for many folks, but I don't have any spare ISA slots in my Tandy systems, and it's probably not the best use of the single slot in the 1000 RL besides... :)


Xircom's PE2PD and PE3PD packet drivers internally state compatibility with the following parallel port modes:

EPP Mode
Enhanced Bidirectional Mode
Bidirectional Mode
Enhanced Non-Bidirectional Mode
Non-Bidirectional Mode
Compaq Bidirectional Mode

For most Tandy 1000 systems, the byte-level, "Enhanced Bidirectional Mode" is what needs to be used. The driver is obviously not auto-detecting/selecting this mode during initialization though, and unfortunately, neither driver provides switches to manually select it.

Anyone care to take a peek at Xircom's PE2PD.COM and PE3PD.COM packet drivers, and determine what might need to be changed in order to force the use of this mode?

View attachment Xircom_PExPD.zip
 
I built a card-edge to DB25 adapter today to test the Shuttle interface with the (Super)Tandy TL/2 setup, and am pleased to announce that the byte-mode bidirectional parallel port functionality is indeed present in this system as well, and by proxy, the TL, SL, and SL/2. The hypothesis that even earlier T1K systems have the same bidirectional functionality seems very likely, at this point.

With the (accelerated) TL/2 setup, the Shuttle configuration utility reports read speeds of 241KB/s from a CD-ROM drive, and 270KB/s read and 250KB/s write from an Iomega Jaz drive, for anyone interested.

Also, I should mention that the TL/2, just like the RL, did not have a factory installed set of pins for the necessary SLCTIN jumper, and required some minor solder work. (Thanks a bunch, Tandy...)
 
Last edited:
Tandy's technical reference manuals are inconsistent in how they refer to the Select Input control and Select status lines, mislabeling them in a number of instances, and basically resulting in confusion.

Tandy 1000A, HD, EX, HX, SX TX - Select Input jumper, Select needs soldered wire; Card Edge

Tandy TL, SL, SL/2 - Select Input jumper, Select not available; Card Edge

Tandy TL/2 - Select Input needs soldered jumper, Select not available; Card Edge

Tandy RL - Select Input needs soldered jumper, Select not available; DB-25 Pin Connector

It's actually the Select status (input) line that can be connected by jumper in all of these systems - NOT the Select Input control (output) line.

All this means is that, when properly jumpered, these Tandy systems do have all five status lines, and simply lack one of the four control lines - hence, even "standard" nibble mode transfers should work.

That said, we still have the problem with various peripherals not working, due to this missing Select Input control line. While I'd thought it might be a driver/nibble-transfer issue, it turns out the problem is a bit more peripheral specific...

Xircom's patents reveal that the Select Input control line is used as a register address strobe for the internal control logic. My take-away from this is that these Xircom devices are simply never going to operate on a system without that control line, period.

Disney's Sound Source also uses the Select Input control line as an address strobe, but in their case, a special, "Tandy" adapter could be obtained and used in conjunction with an alternate stobe/power-down command.

As noted though, in all but the PSSJ-1 and PSSJ-2 bearing systems (TL(/2), SL(/2), and RL), the Select Input control line is at least present on the parallel interface chip, and can be run through a resistor or two and out to the card edge. I don't know of anyone who has done this, but it wouldn't be a terribly difficult modification, and would permit full-functionality of the parallel port.

With the 68-pin PSSJ chips, it looks like Tandy simply ran out of pins, and decided the Select Input control line would be the one to drop. Thankfully, at least these Shuttle parallel-to-SCSI adapters work without it, and using the aforementioned PS/2-style, byte-mode transfer method besides...
 
Interesting thread. Back in 89 or 1990 I did make up a edge cable like that web page shows as I would not afford the Tandy printer cables. Worked just fine and even used Lap Link with no problems.

I just booted up my TL the other day and letting my son play some old games on it now! Lap Link 5 still on the the hard drive too! Now to find out why the B drive took a dump on me.....
 
does a omega-zip-100 drive with the xt-driver work with a tandy100rl/hd or not?
I don't understand the technical stuff. do I need to put a jumper somewhere ?

thx!
 
"First, let us review some of the flaws in the Tandy 1000 parallel port. First, most of them use a card edge connector instead of the common DB-25 connector. To use it with anything except some Tandy printers or with a Tandy cable (rare) requires making an adapter. Second, one of the signals for the Control Port, the Select Input signal, is not present on the connector. Third, the Select signal on the Status port must be jumpered inside the system." ... "In most 1000 systems, the Select signal has a 2-pin header. In the TL/2, RL and maybe the SL/2, you will need to solder in a 2-pin a header or connect the pins through some solder.For the TL/2, the points are marked E1 and E2, unlike the other systems, this was not generally documented."

"I take no credit for this discovery, that goes to my friend Cloudschatze, but there does exist a parallel port to Shuttle SCSI adapter that apparently works with the Tandy card-edge port to transfer data in both directions. Shuttle made an adapter with a driver that will work in a pure bidirectional mode and overlook the lack of a Select-Input (Control Port) line, unlike other adapters. Therefore, with the card edge to DB-25 converter, the Shuttle adapter and a SCSI storage device, it is quite possible to get the parallel port to transfer data to the Tandy, at least the *X or better models."

1. I overlook that there are more differences from a Tandy printer-port to a regular printer port aside the lack of "select input" which can be fixed with a connection from E1-E2.
2. Using the Shuttle-SCSI adapter does not require E1-E2 connected/soldered as far as I read from above.
3. I will check how my Parallel2SCSI works, perhaps I do not have to modify my T1000 board (E1-E2).


Did I get that right, or am I still wrong here?

Thx guys.
 
Back
Top