The OLIVETTI Programma 101 desk calculator1
The Programma 101 is manufactured by the Olivetti Underwood Corporation. The cost of Programma 101 is about $3,500 (in 1968). Several thousand are currently in use. Unlike conventional stored program computers it has instructions which can be executed directly as commands from a keyboard or instructions which can be stored in a program and interpreted by the processor. The processor uses the decimal representation for mixed numbers. The decimal point location is controlled manually. Although information is stored in character strings, the maximum length is 22 digits or 24 instructions for a register. A program can be up to 120 characters long and is stored as a continuous string. The internal encoding of a character is 8 bits. There are no absolute addresses for instructions, and jump instructions are programmed by placing labels or references in the string to transfer to. The Programma 101 is composed of the following elements.
Memory. The memory stores numeric data and program instructions.
Keyboard. The keyboard has four functions: It is used for operator control of the calculator (power on, off, etc); in manual mode the instructions are executed immediately as in a conventional desk calculator (e.g., add); the keys write a program's instructions in the memory, and the instructions are executed when the program is run; and numeric data may be entered to a running program.
Printing unit. Serial printing is from right to left, at 30 characters per second; this unit prints all keyboard entries, programmed output, and instructions.
Magnetic-card reader/recorder. This device permits instructions and constants for a program to be stored and retrieved from magnetic cards.
Control and arithmetic units. The control unit is the administrative section of the computer. It receives the incoming information, determines the computation to be performed, and directs the arithmetic unit where to find the information and what operation to perform.
The PMS diagram shown below is, of course, very simple. It conforms closely to the classic diagram of what a digital computer looks like:
Primary memory and processor memory
The memory has 10 registers; eight are for general storage and two are used exclusively for instructions. A character can have several meanings, depending on the register and its use.
The two instruction registers, 1 and 2, each store 24 instructions. An instruction is one character long.
The eight storage registers, M, A, R, B, C, D, E, and F, have a capacity of 22 decimal digits, plus decimal point and sign. The sign and decimal point do not require character space. Alternatively, D, E, and F hold 24 instructions. M, A, and R are operating registers and take part in all arithmetic operations. They are considered to be the arithmetic unit.
The M register is the Median (or distributive) register. All keyboard figure entries are held in the M register and distributed to the other registers as instructed.
The A register functions with the arithmetic unit to form the Accumulator. Arithmetic results are developed and retained in the A register. A result of up to 23 digits can be produced in the A register.
The R register retains the complete results in addition and subtraction, the complete product in multiplication, the remainder in division, and a remainder in square root. B, C, D, E, and F are storage registers. Each can be split into two registers, each with a capacity of 11 digits, plus decimal point and sign. When storage registers are split, the right portion of the split register retains its original designation, and the left side is identified with the corresponding lowercase letter. Thus these registers become
1The description is partially taken from the Programma 101 Programming Manual.