IBM 5100

The IBM 5100 Portable Computer is one of the first portable computers, introduced in September 1975, six years before the IBM Personal Computer, and eight before the first successful IBM compatible portable computer, the Compaq Portable. It was the evolution of a prototype called the SCAMP (Special Computer APL Machine Portable) that was developed at the IBM Palo Alto Scientific Center in 1973. Whether considered evolutionary from SCAMP or revolutionary, it still needed to be plugged into an electric socket.

When the IBM PC was introduced in 1981, it was originally designated as the IBM 5150, putting it in the "5100" series, though its architecture was unrelated to the IBM 5100's. The 5100 was IBM's second transportable computer. Previously, a truck-based IBM 1401 was configured in 1960 for military use and referred to as a mobile computer.

The IBM 5100 was withdrawn in March 1982, by which time IBM had announced its larger cousins, the IBM 5110 (January 1978) and the IBM 5120 (February 1980).

SCAMP, the prototype
In 1973, Bill Lowe was instrumental in fostering an engineering prototype called SCAMP (Special Computer APL Machine Portable) created by Dr. Paul Friedl and a team at the IBM Los Gatos Scientific Center. SCAMP has been dubbed in PC Magazine as "the world's first personal computer".

The IBM Los Gatos engineering prototype and a design model by IBM Industrial designer Tom Hardy, were utilized internally by Lowe in his early efforts to demonstrate the viability of creating a single-user computer.

SCAMP emulated an IBM 1130 minicomputer in order to run APL\1130. In 1973, APL was generally available only on mainframe computers, and most desktop sized microcomputers such as the Wang 2200 or HP 9800 offered only BASIC.

Because SCAMP was the first to emulate APL\1130 performance on a portable, single user computer, PC Magazine in 1983 designated SCAMP a "revolutionary concept" and "the world's first personal computer".

