From what I understand of ENIAC, it had a very large number of manually-operated rotary switches which behaved as ROM. While programming ENIAC in the early days required a plugboard, the machine was eventually enhanced to allow it to be programmed entirely via the switches. The speed at which the machine could change programs, however, was limited by the need to have operators manually set all the switches.

Given that electronic information storage was bulky, hot, and power-hungry compared with mechanical switches, it would seem like it should have been possible to construct mechanically-set electronically-read storage elements which could be read electronically just as fast as the manually-operated switches, but whose state could be set via automated electromechanical means. Did any machines ever actually do such a thing, or did magnetic core memory become available soon enough to make such an evolutionary step unnecessary?

  • 1
    Makes me think of telephone exchanges - and I'm not sure if I imagine seeing ex-exchange switches build into diy computers or not... Oct 28, 2016 at 20:03
  • @SeanHoulihane: I have seen an adding device built from phone dials and decimal steppers, but there was nothing electronically-addressable about it. My main thought was that loading a program into ENIAC using manual rotary switches would have been rather slow, and that being able to load a program from a stack of punched cards would have reduced the amount of down-time while the machine was being programmed.
    – supercat
    Oct 28, 2016 at 21:35
  • 1
    You mean, like punched cards? Or punched stripes? Those were common from the very beginning.
    – Janka
    Oct 30, 2016 at 17:02
  • @Janka: Punched cards and paper tape (is that what you meant by punched stripes?) are not electronically read-addressable.
    – supercat
    Oct 30, 2016 at 19:43
  • Each row, they are. And row-by-row, they are automatically-operated mechanical storage. Sorry, why have you sorted out them?
    – Janka
    Oct 30, 2016 at 20:02

5 Answers 5


Removable plugboards were a common form of read-only memory which I think fits the criteria. ENIAC plugboards were not removable, but later computers used low cost removable ones. They were adapted from the plugboards used for unit record equipment, which were simple frameworks for holding programming wires. An installation would have many of them "offline", each holding a program or part of a program. For a particular program run, the appropriate board(s) would be slipped into the machine and clamped against an array of contacts of the machine.

  • Removable plugboards are of interest, since they would greatly reduce the time to change programs, but I'd still be even more interested if anyone had used something like telephone steppers which--unlike plugboards--can be set automatically and take only microseconds to read (if that), even though they would take hundreds of milliseconds to write.
    – supercat
    Nov 14, 2016 at 22:31
  • 1
    Well, if you want electrically settable storage, early main memory devices are like that, such as Williams tube, delay line, and magnetic drum.
    – mgkrebbs
    Nov 14, 2016 at 23:01
  • My question was inspired by the discovery that the ENIAC, in its later years, fetched programs from ROM which consisted of manually-operated switches. Many forms of automatically-writable storage were either much bulkier (e.g. vacuum-tube RAM) or were incapable of handling random reads as quickly as the manually-operated-switch ROM, but telephone steppers could have been read electrically in just the same way as the manually operated switches, despite being much smaller than vacuum-tube RAM.
    – supercat
    Nov 14, 2016 at 23:17

I think core memory is what you are looking for. You may not think of it as a mechanical solution however it was. Core memory is electrically set and read, the read is destructive so part of the read initiated an automatic write if the bit was a 1.

Core retains its state after power loss through the mechanical position of the magnetic toroids. If at power up you didn't initialize the memory bank then the memory would still contain the last running state. If an application could run completely within core space, then after power restoration the application would continue operating, provided boot strapping of the system without initializing that portion of ram was possible.

I have seen demonstrations of this phenomenon on PDP-8 systems where people built a best of everything system with large amounts of core memory, ran an application that displayed output on a screen and then removed power. If one particular switch on the primary chassis was not toggled, upon application of power the program would continue operation.

During the time of the power loss it is possible for to change the position of some of the bits with mechanical means so it wasn't completely fool proof. They could conceivably be set by hand when not powered, but you would have to paint the rings to tell the bit states apart.

  • 1
    Core memory is not mechanical on a macro scale; it involves moving nuclei around molecules, rather than moving electrons around a relatively fixed pattern of nuclei, but I was more interested in forms of storage between the time of the vacuum tube RAM and the invention of the magnetic core. Incidentally, I'm also curious about what if anything has been done with neon storage (exploiting the fact that an arc can be held with a lower voltage than would be required to start it).
    – supercat
    Nov 13, 2016 at 7:57
  • Welcome to Retrocomputing Stack Exchange. Thanks for sharing an answer, however supercat did ask in the question, "or did magnetic core memory become available soon enough to make [automatically-operated mechanical storage" unnecessary," implying that they wanted technology before, and not including, core memory. Don't be dissuaded from answering more questions though; if you've seen PDP-8 systems actually running you could probably help a lot of people!
    – wizzwizz4
    Nov 13, 2016 at 8:57
  • 1
    True core memory actually caused the magnetic torus to rotate around the interseting wires. It wasnt on the molecule level. The way it was read was destructive to the data that its storage contained. The read was done by setting the bit to a '1' and measuring the flux difference between a torus that was already at the '1' state and one that needed to move to the '1' state. The follow on to restore the data to the current state set it to a '0' or '1' as needed. It is completely possible to mechanically rotate the torus to change its position. Nov 18, 2016 at 23:05
  • 3
    Rowan -- you have to provide a reference to your statement that the magnetic torus actually, physically rotated. All sources I have seen, says the the cores were magnetized differenttly (see for example wikipedia, not always a source of absolute truth). To me the physical rotation makes absolutely no sense.
    – ghellquist
    Sep 9, 2018 at 7:14

