Programma 101

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Programma 101
Olivetti Programma 101 - Museo scienza e tecnologia Milano.jpg
A Programma 101
ManufacturerOlivetti S.p.A.
Typedesktop programmable calculators
Release date1965
Memory240 bytes
Input36 Key keyboard
Mass35.5 kg
SuccessorProgramma P102

The Olivetti Programma 101, also known as Perottina or P101, is one of the first "all in one" commercial desktop programmable calculators,[1][2] although not the first.[3] Produced by Italian manufacturer Olivetti, based in Ivrea, Piedmont, and invented by the Italian engineer Pier Giorgio Perotto, the P101 has the main features of large computers of that period. It was launched at the 1964 New York World's Fair; volume production started in 1965. A futuristic design for its time, the Programma 101 was priced at $3,200[4] (equivalent to $26,300 in 2020). About 44,000 units were sold, primarily in the US.

It is usually called a printing programmable calculator or desktop calculator because its arithmetic instructions correspond to calculator operations,[5][6] while its instruction set (which allows for conditional jump) and structure qualifies it as a stored program computer.[7]


Front view of a Programma 101 showing the printer and programming keys

The Programma 101 can calculate the four basic arithmetic functions (addition, subtraction, multiplication, and division), plus square root, absolute value, and fractional part. It is equipped with memory registers with features such as clear, transfer, and exchange, plus printing and halt for input.

Programming is a kind of assembly language, simpler than the assembly of the contemporary computers, as there are fewer options and allowed to use directly arithmetic functions. It directs the exchange between memory registers and calculation registers, and operations in the registers. There are 16 jump instructions and 16 conditional jump instructions. Thirty-two label statements were available as destinations for the jump instructions and/or the four start keys (V, W, Y, Z).[7]

While not stated in the General Manual and only in some Programming Manual, it was possible a "modified jump", which allows to go back to different part of the program from the same subroutine.

There are 10 memory registers: three for operations (M, A, R); two for storage (B, C); three for storage and/or program (assignable as needed: D, E, F); and two for program only (p1, p2). Each full register holds a 22-digit number with sign and decimal point or 24 instructions each consisting of a letter and a symbol.[8] Five of the registers (B, C, D, E, F) can be subdivided into half-registers, each containing an 11-digit number with sign and decimal point. It uses a kind of Modified Harvard architecture where data registers and instruction register are clearly separated, but it allows for some data to be written in the instruction registers under some conditions. That was a common feature in the '60s desktop computer/programmable calculator and only HP provided a true Von Neumann architecture which allowed for self-modifying code,[9] similarly to the contemporary general-purpose mainframes and minicomputers.

The stored programs can be recorded onto plastic cards approximately 10 cm × 20 cm that have a magnetic coating on one side and an area for writing on the other. Each card can be recorded on two stripes, enabling it to store two programs. Five registers are stored on the card; two registers are dedicated to the program code, the other three registers (D, E, F) can be used for code and/or numbers. Instructions occupy one byte, and a magnetic card can hold 120 instructions.

In large computers such as the Olivetti Elea 9003, an instruction occupies 8 bytes; 120 instructions occupy nearly 1 Kbytes; the total memory is 20 Kbytes in basic models. In the Programma 101 every instruction or digit occupies 8 bit, codified in binary-coded decimal. In instructions the left nibble stores the affected register and the right nibble the instruction, while in digits the first nibble stores information about the number, such as the sign or the decimal place, and the last nibble stores the actual digit.[10]

Earlier computers were expensive and could only be used by experts. The P101 was easy and economical, and programs on magnetic cards, in a simple machine language, allow use without knowing the programming language.[11][12][13][14][15]

It prints programs and results onto a roll of paper tape, similar to calculator or cash register paper.

Technical characteristics[edit]

  • Size: 275 mm ( A ) x 465 mm ( L ) x 610 mm ( P )
  • Weight: 35.5 kg
  • Consumption: 0.35 kW[16]
  • Output device: 30 column printer on 9 cm paper
  • Accuracy: 22 digits and up to 15 decimal places
  • Operations: add, subtract, multiply, divide, square root and absolute value
  • Total memory: 240 bytes in the ALU (estimated) [AP 10]
  • Keyboard: 36 keys.
  • Archive: Magnetic card reader

Instruction set[edit]

Instruction Opcode Operation
Sum + A = A + Chosen Register (since now CR)
Subtraction - A = A - CR
Multiplication x A = A * CR
Division : A = A : CR
Square root A = sqrt(CR)
Absolute value A ↕ A = abs(A)
Transfer from M CR = M
Transfer in A A = CR
Exchange with A A = CR
CR = A
Decimal part of A in M / ↕ M = A - abs(A)
Clear * CR = 0
Print Print the chosen register
Vertical spacing / Print a blank line
Stop S Stop the computer to let the user introduce data in the M register or to use the machine manually as a calculator
D-R exchange RS Store the D register temporarily in the R register; this is a special instruction used in multi-card program to save data from the deletion that happens while reading a new card


