IBM PC
IBM PCjr  (1984)
◄ Back to Computers

The IBM PCjr

The IBM PCjr (Model 4860) was built around the Intel 8088 microprocessor running at 4.77 MHz the same clock speed as the original IBM PC. However, its system architecture introduced significant performance differences due to the lack of a Direct Memory Access (DMA) controller. Without DMA, the CPU was responsible for all data transfers between memory and I/O devices, such as the floppy disk drive. Furthermore, the first 128 KB of RAM was shared with the video subsystem; because the video hardware required constant memory access to refresh the display, the CPU was forced into wait states, effectively reducing the PCjr's processing throughput to approximately 75% of a standard IBM PC.

The video subsystem, internally termed the Video Gate Array (not to be confused with the later VGA standard), significantly expanded upon the baseline Color Graphics Adapter (CGA) capabilities. While it remained largely BIOS-compatible with CGA, it utilized a proprietary register set to manage a 16-color programmable palette. It introduced three specialized graphics modes: 160 × 200 with 16 colors 320 × 200 with 16 colors and 640 × 200 with 4 colors These modes required a "Memory and Display Expansion" to reach the 32 KB of video buffer necessary for the higher-bandwidth 16-color modes, as the base 64 KB model was limited by its available addressing and bandwidth.

Audio was a standout technical feature of the PCjr, moving beyond the simple "beeper" of the 5150. It utilized the Texas Instruments SN76496 (a variant of the SN76489) Complex Sound Generator. This chip provided three independent square-wave tone generators and one noise generator each with 16 levels of programmable attenuation. The tone generators could produce a frequency range from approximately 122 Hz to 125 kHz. The system also featured an internal analog multiplexer that could mix the SN76496 output with the standard PC speaker signal or audio from the cartridge slots and sidecar expansions, routing the final signal to an internal speaker or the RCA audio jack.

The machine's physical and electrical expandability relied on a proprietary "sidecar" bus located on the right side of the system unit. Unlike the internal ISA slots of the IBM PC, the PCjr's expansion was modular and external, allowing users to "stack" hardware like parallel printer ports, additional 128 KB RAM modules, and power speech attachments. Internally, the system provided two front-loading ROM cartridge slots which mapped directly into the CPU's memory address space (at segments D000h and E000h). This allowed for near-instantaneous software loading and execution without consuming precious system RAM.

The IBM PCjr Memory Map

The memory map of the IBM PCjr was notably different from the standard IBM PC (5150) due to how it handled video memory and its dual ROM cartridge slots. In the PCjr architecture, the lower 128 KB of RAM is shared with the video controller. The video buffer can be relocated within this 128 KB range, but it typically resides at the top of the available system RAM to maintain compatibility with DOS.

Because the Video Gate Array can "steal" cycles from any portion of the first 128 KB, software performance on the PCjr is highly dependent on where the code is executing. Code running in expansion RAM (above 128 KB) executes at full speed because the video hardware cannot address that memory, thereby eliminating the contention and associated wait states.

The following table outlines the specific memory addressing for the PCjr’s unique hardware features:

Memory Range (Hex) Function / Allocation Technical Details
00000 - 1FFFF Base System RAM (128 KB) Shared between CPU and Video Gate Array; Subject to CPU wait states.
18000 - 1FFFF Typical Video Buffer Default 32 KB page used for 16-color graphics modes (320x200).
20000 - 9FFFF Expansion RAM Added via "Sidecar" modules; not subject to video-related wait states.
D0000 - DFFFF ROM Cartridge Slot 1 64 KB address space for the left cartridge port.
E0000 - EFFFF ROM Cartridge Slot 2 64 KB address space for the right cartridge port.
F0000 - FFFFF System BIOS & Cassette BASIC Includes PCjr-specific BIOS extensions for video and sound.

Sound - The SN76489

The SN76489 Digital Complex Sound Generator (DCSG) is a TTL compatible programmable sound generator chip created by Texas Instruments. It main application was the generation of music and sound effects in home computers, arcade machines and home game consoles. Functionally the chip was similar to the General Instrument AY-3-8910.

Sound Capabilities:

  • 3 Square Wave tone generators, 16 volume levels
  • 1 White Noise Generator (white and periodic noice, 3 frequencies, 16 volumes)

The SN76489 Was originally designed to be used in the TI-99/4 computer, where it was first called the TMS9919 and later SN94624, and had a 500 kHz max clock input rate. Later, when it was sold outside of TI, it was renamed the SN76489, and a divide-by-8 was added to its clock input, increasing the max clock input rate to 4 MHz, to facilitate sharing a crystal for both NTSC colorburst and clocking the sound chip. A version of the chip without the divide-by-8 input was also sold

Feature Specification
Tone Channels 3 Square Wave Generators
Noise Channels 1 (Periodic or White Noise)
Attenuation 16 levels per channel (4-bit)
Frequency Range 122 Hz to 125 kHz (at 4 MHz clock)
Register Width 10-bit for frequency, 4-bit for attenuation

CPU - The Intel 8088

The Intel 8088 microprocessor is a variant of the Intel 8086. The 8088 has an 8-bit external bus instead of the 16-bit bus that the 8086 has. The 16-bit registers and the 1MByte address range are unchanged, however. The 8086 and the 8088 have the same execution unit (EU), only the Bus Interface Unit (BIU) differs.

The original IBM PC architecture is based on the Intel 8088. The CPU runs at 5 to 16 MHz, has a 20-bit address bus and can work together with the 8087 Co-Processor. The 8088 was launched in 1979. The 8088 is compatible with the Intel 8085.

Technical Details
Released
1984
Country
United States
Brand
IBM
Type
IBM PC
Name
IBM PCjr
CPU Class
8088
CPU
Intel 8088 @4.77MHz
Memory
RAM: 64kB
RAM max: 640kB
16 to 32kB of RAM was for Shared Video RAM
Sound Chip
TI SN76489
Sound
3 Voice Channels
1 white noise
Display Chip
Built in Video Gate Array
Display
320x200 16 color
640x200 4 color
Standard CGA modes
Best Text
80x24 text
Best Color
320x200 16 color
Graphics
640x200 in 4 colors
Sprites
n/a
System OS
BIOS and Cassette BASIC
Storage
Single 5.25" 360kB floppy drive
Cartridge slots
External Links 🌐
SN76489 Sound Generator
Wikipage on the Texas Instruments SN76489 Sound Generator
Intel 8088 CPU
Wikipedia pages on the Intel 8088 CPU