|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IntroductionOne 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:
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:
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 PinoutDisclaimer: 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:
Notes:
ISA pins with no PCjr equivalent
Implemention NotesI 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 workPart 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: 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 |