IBM 5100 Portable Computer (original) (raw)
Introduced in 1975, the 5100 was IBM's first production personal computer (six years before the PC!). The 5100 has an integral CRT display, keyboard, and tape drive. It was available with APL, BASIC, or both, and with 16, 32, 48, or 64 Kbytes of RAM.
Models:
Memory capacity | Programming Language | ||
---|---|---|---|
APL | BASIC | both | |
16 Kbytes | A1 | B1 | C1 |
32 Kbytes | A2 | B2 | C2 |
48 Kbytes | A3 | B3 | C3 |
64 Kbytes | A4 | B4 | C4 |
Available options:
- carrying case
- RAM expansion (in 16 Kbyte increments to a maximum of 64K)
- IBM 5103 printer, dot matrix, tractor feed, 132 column, 80 char/s bidirectional
- IBM 5106 external tape drive
- communication adapter
- serial I/O adapter
Display:
The 5100 has an internal CRT (five inch diagonal) which displays 16 lines of 64 characters. Because the characters are so small, IBM provided a three-position switch to allow the user to select the display of all 64 characters of each line, or only the left or right 32 characters (interspersed with spaces).
Normally the display is generated from the buffer in main memory at addresses 0x0200..0x05ff. There is a front-panel switch which makes the unit display the first 512 bytes of main memory (addresses 0x0000..0x01ff) in hexadecimal for diagnostic purposes, mainly to observe the processor registers.
Mass storage:
Mass storage was provided by a quarter-inch cartridge tape drive using DC300 cartridges to store 204 Kbytes. Tapes were written in 512-byte records. There are several file types including BASIC programs, APL workspaces, and data.
System Software:
On a 5100 with both languages, the user's choice of language is selected by a toggle switch on the front panel!
Instead of being written in the native microcode instruction set of the processor, the 5100's language interpreters are written for more sophisticated "virtual machines", and the microcode emulates those machines. This was done in order to economize on the amount of ROS needed to implement the language interpreters, and perhaps to speed the product development. The APL microcode emulates a subset of the System/360 instruction set, while the BASIC microcode emulates the System/3.2
The APL interpreter was derived from APLSV.
Hardware Technology:
Logic
Most of the logic circuitry in the 5100 is built using a TTL-compatible 134-gate bipolar gate array technology called "Dutchess". Each chip has 60 three input NAND gates, 40 four-input NAND gates, and 34 two-input NOR off-chip drivers. The gate propogation delay times are about 10 ns. The chips are packaged in square metal cans.
Processor
The 5100 uses a board-level microprocessor1 called "PALM" (for "Put All Logic in Microcode"), generally referred to as the "controller" in IBM documentation. The board contains thirteen of the square metal-can packages, along with three conventional DIP-packaged parts and one round metal can part.
PALM uses 16-bit vertical microinstructions. The average microinstruction execution time is 1.75 µs.
Microinstructions can directly reference sixteen 16-bit general-purpose registers. Register zero is the microinstruction pointer, also known as the program counter. There are four banks of registers, one bank per interrupt level, for very fast interrupt context switching. The four banks of registers are also addressable as the first 128 bytes of RAM. (The first 128 bytes of the actual RAM cards is not available.)
There are three interrupts, so there are four processor levels, 0-3, with level 0 executing when no interrupt is pending. Since each level has its own program counter, there is no concept of an interrupt vector. The processor will remain at a given level as long as the hardware interrupt request for that level is active (and no higher-level request is active). Interrupt handlers are thus normally written as loops.
The ALU is eight bits wide. Despite the fact that the registers are 16 bits wide, PALM provides few 16-bit arithmetic or logical operations. However, some 8-bit operations may cause a carry or borrow from the high byte of a register.
The procesor has a 16-bit address bus. The memory is byte-addressable, for a maximum directly-addressable capacity of 64 Kbytes. Each byte of memory has a parity bit, so the memory data busses are 18 bits.
Branches can be effected any instruction which writes or alters register zero. One particularly interesting trick allows the creation of a single-instruction infinite loop by clearing register zero. In this case, register zero serves both as the program counter, and as the instruction word pointed to by the program counter. An all zeros word decodes as an instruction to subtract two from register zero. After the instruction is fetched, the PC is incremented by two, then the instruction subtracts two from it again, leaving it at zero. This single-instruction loop technique was used when code running at level zero (non-interrupt) needed to wait for an interrupt to be serviced. The interrupt handler would then write a new value to location zero, which is NOT the interrupt handler's PC, since the handler is running at a non-zero level. Once the hardware interrupt is cleared, level zero gets control again starting from the new PC value.
Read Only Storage (ROS)
There are three kinds of ROS (more commonly known as ROM or Read Only Memory) in the 5100.
The "control ROS" is part of the PALM processor and is used to decode the microinstructions. It is organized as 256 words of 32 bits.
The "executable ROS" is directly addressable by the processor, and contains the microinstructions that are directly executed. There is 16K*18 of microcode for the diagnostic and bringup routines, I/O supervisor and control routines, and the virtual machine interpreter for BASIC. Another 16K*18 of microcode provides the virtual machine interpreter for APL.
The "nonexecutable ROS" is accessed as an I/O device by the processor, and contains the code interpreted by the virtual machines, namely the APL and BASIC language interpreters. The nonexecutable ROS uses n-channel MOSFET chips storing 48 Kbits each, with an access time of approximately 2 µs.
The nonexecutable ROS is divided into three regions:
- common ROS, on the ROS control module, 18 Kbytes
- BASIC ROS, on one ROS module, 36 Kbytes
- APL ROS, on three ROS modules, 96 Kbytes
Read/Write Storage
The RAM memory consists of one to four pairs of boards of 8 Kbytes each, using NMOS RAM chips and separate bipolar drivers and sense amplifiers. The Roberson articles claim that the memory is implemented using 1 Kbit MOSFET RAM chips, but it appears that they actually use 2 Kbit chips. Each board has nine RAM modules each of which apparently contains four chips. This memory has an access time of approximately 300 ns, and a cycle time of approximately 450 ns.
Del Cecchi wrote:
The memory technology almost certainly was "Reisling" which used 2k chips packaged 4 to a 1/2 inch stacked module with external sense amp bit driver modules. A typical riesling card as used in system/34 and system/32 had 8k Bytes on a "2 wide 3 high" card, although there was a later card that was 16KB.
He also wrote that the 8K card was code-named "Snoopy", and the 16K card "Barton". The 5110 uses the 16K cards, which frees up some backplane slots for other purposes.
Display Controller
The display controller is the only 5100 device to use Direct Memory Access (DMA), which IBM refers to as "cycle-stealing". The display is memory mapped. Microcode can disable the display during calculations in order to make more memory bandwidth available to the processor.
Related Systems:
Predecessor:
The 5100 was based on the design of an earlier proof-of-concept system called SCAMP, for "Special Computer, APL Machine Portable". SCAMP was also based on the PALM processor, but used a Norelco (Philips) compact cassette drive instead of the 3M cartridge. SCAMP emulated an IBM 1130 minicomputer in order to run APL\1130. SCAMP is in the Smithsonian Institution.
Follow-ons:
The 5100 product line was later expanded to include the 5110, which supported external 8-inch floppy disk drives, and the 5120 with built-in floppy drives. The 5120 also seems to be known as a 5110 Model 3.
In 1980 IBM introduced the System/23 DataMaster, based on the Intel 8085 processor.
In 1981 IBM introduced the IBM PC, Type 5150, based on the Intel 8088 microporcessor. Although there had been many personal computers before, the introduction of the IBM PC finally was seen in the corporate world as validating the concept. To this day, over 90% of desktop computers are still largely compatible with the original IBM PC.
Notes:
1The term microprocessor was used to mean a processor that executes microcode in order to interpret a higher-level instruction set, rather than the now common usage to refer to a processor implemented on a single monolithic integrated circuit.
2Emulation of System/3 for BASIC confirmed by Joey Tuttlein his talk at Vintage Computer Festival 6.0, Mountain View, California, 13-Oct-2003.
Bibliography:
- Conference papers
- Smith, P.A.; Myers, H.J.
Personal language directed systems, theory and practice.
12th IEEE Computers Society International Conference on Computers the Next 5 Years, San Francisco, CA, USA, 24-26 Feb. 1976.
New York, NY, USA: IEEE, 1976. p. 92-5.
Abstract: This paper shows the relationship between the motivation and the design of the IBM 5100 computer. The 5100 is a desk top computer that supports two programming languages (APL and BASIC), has up to 64K of main store, and can connect to a printer, tape drive, and teleprocessing lines. - Roberson, D.A.
An architecture for a small interactive computer-the IBM 5100.
14th IEEE Computer Society International Conference, San Francisco, CA, USA, 28 Feb.-3 March 1977.
New York, NY, USA: IEEE, 1977. p. 136-9.
Abstract: The advent of small, interactive, high-level language computers is the product of numerous recent architectural and technological advances. This paper presents a detailed discussion of a number of these advances as they apply to the IBM 5100. Through this discussion, a rationale is presented for the decisions made and the trade-offs that were involved in the selection and the development of the various components in the system. The paper give an overview of the IBM 5100 itself to give the context for the architectural discussions and discusses some considerations for the architectures of future desk-top computers.
- Smith, P.A.; Myers, H.J.
- Journal articles
- Cole, H.; Guido, A.A.
The IBM 5100 and the Research Device Coupler-a personal laboratory automation system.
IBM Systems Journal, 1977, vol. 16, no. 1, pp. 41-53.
Abstract: 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. - Roberson, D.A.
A microprocessor-based portable computer: The IBM 5100.
Proceedings of the IEEE, June 1976, vol. 64, no. 6, pp. 994-9.
Abstract: The introduction of the IBM 5100 portable computer with its high-level APL and Basic languages presents yet another application for the powerful versatile microprocessor. This paper presents the IBM 5100 from several aspects. The author gives an overview of the computer including a description of the machine's physical attributes, functional capabilities, languages, features, and a detailed description of the characteristics of the 5100's hardware and firmwave architecture. The logical and physical attributes of the computer's microprocessor and application areas for the 5100 and a brief projection on the future of microprocessor-based portable computers are presented. - Falkoff, A.D.
The IBM Family of APL systems
IBM Systems Journal, vol. 30, no. 4, pp. 416-432.
Abstract: The development history of IBM subfamilies of APL systems is traced in this paper, focusing on the inter-relationships among them and the methods of implementation used by the various groups involved. The language itself, and the way its evolution was managed, are also considered as factors influencing the development process. A chart is included that illustrates the evolution of mainframe and small machine programming products supporting APL, beginning in 1964 up to the present time.
- Cole, H.; Guido, A.A.
- Magazine articles
- Cashman, M.
IBM's minicomputer, the 5100.
Datamation, Nov. 1975, vol. 21, no. 11, pp. 71-2.
Abstract: Hardware languages, built-in c.r.t., and 64K of memory make the 5100 one of the most sophisticated and interesting products in years. - Design News, Oct. 20, 1975, p. 8
- Dixon, P.
The 5110 - IBM's small computer system.
IBM: Small Systems, London, UK, Sept. 1979, pp. 105-12.
Abstract: The IBM 5110 small computing system was announced in December 1977 as an outgrowth of the 5100 'portable computer', offering major performance and function enhancements over the earlier machine. The 5110 is designed for the organisation having a low budget and a variety of low-volume applications. The system comprises a computer, a printer, and one or two diskette units. The author describes and assesses the system. - Fox, T.
IBM's 5120: high price...high style.
Interface Age, Jan. 1981, vol. 6, no. 1, pp. 58-60.
Abstract: In essence, the 5120 is an average-performing micro with a higher-than-average price tag, but promises absolutely superb after-sale support. - Friedl, P.J.
SCAMP: The Missing Link in the PC's Past?
PC, November 1983, vol. 2, no. 6, pp. 190-197. - Graham, K.P.
Programming equipment purchase options.
Interface Age, Sept. 1981, vol. 6, no. 9, pp. 74-6, 152.
Abstract: Discusses criteria for the selection and evaluation of small computer systems for business applications. The author presents a program in BASIC for performing a financing analysis to run on an IBM 5120 computer system. - Haspel, C.
The portable computer in the classroom.
SIGCUE Bulletin, July 1978, vol. 12, no. 3, pp. 4-12.
Abstract: A portable computer and a higher level language allow comprehensive, dynamic and easily modifiable classroom demonstrations. The IBM 5100 computer with APL is such a combination. This paper describes the use of this combination of computer and language to demonstrate aspects of queueing and formal grammars. In each case the area is briefly described and the demonstration illustrated and explained with emphasis on the human factors that go into making it effective. The chief advantage obtained is that students' questions which fall outside prepared material can be answered and illustrated by suitably modified demonstrations. - Horgan, N.
Numerous system services lift IBM 5120 above its competitors.
Practical Computing, Nov. 1980, vol. 3, no. 11, pp. 62-5.
Abstract: The new machine is a much re-designed version of the 5110, and will run most of the software from the earlier machine. It is designed to sell both to existing IBM mainframe users and to the first-time buyers. - Littman, J.
The first portable computer.
PC World, October 1983, vol. 1, no. 10, pp. 294-300. - The IBM 5100 portable computer.
Modern Data, Oct. 1975, vol. 8, no. 10, pp. 50, 52.
Abstract: Sixty-four-thousand bytes of RAM and 190K bytes of BASIC and APL-loaded ROM in a fifty-pound package that includes 1024-character CRT, keyboard and tape cartridge drive. It's called the IBM 5100 Portable Computer. - The IBM 5120 computing system.
Library Computer Equipment Review, Jan.-June 1980, vol. 2, no. 1, pp. 39-43.
Abstract: The IBM 5120 Computing System is available in twelve models. All models consist of three basic components: an IBM 5110 model 3 microcomputer; a choice of an IBM 5103 model 11 or model 12 printer; and an IBM 5114 dual floppy disk drive unit. The twelve models differ in the amount of internal random-access memory provided and in the programming languages supported. The microcomputer and its disk drives are integrated in a single housing which also contains a CRT display and keyboard. Simple controls and indicator lights are conveniently positioned to the immediate right of the CRT screen. The 5120 Computing System is designed for desk-top operation and is terminal-like in appearance. - Kellerman, E.
APL and graphics.
BYTE, Sept. 1978, vol. 3, no. 9, pp. 40-2, 44, 46, 48, 50, 52-3.
Abstract: This article presents an introduction to the use of APL for creating and manipulating graphic images. The paper carries the reader through the steps of interactive graphic design using APL and IBM 5100 APL Graphpak. - Portable computer combines microprocessor technology with large-computer performance.
Computer Design, Nov. 1975, vol. 14, no. 11, pp. 130-1.
Abstract: Intended for standalone computing chores in scientific, engineering, or business facilities, the model 5100 Portable Computer enables on-site analysis of data or solution of quantitative problems without the need to time-share larger computers. Slightly larger than an IBM typewriter and weighing about 50 lb, the desk top unit, announced by International Business Machine Corp.'s General Systems Div., has the computing capacity of a small System/360 but is based on a microprocessor.
- Cashman, M.
- Books
- Katzan, Harry, Jr.
The IBM 5100 portable computer. A comprehensive guide for users and programmers. Wokingham, UK: Van Nostrand, 1977.
ISBN 0-442-24270-0
Abstract: The IBM 5100 portable computer incorporates the functions of a full-scale computer with the size of an office typewriter. The computer system allows APL and BASIC language capability and contains facilities for a display screen, magnetic tape unit, line printer, and telecommunications equipment. This book has three main objectives: (1) to present an introduction to programming and using the IBM 5100 computer; (2) to present an introduction to the APL and BASIC languages; and (3) to present the systems concepts necessary for effectively utilizing the computer.
- Katzan, Harry, Jr.
- Manuals
- IBM 5100 APL Introduction, Form #SA21-9212
- IBM 5100 APL Reference Manual, Form #SA21-9213
- IBM 5100 Communications Adapter Feature User's Manual, Form #SA21-9215
- IBM 5100 BASIC Introduction, Form #SA21-9216
- IBM 5100 BASIC Reference Manual, Form #SA21-9217
- IBM 5100 Serial I/O Adapter Feature User's Manual, Form #SA21-9239
- IBM 5100 Print Plot/APL User's Manual, Form #SA21-9264
- IBM 5100 Print Plot/BASIC User's Manual, Form #SA21-9265
- IBM 5100 Maintenance Information Manual, Form #SY31-0405
- IBM 5103 Printer Maintenance Information Manual, Form #SY31-0414
- IBM 5100 Communications/Serial I/O Maintenance Information Manual, Form #SY31-0429
- IBM 5103 Parts Catalog, Form #S131-0598
- IBM 5100 Parts Catalog, Form #S131-0599
- IBM 5106 Parts Catalog, Form #S131-0603
- Reference Cards
- IBM 5100 APL Reference Card, Form #GX21-9214
- IBM 5100 BASIC Reference Card, Form #GX21-9218
Related Web Sites:
- Scanned documentation
- Christian Corti's IBM 5100 page has considerable technical detail on the system internals, including details on the PALM instruction set. Also available in German.
- Before the Beginning: Ancestors of the IBM Personal Computer, from the IBM Archives
- Markus Wandel's page, with many IBM 5100 photos and an IBM 5110 brochure
- The Computer and Me: A Retrospective Look at Some Computers and Languages by Keith Smillie
- oldcomputer.net
- Computer Closet Collection
- Hal Layer
- Dr. Paul J. Friedl developed SCAMP, the predecessor of the IBM 5100
- Obsolete Computer Museum
- The History of Computing Project
- CED History of Media Technology
- The Machine Room
- UvA Computer Museum
- Computermuseum der Fakultät Informatik - also a description and photo of the PALM CPU module
Thanks to Del Cecchi, Russell P. Holsclaw, Greg Pfister, and Joey Tuttle for providing technical information.
Time Travellers Need IBM 5100 Computers!
From 2000-2001, John Titor claimed to be a time traveller sent form 2036 to 1975 to fetch an IBM 5100 in order to solve problems with legacy software in 2036 (before Unix systems fail in 2038). He stopped in 2000 to warn us of a civil war that would start in the US in 2005 and culminate in World War III in 2015. He claimed that there was some special hidden feature in the 5100:
In 2036, it was discovered (or at least known after testing) that the 5100 computer was capable of reading and changing all of the legacy code written by IBM before the release of that system and still be able to create new code in APL and basic.
On theJohn Titor web site, select "5100 Computer" in the "Posts by Topic" pulldown menu.
If you have 5100 computers that you'd like to contribute to his cause, I don't know how you can get them to him. On the other hand, I'm still trying to find a working A or C model 5100 (with APL), or any 5100 model (working or not) for spare parts. My 5100 model C1 has a bad APL ROS module.
| Last updated July 27, 2004 Copyright 1999, 2000, 2002, 2003, 2004 Eric Smith eric@brouhaha.com | | |
| --------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | |