IBM PALM processor

The PALM (Program All Logic in Microcode ) is a 16-bit central processing unit (CPU) developed by IBM. It was used in the IBM 5100 Portable Computer, a predecessor of the IBM PC, and the IBM 5110 and IBM 5120 follow-on machines. It is likely PALM was also used in other IBM products as an embedded controller.

IBM referred to PALM as a microprocessor, though they used that term to mean a processor that executes microcode to implement a higher-level instruction set, rather than its conventional definition of a CPU on an integrated circuit. The PALM processor was a circuit board containing 13 bipolar gate arrays packaged in square metal cans, 3 conventional transistor–transistor logic (TTL) ICs in dual in-line packages, and 1 round metal can part.

The PALM was used to implement an emulator, which in turn could run machine instructions originally written for other machines; this is how IBM System/360 APL ran on the 5100.

PALM has a 16-bit data bus, with two additional bits used for parity. PALM can directly address 64KB (64KiB) of memory. The IBM 5100 could be configured with up to 64+KB (APL + BASIC ROMs make 64+KB) of Executable ROS (ROM) and up to 64KB of RAM. A simple bank switching scheme was used to extend the address space.

In 1973, the IBM Los Gatos Scientific Center developed a portable computer prototype called SCAMP (Special Computer APL Machine Portable) based on the PALM processor with a Philips compact cassette drive, small CRT display, and full-function keyboard.