Overview:The base model of the PCjr had the following characteristics:
The enhanced model added the following features:
A common upgrade for the PCjr (and PC and XT as well) was the NEC V20 chip, which was an 8088 compatible processor. It was not a clone though; the implementation was slightly better, allowing it to eke out slightly better performance. Although it was a rare occurrence, some software was incompatible with it. (Broderbund's Lode Runner will not work with a NEC V20.)
For those of you not versed in microprocessor lore, the Intel 8088 is fairly primitive. It can address a megabyte of memory using a segmented address scheme. It was superceded architecturally by the 80286, 80386, 80486, Pentium, etc. 8088s did not incorporate caches on chip, and they did minimal pipelining. (One stage was for fetch, and the other was for execute.) This processor did not have a problem with self modifying code. ;-)
Early PCjrs have their Intel 8088 socketed to the motherboard, which allows for easy replacement. Later PCjrs have the microprocessor soldered directly to the motherboard. This the decreases part count and should increase reliability, at the expense of being able to change the microprocessor. Later PCjrs may also use an AMD D8088, which is a licensed Intel 8088 clone. (It is an 8088 manufactured by AMD, unlike the NEC V20 which is compatible but not implemented the same way.)
According to the PCjr Technical Reference, a bus cycle normally takes four clock cycles. This means that reads from ROM take 840ns. Reads to RAM have to share with the video subsystem, adding an average of two clock cycles onto the four required. This means that RAM reads and writes take approximately 1.2 microseconds, which is horrendous. The cycle time of the memory used in the PCjr was 150ns. Clearly the memory subsystem is not a high performer. However, continue reading - memory added via a sidecar runs faster !
The PCjr's base 64 kilobytes of memory were located on the system board. An additional 64 kilobytes could be added via a dedicated expansion slot within the machine. (On other machines of the day, memory was added via expansion cards on the I/O bus.) When the expansion card was in place, references to even locations of memory went to the expansion card and references to odd locations of memory went to the memory on the motherboard. This primitive form of bank switching helped to improve performance.
At announce time, IBM stated that the maximum available memory for the PCjr was 128 kilobytes. That was it; nothing else would be available. This made it a fairly crippled machine compared to the PC and XT, which had a limit of 640 kilobytes.
Not too long after the announce, third party vendors figured out how to stuff more memory onto the PCjr. Popular products of the day were the Microsoft Booster (an additional 128 kilobytes plus a bus mouse) and the Tecmar Jr Captain. Eventually IBM got into the market too. It was not uncommon to find PCjrs with 640 kilobytes on them. Most memory expansion was done via a sidecar . Many of the sidecars could be upgraded by simply replacing the 64Kb (kilobit) chips on them with 256Kb chips and doing some soldering; a stock 128KB sidecar expansion could be modified to 512KB! With the 128KB in the system, this gave you a reasonable 640KB system. The extra memory had to be configured with a device driver , or it would not be recognized.
Another wonderful thing about memory on sidecar expansion units is that they don't get interference from the video hardware. This allows four cycle memory reads, instead of six. This is a noticeable speed bump for software using this memory. To take advantage of it though, your memory configuration software has to reserved the low 128 kilobytes of memory, or put low use things in there such as a RAM disk. With the low memory reserved for a RAM disk and video, the machine was as fast as a PC or a PC XT.
An interesting note about the PCjr: it did not use parity memory, which was another cost cutting measure. Parity memory allows the hardware to detect single bit errors in the memory. The PC and the XT had this capability; the PCjr was one on the first machines not to have this capability. In later years non-parity memory became the standard as other vendors also cut costs.
It is important to remember that even though 32 kilobytes of the memory map are reserved for video (apart from system RAM), the PCjr doesn't actually have memory at that address range. The PCjr "steals" memory from RAM and maps it to this address range.
When more than 32 kilobytes of video storage is allocated, the video hardware can dip further into the RAM. The video hardware can address up to 128 kilobytes of RAM. In reality only 96KB can be allocated - DOS and BIOS require some storage in the first few pages of memory to set up interrupt vectors.
First, this was the first IBM machine in the PC family to build the graphics capability into the machine. The PC and the XT used cards on the I/O bus to provide graphics capability. This reduced configuration complexity (no jumpers or switches), improved integration with the rest of the system, and probably reduced the part count. On the other hand, it limited what you could do - you could not add a high quality monochrome card to the system or hope to add a better graphics card in the future. In contrast, the PC and the XT allowed you to have both a monochrome graphics card and a color graphics card in the system at the same time, each driving a different monitor.
The most common graphics card of the day was compatible with IBM's Color Graphics Adapter, or the CGA standard. The PCjr did not have a perfect CGA clone built in, but it had all of the function of CGA. It also had a few additional graphics modes, which provided more colors at higher resolutions. To do this required more memory than a standard CGA card had, which was 16 kilobytes.
The downside of this enhanced graphics support was the way it was implemented. IBM cut corners, and wired the graphics subsystem to use memory from the main system. Video cards for the PC and XT did not do this; they had their own memory built into them. This had several ramifications:
In short, thanks for the extra capabilities IBM, but why did you cut corners on this! Incompatibilities with the CGA card were a continual problem.
The graphics subsystem centered around the Motolora 6845 CRT Controller. The 6845 was also used on the IBM Monochrome Display Adapter and the IBM Color Graphics Adapter (CGA). The bitmaps for the letters in the text modes come from a ROM chips. The graphics circuitry provides RGB output (for the IBM PCjr Color Monitor) and composite output. A television may be connected with an optional RF modulator.
Graphics Modes of the PCjr:
IBM targeted the home user, and built in almost anything a home user would want. However, IBM made two serious blunders:
Among the minor blunders IBM committed were providing a dedicated modem slot instead of another standard serial port, and including the lightpen connector. (I've never seen a lightpen .. it probably was never a popular option.)
The only positive things that I can think of are that the composite video output spared people from having to purchase the relatively expensive PCjr Color Monitor, and that PC and XT users needed yet another expansion card for joystick support. Personally, I'd rather have the expansion slots.
The experience of typing on the Chiclet keyboard was horrific, but having just come from a Timex Sinclair 1000 it was wonderful. The reaction to the original keyboard was so negative that IBM offered a more professional replacement within about a year.
Both the original and the replacement keyboards had a novel feature; an infra-red connection to the system unit. Instead of being tied to the system unit, the keyboard was truly portable. The feature had limitations; the keyboard had to have a clear line of sight to the front of the system unit, it couldn't be too far off center, and bright light confused it. If these were problems, IBM was more than happy to sell an optional keyboard cable to you which also eliminated the need for batteries.
The keyboards had a serious annoyance - there were not enough keys! Instead of providing an 83 key keyboard like on the PC and XT, IBM provided a 62 key keyboard. Gone were the function keys and the numeric keypad. However, the function those keys provided still had to be available. The solution was to add an "Fn" key (short for "Function"), which was pressed first in a sequence with another key to emulate the missing keys. This alternate keyboard layout made some programs awkward to use, but it was tolerable. Replacement keyboards featuring the missing keys were available from third party vendors.
For a detailed discussion on how the keyboard was implemented in hardware and how the PCjr maintained software compatibility with the existing keyboard see "PCjr Keyboard Handling."
The PCjr built in speaker was only capable of chirping. To experience the TI sound generator, you had to use the PCjr Color Monitor (which provided an external speaker), or connect the PCjr to an external speaker. The PCjr provided an RCA jack on the back for this purpose.
Games that ran on the PCjr were often enhanced to take advantage of the sound chip on the PCjr. Good sound did not come to other members of the PC family until add-on sound cards became popular.
Cartridges were hard-wired at the factory with the memory segment that they would load in. There were four memory regions reserved for cartridges - D000:0000, D800:0000, E000:0000, and E800:0000. A cartridge could be in one region only - they were not relocatable. Two additional regions mapped to the 64KB reserved for the BIOS, making BIOS replacement by cartridge possible. Having two cartridges inserted that tried to use the same memory regions usually caused the machine to lock-up - ColorPaint and Cartridge BASIC were famous for this.
Each cartridge has 15 address lines, 8 data lines, and some chip select lines. The 15 address lines limited cartridges ROMs to 32 kilobytes. To get a 64 kilobyte cartridge you used two ROMs and two chip select lines. Cartridges were read only devices - you could not write to them. (Not using conventional means at least - there are tricks that use the addressing lines to simulate a write.)
Cartridges were designed to be hot swapped, if you didn't mind the machine going through a reset cycle. Cartridge slots caused the machine to reset when they were inserted or removed. The reset cycle was needed to allow the BIOS to scan the ROM area for newly inserted cartridges. A cheap solution for a reset switch on the PCjr was to wire a momentary switch to the particular landing pads of a cartridge slot which caused this behavior. I had one of these on my personal machine, and I used it often - poorly written PC software often locked the machine up.
This program (pcjrcart.exe) will search your PCjr system for cartridges and write their contents to disk. For more on dumping cartridges, see this page: PCjr Cartridge and ROM Dumping Project
The UART chip can generate baud rates from 50 to 4800. Baud means signalling units. On very slow modems (or serial devices in general), baud and bits-per-second (bps) were interchangeable because one bit was transferred per signalling unit. Above 2400bps though, there are probably multiple bits encoded per signalling unit.
Although the PCjr can generate a baud rate as high as 4800, communications above 1200bps are not recommended. The PCjr can certainly handle 1200bps; the problem is the keyboard. The keyboard deserialization hardware on the PCjr (used to decode keys) is dreadfully slow, and it blocks other interrupts because it uses the NMI (Non-Maskable Interrupt). If you are typing and receiving data at 2400bps, chances are good that a keystroke will cause you to lose incoming data. The answer? Either speed your Jr up, or don't type while receiving data at full blast.
The diskette drive is another problem for serial communications. The diskette interface doesn't use DMA because the PCjr doesn't have a DMA controller. Therefore, if the processor is servicing the diskette drive and data comes in on the serial port, the data on the serial port will be lost. The answer? Don't run the diskette drive while using the serial port. If you have to download a file, download it to a RAM disk.
The COM port setup on the PCjr was a small source of confusion. When the internal modem was not installed, the external serial I/O port was known as COM1. However, it used the port address and IRQ normally associated with COM2. (Port address 0x2F8 and IRQ 3.) When the internal modem was installed, it became COM1 and the external serial I/O port became COM2. Port addresses and IRQs stayed constant however.
PCjr owners who used external modems sometimes had to trick the machine to rename the external serial I/O port as COM2, so that software would not get confused about the ports and IRQs it was supposed to use. (If the software didn't strictly use BIOS calls to control the serial port, it would be confused.) This was done with a small utility called "COMSWAP ."
half-height diskette drives . This also required a new version of DOS (DOS 2.1) to accomodate the different seek and head settling times.
Double density media can by identified by a "hub ring" where the drive spindle clamps the diskette. The hub ring was intended to help seat the diskette correctly on the spindle, without tearing the media. Double density media can be read by newer high-density diskette drives, but it should not be written by them. This is because the newer high-density diskette drives have narrower heads which can't physically completely cover the magnetic imprint left by the lower density diskette drive. High density media can not be used in a double density drive at all.
The diskette drive connected via a standard floppy drive cable to the drive controller card. The drive controller differed from other drive controllers in a few respects:
It is possible to use a 720 kilobyte 3.5 inch diskette drive on this controller card, with no modifications. The two different drives use the same data transfer rate and the same connector. The only problem is in the BIOS, which doesn't know about a diskette drive with more than 40 tracks on it. The DRIVER.SYS device driver in DOS 3.3 can be used to tell the PCjr about the extra tracks on the drive; otherwise the 3.5 inch drive will look exactly like a 5.25 inch drive to the PCjr. (With only 360 kilobytes of available storage on it!) I have done this, and the new drive passed the diagnostic routine.
It is also possible to hack the controller card into thinking that it can support two diskette drives. The modification truly is a hack, and it causes both diskette drives to spin in unison whenever one is activated, but for a few dollars in parts you can't go wrong. ;-) I have not made this modification to my PCjr, although I own a PCjr that has had this done.
The power supply is a whopping 33 watts. This is about half of what a PC had (65 watts), and far less than the 200 to 300 watt power supplies that are used in modern desktop machines. A fully configured PCjr (internal modem, 64KB memory expansion, and diskette drive, but no sidecars) has 400 milli amps of +5 volt dc power left over, which can be used by sidecars. This is not a lot.
A PCjr had sufficient capacity to support one or two sidecars, depending on their circuitry. Beefy sidecars or numerous sidecars stretched the power supply too thin, causing flaky operation. A special "power" sidecar could be added to provide the extra power needed by numerous sidecars. Power sidecars used the same external brick transformer as the main power supply.
(I have a PCjr with a parallel printer sidecar, a 512KB memory expansion sidecar, and a speech attachment. All work fine without additional power. IBM was always very conservative with their specifications, so there probably was enough power to spare.)
The power supply does not have a cooling fan, and neither does the system. A system with a diskette drive has a cooling fan on the diskette drive, but it is to keep the diskette from getting cooked. That fan is not intended to cool the system, and it is not ducted properly to do so. Unlike the PC and the XT, the PCjr was not designed to run hours on end - it was a home machine. It could do it, but I'm sure that the lack of adequate cooling was not healthy.
The power supply card varied in length during the production of the PCjr. I've seen a short version of the card and a long version. The short version puts out 33 watts, while the long version puts out 45 watts.
October 2000, Last updated February 16th,
(C)opyright Michael B. Brutman, mbbrutman at gmail.com
Return to Mike's IBM PCjr Page main page