There are a number of possibilities, though most of them involve stretching the definition of "computer" somewhat:

  • The Zuse Z1, Z2, and Z4 computers used slotted metal strips as memory. Of these, only the Z4 was Turing-complete.
  • The Harvard Mark I and Mark II, the Zuse Z3, and BARK all used relays for storage, but only the Z3 was Turing-complete.

All of these used read-only paper tape for storing their programs. I've been unable to find examples of stored-program computers using mechanical means to store their programs, but if you stretch the definition of "mechanical" somewhat, delay-line memory stored data as mechanical pulses in a medium, typically mercury, and was used in a number of stored-program computers.

  • And some kinds of delay line used metal springs that let the information travel around them to be picked up some milliseconds later. youtube.com/watch?v=N9cUbYII5RY
    – OmarL
    Nov 13, 2016 at 13:03
  • Delay-line devices seem interesting, and from what I understand they continued to be used for quite awhile in things like adding machines. They are certainly mechanical, but I don't think they qualify as read-addressable in the fashion I intended, since they are limited to sequential access.
    – supercat
    Nov 14, 2016 at 22:02
  • The Z4 is a relay based computer. It doesn't use the same mechanical construction as its predecessors as far as I'm concerned.
    – fuz
    May 4, 2020 at 12:20
  • @fuz, according to Wikipedia, the Z4 used the same mechanical memory system as the Z1 and Z2, with relays handling the processing.
    – Mark
    May 4, 2020 at 21:07
  • @Mark Interesting. Let me ask Horst Zuse if that information is accurate. It's certainly not what I remember.
    – fuz
    May 4, 2020 at 22:10

This is an edited and expanded copy of an answer I posted elsewhere; it was pointed out to me that it would be useful information here.

EDSAC (operational in 1949) had read-only memory to hold its Initial Orders. The Initial Orders were wired on to uniselectors, otherwise known as stepping switches. The EDSAC had hardware facilities to load the Initial Orders from the uniselector bank into mercury delay-line memory, and that programme in turn allowed the easy (!) loading of other programmes from paper tape.

There's a picture of the uniselectors here, though I think this is from a modern reconstruction of EDSAC at TNMoC in Bletchley Park.

The uniselectors would have been of the kind used in telephone exchange at the time.

I don't recall how the programme was represented on the switches. At some point I had found a paper online describe it to the point at which I could more-or-less understand it :-) but I've lost the link.

Footnote: 'programme' is standard English, and at the time was the spelling used for both the verb and the noun in relation to computer instructions. By the time I wrote programs, 'program' was the computer-related spelling, and 'programme' was what you watched on television

This YouTube programme shows a little about programming EDSAC; the uniselector bank is shown around the 3 minute mark.

  • Thanks for the link. Looking at the video, it turns out that's a bit different from what I'd had in mind, since I'd been thinking of having one uniselector per stored digit, all hooked up to a multiplexer so their contents could be read out at program-execution speed, along with a few uniselectors that would which row of uniselectors would be operated by a pulsing unit. If one had 150 uniselectors, one could use a paper tape reader with sixteen columns, one of which would advance row-select and the others of which would advance one of the uniselectors on the selected row.
    – supercat
    Feb 20, 2021 at 21:07
  • @supercat - ha, I just got to wondering the same thing, and posted a question. Feb 20, 2021 at 21:10
  • If the uniselectors each have ten positions, one could easily load the state of all of the uniselectors using a tape that was 100 rows long. If there were 10 rows/columns per inch, setting all 150 uniselectors would require a 10"x2" tape (for that size, even a card wrapped around a drum would work) and probably only require about 10 seconds. Much faster than having to reconfigure a machine by hand.
    – supercat
    Feb 20, 2021 at 21:12
  • @supercat - I don't follow you. For EDSAC, I believe the uniselector content was programmed with a soldering iron. Feb 20, 2021 at 21:33
  • Indeed, but what I'd had in mind would have been uniselectors programmed electromechanically from punched tape, cards, or other such media.
    – supercat
    Feb 21, 2021 at 3:04

The Zeus Z1, Zeus Z2, and Zeus Z4 used "mechanical slotted metal strip memory". These were not stored program computers where the program is executed entirely out of main memory; rather, then program was read from a punched tape reader (Z1 and Z4) or punched card reader (Z2). The memory was used primarily for data, but it was randomly addressed.

The first clue that Z1 memory was randomly addressed is seen in this block diagram from The Z1: Architecture and Algorithms of Konrad Zuse’s First Computer, p. 4:

enter image description here

This illustration from p. 11 shows the working of a memory bit:

enter image description here

Figure 9: One mechanical bit in the memory. The pin can be stored in the zero or one position. Its position can be read.

Diagram 9(a) shows two stored bits. In step 9(b), a control plate moves the pins up. In step 9(c) the horizontal actuated plate is pusehd (lower bit) or not (upper bit) by the stored bit and the clocked plate. In step 9(d) the bits are moved back to their original position, where the vertical control plate can bring them to position 9(a). Reading a bit from this type of memory was a destructive process. After reading a bit, the contents of the bit cell had to be restored by the movement back shown in 9(d).

The Z1 and the Z2 had the same instruction set, and that instruction set could randomly address the memory. From https://history-computer.com/konrad-zuse/

The instruction set of the Z2 consisted of the same eight instructions of Z1.

and two of the instructions that randomly addressed memory:

  1. Two instructions for reading/writing from/to memory:

•Pr z—read the contents of the memory cell into Registers R1 or R2

•Ps z—write the contents of Register R1 to the memory cell

The memory of the Z3 was randomly addressed, as seen in the instruction set documented in this RC answer:

  • Ablesebefehl, A n (e.g. A 17) - reads a memory cell into R1...
  • Speicherbefehl, S n (e.g. S 18) - stores R1 in to a memory cell.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.