IBM 5100
The IBM 5100 Portable Computer is a portable computer (one of the first)  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 configured in 1960 for military use was designated a portable computer, and nicknamed a DataMobile.

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 (Put 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 KiB of memory.  Some configurations of the IBM 5100 had Executable ROS (ROM) and RAM memory totalling more than 64 KiB, 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.  Prices ranged from $11,000 (16k model) to $20,000 (64k).  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 $8,975 and $19,975 (between c. $ and $ 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 KiB of read-only memory containing system software, and up to 64 KiB 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 Kbytes. 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, that 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.  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 port.  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 Communications Terminal, 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 bright 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.

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.

References

Further reading

External links

 IBM 5100 Portable Computer
 IBM 5100 from oldcomputers.net
 IBM-5100 and collection of old digital and analog computers at oldcomputermuseum.com
 IBM-5100 German/APL keyboard at University of Stuttgart Computer Museum

Computer-related introductions in 1975
History of computing hardware
5100
Portable computers
16-bit computers