Introduction
The PCjr Combocard is
an upgrade option that gives you up to five different upgrades
all in one package. The five options are:
- an internal serial port
- a PC or XT compatible keyboard port
- hardware support for a second or third floppy drive
- Jr1000 (the "Tandy Mod")
- a MIDI port
All five upgrades are on a single card that installs in the internal
modem slot. All five options are independent of each other, so when you
construct the card you can pick and choose what parts you would like.
(The MIDI port is the only exception - it requires the internal serial
port.)
All of these modifications were designed by IBM employees on their free
time. IBM used to provide an internal "forum" system where employees
could participate in this kind of extracurricular hacking. At one point
all of these modifications were separate projects that somebody thought
would be better/easier packaged as a single project. The original
version of the card dates back to somewhere around March, 1991.
Here are some details on the sub-functions of the card:
Serial port
The standard
internal modem was found to be inadequate by a lot of people - it was
only 300bps and it did not use the Hayes AT command set, which was
pretty much a standard by the time the PCjr was shipping in volume. The
standard machine had one serial port for external devices and the
internal modem slot. It would be fairly easy to use that slot for a
straight serial port instead of a modem, and a lot of people designed
cards that did this.
The new internal serial port on this card used the
standard 8250 UART chip, which was also used by the built-in serial
port on the motherboard. The card also included a provision
for another oscillator
to drive the 8250 so that the BPS rate divisors would be the same as
those used on the PC and PC XT. (On an unmodified PCjr a different
oscillator
is used to reduce costs. The machine is BIOS compatible when working
with the serial port but it requires
code directly programming the serial port to use different divisiors
when setting the UART data rate.)
A little used pin, the Ring Indicator pin could also be added to this
serial port.
XT compatible
keyboard port
This modification
allows the use of a PC or XT keyboard on the PCjr. Besides the logic on
the card there is some modification required to the motherboard, so
this option is fairly involved. While I have the full instructions
for doing the modification, I have not worked out the theory of
operations yet. There is also some required software (provided either
as a TSR or a cartridge EPROM) that enables the XT keyboard and fixes
some compatibility problems.
According to some old descriptions of the modification it provides the
same hardware that the PC XT uses for a keyboard interface. Six TTL
chips on the Combocard interface with the 8255 Peripheral Interface
Chip on the motherboard to add the port. The software (either a TSR or
an EPROM to add to the BIOS) allows for detecting if the XT keyboard is
present, allowing the machine to fall back to the standard PCjr
keyboard if needed.
On a side note, if you had to do this project again today you would
probably not modify the system to the extent that this modification
does. Instead you would use a micro-controller to map the scan codes
from your newer keyboard to the scan codes provided by the original
PCjr keyboard.
Additional floppy
drive support
The BIOS of the
machine supports up to three floppy drives but the circuitry on the
standard controller card only supports one floppy drive. This
modification fixes the wiring problems on the original controller card,
allowing it to control up to three floppy drives from the standard
controller.
This modification adds a
few support chips and requires a minor modification to the original
floppy controller. After the modification is complete the machine will
have the circuitry to drive more than one floppy
drive. Additional software support is needed to tell the
machine that it has more than one floppy drive.
Jr1000 (Tandy 1000
video modification)
First, a little
history. The Tandy 1000 was designed as a clone of the
PCjr. The team at Tandy must have thought that the PCjr was going to
need clones just as the PC market had developed clones, and they were
going to be first to market. What they did not plan on was the relative
failure that the PCjr would turn into. Needless to say they were forced
to backtrack on that fairly quickly and they never
mentioned PCjr compatibility when talking about the Tandy 1000.
The Tandy 1000 had some improvements over the PCjr and in a double
example of "immitation is the sincerest form of flattery" the
PCjr could be modified to be more compatible with the Tandy 1000 to
take advantage of Tandy 1000 specific graphics modes. The PCjr maps
16KB of CGA video memory starting at B800:0000 to a lower address in
memory where the video memory actually lives. The PCjr *only* maps
16KB; to use the 32KB video modes software must directly access the
lower memory. Tandy improved on the PCjr by mapping the full 32KB
starting at B800:0000 to where their video memory actually lives
making access to the full 32KB of video memory linear and easy for
programmers to use.
This modification fixes the memory mapping in the PCjr so that if
somebody tried to reference the 16KB of memory in the memory map
starting at BC00:0000 it would be rerouted to where the memory actually
was instead of being ignored. Remember, the PCjr actually has no memory
at B800:0000 - it is just an alias for other memory. This modification
extends the range of that aliasing from 16KB to 32KB, mimicking the
behavior of the Tandy 1000. (Which is what the PCjr should have been
designed to do in the first place.)
MIDI port
The MIDI port is
actually an upgrade to an upgrade - after you add the
the serial port to the card you can then add additional logic to have
it function as a MIDI port. The upgrade to the MIDI port is designed to
be readily reversible in case you need to switch back to having a
second serial port.
Board Design
The board was designed to fit in the internal modem slot of the
machine. (The internal modem was often not present, as at 300 bps and
not Hayes compatible it was not very popular.) Below are pictures of
the two sides of an unpopulated board:
| Revision 2.2 of the PCjr Combocard |
 |
|
The board is broken into five different areas, one for each of the
possible options. In addition to the components on the board
the
options often required additional wires to the motherboard of the
machine; the modem slot is very limited and does not have access to a
lot of the system resources. Connectors were often in the form of
ribbon connectors going out under the lid of the case to the back of
the machine.
Early versions of the board did not include the MIDI function - the
card was lengthed to add that in version 2.0.
(I've never seen a populated
version of the card either in a system or outside of it. If you have
such a card, take some pictures!)
Interested in the build instructions? They can be found here: PCjr_Combocard.pdf
|