A total of 240 bytes of information are electrically stored in magnetostrictive delay-line memory, which has a cycle time of 2.2 milliseconds. Computation is effected by discrete devices (transistors and diodes mounted on phenolic resin circuit card assemblies), as there were no microprocessors, and even integrated circuits were in their infancy.

Design and ergonomics[edit]

Layout of the keyboard

Olivetti was famous for its attention to both engineering and design aspects, as the permanent collection at the Museum of Modern Art testify. The Programma 101 is another example of this attention. Engineering-wise, the team worked hard to deliver a very simple product, something that anyone could use. To take care of the ergonomics and aesthetics of a product that didn't exist before, Roberto Olivetti called Mario Bellini, a young Italian architect:

I remember that one day I received a call from Roberto Olivetti: "I want to see you for a complex project I'm building". It involved the design not of a box containing mechanisms and stamped circuits, but a personal object, something that had to live with a person, a person with his chair sitting at a table or desktop and that had to start a relationship of comprehension, of interaction, something quite new because before then computers were as big as a wardrobe. With a wardrobe we don't have any relationship: in fact the most beautiful wardrobes disappear in the wall. But this wasn't a wardrobe or a box, this was a machine designed to be part of your personal entourage.

— Mario Bellini, 2011, "Programma 101 — memory of the future", cit.

Interaction design and usability[edit]

Olivetti P101 magnetic card

One of the direct results of the Programma 101 team focus on human-centered objectives is the invention of the programmable magnetic card, a revolutionary item for that time, allowing anyone to just insert it and execute any program in a few seconds.[17]

It is a very portable and effective solution: a small magnetic strip with a program memorized in it and a space on the other side to write the description. The program is loaded just by inserting the card at the top, and when the card came out at the bottom, it is aligned perfectly with the V, W, Y, Z keys in a way that the author could have written on the card the labels for these buttons, to make the user aware of their new functions.[18]


It was designed by Olivetti engineer Pier Giorgio Perotto in Ivrea. The styling, attributed to Marco Zanuso but in reality by Mario Bellini, was ergonomical and innovative for the time, and earned Bellini the Compasso d'Oro Industrial Design Award.

Developed between 1962 and 1964, it was saved from the sale of the computer division to GE thanks to an employee who one night changed the internal categorization of the product from "computer" to "calculator", leaving the small team within Olivetti and creating some awkward situations in the office, since the building except that office was then owned by GE.[19] In 1961, Olivetti built a much bigger computer co-developed by Federico Faggin that served as a model for the programmable calculator.[20]

The Programma 101 was launched at the 1964 New York World's Fair, attracting major interest. 40,000 units were sold; 90% of them in the United States where the sale price was $3,200[4] (increasing to about $3,500 in 1968.[7])

Hewlett-Packard was ordered to pay about $900,000 ($7.39 million in present-day terms [21]) in royalties to Olivetti after copying some of the solutions used in the Programma 101, like the magnetic card and the architecture, in the HP 9100.[22][23]

About 10[24] Programma 101 were sold to NASA and used to plan the Apollo 11 landing on the Moon.

By Apollo 11 we had a desktop computer, sort of, kind of, called an Olivetti Programma 101. It was a kind of supercalculator. It was probably a foot and a half square, and about maybe eight inches tall. It would add, subtract, multiply, and divide, but it would remember a sequence of these things, and it would record that sequence on a magnetic card, a magnetic strip that was about a foot long and two inches wide. So you could write a sequence, a programming sequence, and load it in there, and the if you would – the Lunar Module high-gain antenna was not very smart, it didn't know where Earth was. [...] We would have to run four separate programs on this Programma 101 [...]

— David W. Whittle, 2006[25]

The P101 is mentioned as part of the system used by the US Air Force to compute coordinates for ground-directed bombing of B-52 Stratofortress targets during the Vietnam War.[26]


The first known Programma 101 simulator was written in 1995 by E.H. Dooijes of the University of Amsterdam for the local Computer Museum in Turbo Pascal and it worked only in batch mode.

In 2016, a simulator of the Programma 101[27] was developed at the Department of Information Engineering and Electrical Engineering of University of Cassino. The work was carried out under the direct supervision of Eng. Giovanni De Sandre starting from its Excel simulator.

The Tecnologicamente Museum in Ivrea has a Java simulator of the Programma 101 written by Giuliano Gaiti, one of Perotto's collaborators.[28] and it is regarded as the most accurate simulator, while it's not fully identical to the machine.

The former Olivetti employee Marco Galeotti created a full integrated development environment (IDE) for the Programma 101, which allows for a simpler programming and some debug functions.[29]

