# Monrobot XI

The Monroe Calculating Machine Mark XI (or Monrobot XI) was a general-purpose stored-program electronic digital computer introduced in 1960 by the Monroe Calculating Machine Division of Litton Industries. The system was marketed for "primarily for billing, and invoice writing", but could also be used for low-end scientific computing.$^{:6B(24)}$
The computer had an unusual architecture, in that all data flowed through a central spinning drum magnetic memory. This enabled a low hardware cost, with the tradeoff of low-speed performance. The machine was marketed as an entry-level computer suitable for small businesses.

## Pricing and applications

Upon introduction in May 1960, the Monrobot XI sold for $24,500. Monroe also marketed other computer systems in the family, such as the Monrobot IX and Monrobot MU, but the Monrobot XI appeared to be the most popular model.
In March 1961, the United States Army reported that seven units had been made. In November 1961, the price remained unchanged and leasing was $700 per month.
By 1966, there were about 350 machines in the field. In 2013, no machines were believed to remain in existence. However, in 2021, a collector in North Carolina revealed that he owns half a dozen complete Monrobots, along with ancillary items, manuals, and tape programs.

## Physical appearance and operating environment

The bare-bones Monrobot XI resembled an ordinary steel desk in length, breadth, and height, surmounted by an ordinary typewriter and a breadbox-sized control panel with indicator lights and switches. A paper tape reader and punch were the only machine-readable data media peripherals on the base configuration. At a weight of 375 pounds (170 kg),$^{:6B(24)}$ its purveyors pronounced it "portable". It could operate outside of an air-conditioned room tolerating ±25% voltage margins at an ambient temperature of 110 °F (43 °C) using a conventional mains power line (15 A, 110 V, 60 c.p.s. service) and about half as much electrical power (850 W) as a toaster.$^{:6B(24)}$

## Architectural philosophy

Unlike virtually all electronic digital computers ever built, as an early machine, the Monrobot XI was one of the small family of computers which totally lacked random-access memory (RAM), an alternative technology which would have allowed it to access all memory words equally rapidly. Even at the time it was introduced, it was not rare for electronic digital computers to use magnetic-core memory for RAM; the price (per bit) of which would eventually fall from over $1 in the early 1950s to about $0.20 by the mid-1960s.
Instead, to keep the cost of the machine very low, the Monorobot XI used a form of memory in which words were only periodically accessible in sequential order, via an electromechanical moving device called magnetic drum memory. Thus, physically it bore some resemblance to the theoretical Turing machine of computer science, albeit with the idealized data tape being of finite length and joined end-to-end, and then finally replicated 32 times in parallel. The long latency of memory access, which followed from exclusive reliance on a macroscopic moving part, made the Monrobot XI operate very slowly, despite the use of non-mechanical electronics for logical functions.
The Monorobot XI might best be thought of as a modernized (solid-state), low cost version of the IBM 650, which had been the world's first mass-produced computer. The IBM 650 was leased at $3,250 per month and approximately 800 were made between 1954 and 1958. By 1962, a total of 2,000 computers were in existence. Both the IBM 650 and Monrobot XI used a magnetic drum for primary memory, but the former used vacuum tubes and bi-quinary coding (rather than transistors and binary coding) for its electronics.
All input and output was performed one character at a time, under direct program control. Only one input device could be active at a time, but one to three output devices could operate simultaneously in synchronization.$^{:35}$

## Persistent electro-mechanical memory

The Monrobot XI's rewritable, persistent ("nonvolatile") memory consisted of a rotating magnetic drum storing 1,024 words of 32 bits, each of which could record either a single integer, or a pair of zero- or single-address instructions. The average access time of 6 milliseconds (ms) derived from the fact that the drum made a full rotation every 11.7 ms (spinning at 5,124 rpm).$^{:10}$ Even the 8 "high-speed" registers of the central processing unit (CPU) physically resided on the drum in two dedicated tracks, but by being replicated 16 times (with 16 times as many read/write heads distributed around the drum periphery), they could be read or written 16 times as fast as the bulk of persistent memory.$^{:12}$
The whine of the drum could easily be heard, as it continuously spun for as long as the machine was powered up. A perforated metal screen at the side or back of the cabinet could be removed, affording a direct view of the reddish-brown iron oxide-coated drum, surrounded by multiple stationary magnetic read/write heads. There was no special provision for protection from dust, as the magnetic heads were rigidly mounted at fixed distances from the magnetic surface, and did not use "flying head" technology. The diameter of the drum was approximately 6 inches (150 mm).

## Electronics