Description
The IBM 5100 is based on a 16-bit processor module called PALM (Program All Logic in Microcode). The IBM 5100 Maintenance Information Manual also referred to the PALM module as the controller. The PALM could directly address $64 KB$ of memory. Some configurations of the IBM 5100 had Executable ROS (ROM) and RAM memory totalling more than $64 KB$, so a simple bank switching scheme was used. The actual APL and BASIC interpreters were stored in a separate Language ROS address space which the PALM treats as a peripheral device. There were twelve models available: with BASIC, APL, or both. Memory could be $16 KB$, $32 KB$, $48 KB$ or $64 KB$ of main storage. The 5100 sold for between US$8975 and US$19975 (between $0 and $0 in today's dollars).

Often described as being "approximately fifty pounds", its weight was closer to 55 pounds (25 kg). In December 1975 BYTE stated "Welcome, IBM, to personal computing". Describing the 5100 as "a 50-lb package of interactive personal computing," the magazine said that with the company's announcement "personal computing gains an entry from the industry's production and service giant," albeit "at a premium price".

A single integrated unit provided the keyboard, five-inch CRT display, tape drive, processor, several hundred KB of read-only memory containing system software, and up to $64 KB$ of RAM. It was the size of a small suitcase, weighed about $55 lb$ ($25 kg$), and could be transported in an optional carrying case, hence the "portable" designation.

In 1975, it was an amazing technical accomplishment to package a complete computer with a large amount of ROM and RAM, CRT display, and a tape drive into a machine that small. Earlier desktop computers of approximately the same size, such as the HP 9830, did not include a CRT nor nearly as much memory. The 5100 has an internal CRT (five-inch diagonal) and displays 16 lines of 64 characters. IBM provided an option switch to allow the user to display all 64 characters of each line, or only the left or right 32 characters (interspersed with spaces). Also there was a switch to display the first 512 bytes of main memory in hexadecimal for diagnostic purposes.

Two solutions existed for obtaining hardcopy output: printers such as the IBM 5103, and attaching a typewriter via an interface. The TYCOM 5100 (from a company named Tycom Systems Corporation) enabled controlling an IBM Selectric typewriter, printing at 15.5 CPS.

Mass storage was provided by removable quarter-inch cartridge (QIC) magnetic tape drives that use standard DC300 cartridges to store $204 KB$. One drive was installed in the machine and a second (Model 5106) could be added in an attached box. The data format included several types and were written in 512 byte records. The introduction of a floppy option was not until the IBM 5110.

At the same time IBM announced the IBM 5100, it also announced the IBM 5100 Communications Adapter, which allowed the 5100 to transmit data to and receive data from a remote system. It made the 5100 appear the same as an IBM 2741 Communications Terminal and was designed to be able to communicate with IBM 2741 compatible machines in start-stop mode using the EBCD (Extended Binary Coded Decimal) notation, referred to as PTTC/EBCD in IBM 2741 documentation. EBCD was similar to the more common IBM EBCDIC code, but not identical. A feature that does not appear in any advertisement for this computer is an optional Serial I/O Adapter. In order to access the port extensions, they needed to be loaded from tape for the APL and BASIC programming languages. Unlike the Communications Adapter which could only be used to connect devices that supported the IBM 2741, this feature allowed users to connect and code for any device that used a standard serial I/O port, including devices not made by IBM.

One periodical described "an interesting standard feature"; that a 5100 could be connected to a television. An external video monitor receiver could be connected to the IBM 5100 via a BNC connector on the back panel. While the 5100 had a front panel switch to select between white on black or black on white for the internal display, this switch did not affect the external monitor, which only offered white characters on a black background. The vertical scan rate was fixed at $60 Hz$.

Research Device Coupler
In Volume 16, Number 1, Page 41 (1977) of the IBM Systems Journal the article "The IBM 5100 and the Research Device Coupler — A personal laboratory automation system" read: "A small laboratory automation system has been developed by using the IBM 5100 Portable Computer in conjunction with the Research Device Coupler. This compact system provides a dedicated, high-level-language computer and a versatile data acquisition and control interface for experiments in which data rates do not exceed 9600 baud. Two experiments exemplify the use of the system. The Research Device Coupler described in this paper is a prototype of the IBM 7406 Device Coupler."

Programming languages
The 5100 was available with APL, BASIC, or both programming languages. At the time of introduction, APL was generally available only on mainframe computers, and most desktop sized computers such as the Wang 2200 or HP 9830 offered only BASIC. As a desktop computer offering APL, the 5100 competed with, and indeed may have been inspired by, the earlier MCM/70.

Machines that supported both languages provided a toggle switch on the front panel to select the language. On the 5100's front panel, it was the third toggle from the left: up for APL, down for BASIC.

When the engineers at IBM asked one beta tester, Donald Polonis, for his analysis, he commented that if folks had to learn APL to use it, the IBM 5100 would not make it as a personal computer. He tried to impress the fact that a personal computer had to be easy to use to be accepted. Presumably, the special APL character set and APL keyboard were the primary obstacles to newcomers learning APL easily. APL had powerful features for manipulating data as vectors and matrices, while the competing HP 9830 had to offer language extensions on an add-on ROM for matrix operations.

Although not meant for regular users, the maintenance manual described a keyboard sequence to switch the 5100 into a maintenance mode. In this mode it was possible to read and write directly in RAM memory, video memory, CPU registers, interrupt vectors, clock counter, etc., using hexadecimal codes equivalent to assembly language. This allowed writing sophisticated programs directly into RAM. As this mode was a single-user system effectively running without an operating system, a determined user could manage the memory space and write stable multi-tasking programs using interrupts.

Emulator in microcode
The 5100 was based on IBM's innovative concept that, using an emulator written in microcode, a small and relatively cheap computer could run programs already written for much larger, and much more expensive, existing computers, without the time and expense of writing and debugging new programs.

Two such programs were included: a slightly modified version of APLSV, IBM's APL interpreter for its System/370 mainframes, and the BASIC interpreter used on IBM's System/3 minicomputer. Consequently, the 5100's microcode was written to emulate most of the functionality of both a System/370 and a System/3.

IBM later used the same approach for its 1983 introduction of the XT/370 model of the IBM PC, which was a standard IBM PC XT with the addition of a System/370 emulator card.