Another simulator was written in 2005 and updated several times by Eng. Claudio Larini, which had some contact with Gastone Garziera, another of the P101 engineers.[30]


  1. ^ "Olivetti Programma 101 Electronic Calculator". The Old Calculator Web Museum. technically, the machine was a programmable calculator, not a computer.
  2. ^ "2008/107/1 Computer, Programma 101, and documents (3), plastic / metal / paper / electronic components, hardware architect Pier Giorgio Perotto, designed by Mario Bellini, made by Olivetti, Italy, 1965-1971". Retrieved 2016-03-20.
  3. ^ "Olivetti Programma 101 Electronic Calculator". The Old Calculator Web Museum. It appears that the Mathatronics Mathatron calculator preceeded [sic] the Programma 101 to market.
  4. ^ a b "Cyber Heroes: Camillo Olivetti". Hive Mind. Retrieved 2010-11-07.
  5. ^ "Olivetti Programma 101 "Perottina"".
  6. ^ "Note in: WANTED - Data Acquisition Corp. DAC-512". The Old Calculator Web Museum. See footnote.
  7. ^ a b c Bell, C. Gordon; Newell, Allen (1971). "Chapter 19: The Olivetti Programma 101 desk calculator". Computer Structures: Readings and Examples. McGraw-Hill. p. 235. ISBN 0-07-004357-4. Retrieved 2009-12-17.
  8. ^ Wladimir Zaniewski (2016-09-04), Olivetti Programma 101 - Utilizzo dei registri, retrieved 2016-09-04
  9. ^ HP 9100A/B programming
  10. ^ Olivetti Programma 101 functional description
  11. ^ 101proj (2010-12-21), Programma 101 – Memory of Future, retrieved 2016-03-20
  12. ^ Archivio Nazionale Cinema d'Impresa (2013-12-03), Spot - Olivetti - calcolatore - Programma 101, retrieved 2016-03-20
  13. ^ "The incredible story of the first PC, from 1965". Pingdom Royal. Archived from the original on 2012-08-30. Retrieved 2016-04-04.
  14. ^ "101 Project". Archived from the original on 2016-04-22. Retrieved 2016-04-04.CS1 maint: unfit URL (link)
  15. ^ "Premio Perotto - Press". Retrieved 2016-04-04.
  16. ^ "Olivetti Programma 101 -". 9 December 2020. Retrieved 9 October 2021.
  17. ^ "Olivetti Programma 101 Electronic Calculator". The Old Calculator Web Museum.
  18. ^ Bonomi, Francesco. "The Programma 101 Magnetic Card". IT: Silab.
  19. ^ "Programma 101 Memory of the Future / Quando Olivetti Inventò il PC". History Channel. YouTube. June 26, 2011.
  20. ^ "Oral History of Federico Faggin" (PDF). Computer History Museum. 2006. Archived (PDF) from the original on 2017-01-10. Retrieved 2020-05-11.
  21. ^ 1634–1699: McCusker, J. J. (1997). How Much Is That in Real Money? A Historical Price Index for Use as a Deflator of Money Values in the Economy of the United States: Addenda et Corrigenda (PDF). American Antiquarian Society. 1700–1799: McCusker, J. J. (1992). How Much Is That in Real Money? A Historical Price Index for Use as a Deflator of Money Values in the Economy of the United States (PDF). American Antiquarian Society. 1800–present: Federal Reserve Bank of Minneapolis. "Consumer Price Index (estimate) 1800–". Retrieved January 1, 2020.
  22. ^ "Olivetti Programma P101/P102". Old Computers. Retrieved 2020-05-11. The P101, and particularly the magnetic card, was covered by a US patent (3,495,222, Perotto et al.) and this gave to Olivetti over $900.000 in royalties by HP alone, for the re-use of this technology in the HP9100 series.
  23. ^ Perotto, Pier Giorgio (February 10, 1970). "3,495,222 Program Controlled Electronic Computer" (multiple). United States Patent Office. et al. Google patents. Retrieved November 8, 2010.
  24. ^ "Programma 101 Memory of the Future / Quando Olivetti Inventò il PC". History Channel. June 26, 2011.
  25. ^ Whittle, David W (Feb 16, 2006). Johnson, Sandra, interviewer, transcriptor & (ed.). "NASA Space Center" (PDF). Oral History Project. Houston, TX.
  26. ^ Shawcross (1991). "Bombing Cambodia: A Critique". In Rotter, Andrew (ed.). Light at the end of the tunnel: A Vietnam War Anthology. New York. p. 280. ISBN 0-312-04529-8.
  27. ^ "Simulator of Programma 101".
  28. ^ "Simulatore P101".
  29. ^ "P101Simulator".
  30. ^ "Emulatore Programma 101".

External links[edit]