Except for neon lamps in the control panel and 10 to 30 blue-green electroluminescent lamp vacuum tubes employed for output displays in later versions, the electronics used only discrete solid-state components, including 383 transistors (mostly 2N412) and 2,300 diodes (mostly 1N636). The arithmetic unit alone used 190 transistors and 1,675 diodes. This astoundingly small active component count (383) – little more than in the Manchester Baby (250), the world's first stored-program Turing-complete computer produced in 1948 – contrasts starkly with the many billions of transistors present in modern microprocessors used in handheld cellphones. The low component count was a key benefit of its slow electromechanical memory, which exploited synchronization with a spinning drum's rotational angle, rather than adding electronic switches, to accomplish multiplexing of bits. For comparison, even Intel's first (1971) microprocessor, the four-bit Intel 4004, required about 2,300 transistors in its monolithic design.
Construction used pluggable printed circuit boards, allowing partial replacement of a defective module as the principal means of repair. This continued an electronics construction tradition pioneered when the relatively unreliable vacuum tubes had been used as active components, prior to the advance to more modern transistors used in the Monorobot XI. Unlike vacuum tubes, which were always plugged into sockets, discrete transistors were often permanently soldered into place.

## System timing

The arithmetic unit performed computations using the binary number system, with machine-language programming using hexadecimal digits (called "sexadecimal" in the programmer's manual),$^{:3}$ and employing the unusual character set of {0,1,2,3,4,5,6,7,8,9,S,T,U,V,W,X}.$^{:3}$ Addition of 32-bit fixed-point integers required 3 to 9 milliseconds (ms), and multiplication required 28 ms to 34 ms. The longer durations reflected the mean latency (6 ms) of accessing a persistent memory location, rather than a register, to retrieve the second of the two operands.
Division (500 ms) and more-advanced floating-point functions were implemented in software. Advanced built-in mathematical functions included square root, logarithm, and antilogarithm (on both decimal and natural bases), plus trigonometric functions (in degrees or in radians). A total of 27 machine opcode instructions were defined. Addressing the 1,023-word memory was allocated 10 bits.$^{:88}$ An optional 2,048-word drum could be installed, and addressed via two extra address bits.$^{:88}$ The system was in many ways presented as an advanced programmable calculator, in keeping with the heritage of its manufacturer. Simple subroutine calls and returns were supported, as was autoincrement of operands.
The system clock and all timings were synchronized with the rotation of the storage drum, since all data flow passed onto or off of its central data store.$^{:12,72}$$^{:6B(24)}$ Programs could be hand-optimized for maximum speed by carefully considering the timing of the drum rotation and the physical location of instructions and data.$^{:72–74}$

## Programming

The computer could be programmed using an assembly language system called QUIKOMP, but its simple machine language instruction set and slow operation speed encouraged many programmers to code directly in numeric opcodes. A reference card was available to help in remembering the numeric opcodes and data codes. Bits were idiosyncratically numbered on the control panel from 16 (MSB, leftmost) down to 1 (LSB, rightmost), although the programmer's manual numbered them from 15 to 0 in a more standard manner.$^{:2,6}$
The minimal loader program had no provisions to support multiple users on a single machine. To accommodate multiple users economically, time-consuming manual data entry could be performed offline, by use of several separate key-to-punch paper tape machines (called "add-punch" machines), whose numeric-only keyboards were slightly-modified versions of mechanical desk calculators. Because the mechanical calculator-style keyboards could only generate decimal (base-10) codes, the numerical opcodes were specified in decimal, even though the actual processing was in binary.
Editing and copying of punched tapes was also possible offline, and tapes could be spliced using special adhesive tape and alignment Jigs. Experienced programmers soon learned to read the numeric codes visually from the punched paper tapes. When an "add-punch" tape had been proofread and corrected, it was ready for loading via a paper tape reader into the Monrobot XI for execution and debugging.
The console terminal typically was a modified IBM typewriter. An option was a heavy-duty Flexowriter, which rattled and shook the entire machine, especially when the heavy carriage forcefully returned to the beginning of a new print line. Output was via printed paper typed by the typeprinter, or punched oiled paper tape. An 80-column punched card reader/punch could optionally be added to the base configuration.
A single 16-bit register could be displayed on the control panel, primarily for troubleshooting or diagnostic purposes.$^{:62–65}$ The control panel could also be used to single-step, halt, or start the processor, for debugging or troubleshooting.$^{:70}$ There were also provisions for connection of an oscilloscope for more advanced technical troubleshooting.$^{:70}$
Eight different control panel "sense switches" could be used to enter simple data into a running program, or to select different modes of program operation under control of software.$^{:53–55}$

## The Monrobot computer series in popular culture

An episode of the animated television series Futurama, originally airing in 2001, featured a humanoid robot resembling mid-20th century sex symbol Marilyn Monroe, named "Marilyn Monrobot", as a character within a film viewed by the episode cast.