Mike's PCjr Page Logo

PCjr Combocard


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
PCjr Combocard
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

Created February 2nd, 2012, (C)opyright Michael B. Brutman, mbbrutman at gmail.com

Return to Mike's IBM PCjr Page main page