Mike's PCjr Page Logo

PCjr to ISA bus adapter

Introduction

One of the major shortcomings of the PCjr is the lack of expansion opportunities. Many things that a home user would need in 1984 were built onto the motherboard: two serial ports, two joystick ports, video card, etc. Other options were readily available: diskette controller, internal modem, memory expansion, etc. And the sidecar expansion bus provided direct access to most of the bus signals one would want. But many other options such as network adapters, hard disk adapters, SCSI adapters, etc. were not readily available. And you could never use 'off the shelf' PC cards, which had much more variety and lower costs.

Somebody looking at the description of the I/O Channel in the technical reference manual would easily see that the PCjr I/O Channel is not much different and the PC ISA bus.  (To be technical, the PC Bus is the bus used in the PC and XT.  The ISA bus was technically introduced with the PC AT. We'll be sloppy and just say ISA bus, with the caveat that we are talking about 8 bit cards.)  The major differences are:
  • The PCjr does not have DMA capability on the motherboard, so none of the DMA related signals are available.
  • The PCjr motherboard integrates more peripherals than the PC motherboard does, and thus does not expose IRQ lines that are already used.
  • The PCjr uses the NMI interrupt to service the keyboard, leaving IRQ1 available to use. (But useless, because no ISA card can be configured to use it because it is used by the keyboard controller on a PC.)
  • The PCjr has some additional handshaking lines that the ISA bus does not have.

While that sounds limiting, it really is not. In theory, if an ISA card meets the following criteria it can be used on the PCjr:
  • Does not use DMA
  • Uses IRQ 2 or 7, or no IRQ at all
  • Uses IO ports that do not conflict with onboard peripherals
  • Does not have a BIOS. (If it does, the BIOS may have to be patched for use on the Jr.)

Luckily, a lot of cards meet those criteria. SCSI cards, ethernet cards, hard drive controller cards, parallel ports, and more are all possible!


PCjr Bus to PC (8 bit ISA) Bus Pinout

Disclaimer: This section assumes that you know a bit about hardware interfacing. While I believe this information to be accurate, I don't take any responsibility for inaccuracies or problems.

Most of the pins on the 8 bit ISA bus map directly to PCjr equivalents. The 20 address lines, 8 data lines, grounds, and power lines are all straight-forward. The challenge comes in some of the handshaking lines.

This pinout is based on my research and on a production quality adapter that I purchased on eBay a few years ago. The adapter (click here) is so neat, it is sad that more were not made.

Color Key:

ADDR   Address lines are in yellow
DATA
Data lines are in light blue
POWER
Power lines are in red
SIGNAL GROUND
Signal ground lines are in dark green
SHIELD GROUND
Shield ground lines are in light green
CONTROL
Bus control lines
NC
No connection to ISA socket


PCjr pin Signal ISA pin Comments
A1 DATA0 A9
A2 +12V B9
A3 DATA3 A6
A4 DATA5 A4
A5 DATA6 A3
A6 +5V B29,B3
A7 ADDR1 A30
A8 ADDR3 A28
A9 ADDR4 A27
A10 SIGNAL GROUND B1,B10,B31 Tie signal grounds together; see note
A11 ADDR7 A24
A12 ADDR9 A22
A13 ADDR10 A21
A14 DRQ0 NC See note below
A15 ADDR13 A18
A16 ADDR14 A17
A17 ADDR16 A15
A18 SIGNAL GROUND B1,B10,B31 Tie signal grounds together; see note
A19 ADDR18 A13
A20 -IOR B14 IO Read
A21 -IOW B13 IO Write
A22 SIGNAL GROUND B1,B10,B31 Tie signal grounds together; see note
A23 HDLA A11 Hold acknowledge
A24 CLOCK B20 System clock
A25 RESET B2 Used during initialization
A26 +5V B29,B3
A27 -HRQ NC See note below
A28 IRQ1 NC See note below
A29 IRQ2 B4 Interrupt request 2
A30 RESERVED/-12V B7 See note below
 
PCjr pin Signal ISA pin Comments
B1 DATA1 A8
B2 DATA2 A7
B3 DATA4 A5
B4 SHIELD GROUND NC Tie shield grounds together; see note
B5 DATA7 A2
B6 ADDR0 A31
B7 ADDR2 A29
B8 SHIELD GROUND NC Tie shield grounds together; see note
B9 ADDR5 A26
B10 ADDR6 A25
B11 ADDR8 A23
B12 -DACK0 NC See note below
B13 ADDR11 A20
B14 ADDR12 A19
B15 SHIELD GROUND NC Tie shield grounds together; see note
B16 ADDR15 A16
B17 SHIELD GROUND NC Tie shield grounds together; see note
B18 ADDR17 A14
B19 ADDR19 A12
B20 SHIELD GROUND NC Tie shield grounds together; see note
B21 -MEMR B12 Memory Read
B22 -MEMW B11 Memory Write
B23 ALE B28 Address Latch Enable
B24 SHIELD GROUND NC Tie shield grounds together; see note
B25 IO/-M NC IO/Memory address status line
B26 READY A10 Used by devices to insert wait states
B27 -CARD SELECT NC No ISA equivalent
B28 SHIELD GROUND NC Tie shield grounds together; see note
B29 IRQ7 B21 Interrupt request 7
B30 AUDIO IN NC No ISA equivalent


Notes:

-DRQ0 and -DACK0   Used to interface the floppy controller to external DMA unit
-HRQ
Directly connected to 8088. On an ISA system would normally be connected to a DMA controller
IRQ1
Available on a PCjr; used by the keyboard on a PC and not available on the ISA bus
RESERVED/-12V
On the PCjr bus this is marked as reserved. When using a power sidecar, the side provides -12V on this pin.
SIGNAL GROUND
Tie all signal grounds together, but not directly to the shield grounds. Optional: use a capacitor to decouple the signal grounds to the shield grounds.
SHIELD GROUND
Tie all of the shield grounds together, but not directly to the signal ground. Optional: use a capacitor to decouple the signal grounds to the shield grounds.
IO/-M
Used to distinguish memory access from I/O access; seems to be redundant with other signals. Does not exist on ISA.
-CARD SELECT
Indicates that a card is active because it's address decode logic has matched and IO/-M has matched. Does not exist on ISA.
AUDIO IN
Audio input line; 1 volt peak-to-peak DC biased at 2.5V above ground.


ISA pins with no PCjr equivalent

ISA Pin Signal Comments
A1 IO CHANNEL CHECK Apparently the PCjr never has a fault on the IO channel so this is not needed.
B5 -5V Not provided and probably not used much on ISA cards.
B6 DRQ2 DMA request signal
B8 RESERVED/NO WAITSTATE On the original 8 bit PC bus this is reserved. On the 16 bit ISA bus this is  NO WAITSTATE.
B15 DACK3 DMA acknowledge signal
B16 DRQ3 DMA request signal
B17 DACK1 DMA acknowledge signal
B18 DRQ1 DMA request signal
B19 DACK0/REFRESH DMA used for memory refresh; PCjr expansion cards must refresh their own memory
B22 IRQ6 Used by floppy controllers; available only on the PCjr floppy controller slot.
B23 IRQ5 Used by onboard PCjr video circuitry
B24 IRQ4 Available only on PCjr motherboard slots
B25 IRQ3 Available only on PCjr motherboard slots
B26 DACK2 DMA acknowledge signal
B27 TERMINAL COUNT DMA handshaking signal
B30 OSCILLATOR Used by some I/O cards. Optional: can be provided by an external circuit


Implemention Notes

I am not an electrical engineer, nor do I play one on TV. But here are some things to consider if you decide to build an adapter like this.

Mechanical interface to the Jr

Ribbon cables are convenient, but they tend to be noisy. The shorter the cable, the better off you are. The adapter that I use has a 60 pin connector soldered directly to the adapter card, so there is not ribbon cable to worry about.

Power supply limitations

The standard power supply on a PCjr is 33 watts. The upgraded power supply is 45 watts. If you have some options on your PCjr alread, then available power will be limited. You should almost plan on adding a power supply sidecar to interface your adapter to the system so that available power will not be a concern.

On the PCjr pin A30 is marked as 'RESERVED', and I'm not sure what it does on a stock PCjr. The power supply sidecar puts out -12V on that pin. If you are going to use a card that requires that voltage level, using a power supply sidecar might be a convenient solution.

High speed oscillator signal

The ISA bus provides a high speed OSCILLATOR signal which is independent of the system clock. The original CGA card used it for generating the television output signal. Other cards use it as well. If you have cards that require this signal, you can't get it from the PCjr system bus. You can supply it yourself though, and it is easy to do because it is not synchronized with the system clock.

IRQ1 vs. IRQ5

The PCjr bus provides IRQ 1, which no ISA card can use. The PCjr bus does not provide IRQ 5 because the video circuitry uses it, which is a shame because many ISA cards can use that IRQ. The solution? Wire IRQ 5 on the adapter to IRQ 1 on the PCjr bus.

To make this trick work the card has to be told to use IRQ5. This is normally done by a jumper. On the PCjr side the software that drives the card will have to respond to IRQ 1. No software today will allow that setting because on a PC IRQ 1 is reserved for the keyboard, but with some patching it should be possible. (Source code for the driver would be even better, but that is hard to come by for most drivers.)



Cards known to work

Part of the joy (and agony) of a project is trying to make it work. I used a professionally made card that I found on eBay, so I did not go through the process of designing an adapter from scratch. However, even starting with an existing adapter was not trivial. Below is a list of some cards that I have used with this adapter, which has the pinout described above.

Ethernet cards:
PCjr with ISA bus adapter
Western Digital 8003 series
3Com 3C503
NE1000
SMC 3008TP (reported by Matt C)

SCSI cards:

Trantor T130B (requires OSCILLATOR signal be provided)
Future Domain 8xx series (requires OSCILLATOR signal be provided)

MFM Controllers:

IBM PC XT MFM controller (with modified BIOS, reported by Matt C)

Parallel ports:

Promise EIDE Pro multifunction card (with everything except the parallel port disabled)
Boca parallel port cards (including EPP, but not ECP - that requires DMA)


References:

"IBM Personal Computer PCjr Hardware Reference Library: Technical Reference", IBM
"Interfacing to the IBM Personal Computer, 2nd Edition", Lewis C. Eggebrecht
"ISA System Architecture, 3rd Edition", Tom Shanley and Don Anderson
Many conversations with Matt C. and others

Created in January 2003, Last updated June 30th, 2008
(C)opyright Michael B. Brutman, mbbrutman at gmail.com

Return to Mike's IBM PCjr Page main page