Re: And it's actually *programmable*
Used to programme this machine back in the 1960's.
The relays are used to decode instructions and set up the required data paths, basic addition and subtraction are purely electronic limited in speed by the switching speed of the cold cathode decatrons. The electronic parts of the addition process took about 30-40 mS + extra for carry cycles. Multiplication used "shift-and-add" - a bit like long multiplication - and required relay intervention to set up the shifted data paths, the operation was so slow you could actually see the partial products build up. Division was similar although the need to count the number of operations made it even slower. The (shifted) divisor was repeatedly subtracted from the dividend until a sign change was detected, it was then added back once and new cycle of subtractions started with an increased shift - again it was possible to watch the quotient being built up.
Incidentally division by zero was a particular problem as the repeated subtraction of zero never resulted in a sign change. If this happened a "watch dog" circuit noted that no new instructions had been read in for some time and, depending on the setting of a control switch, either blew a hooter or shut the machine down.
Addition and subtraction took place directly between memory locations, multiplication and division proceeded via a special memory location called the accumulator.
The dekatrons are visual and it is possible to stand in front of the machine and determine the contents of any memory location by the simple expedient of looking at it. An excellent feature for the introductory programming courses held at Wolverhampton.
Programmes were normally read from paper tape, each instruction being read from tape before execution, this operation contributed significantly to the slowness of the machine. If you wanted a programme loop you need to make the tape into a physical loop using a paste-pot. There was also a technique for incorporating something called a "block number" in amongst the orders on the tape, this functioned in exactly the same way as a label in a more modern programming language.The original "Gloy" paste pot I used in the 1960's was still in the spares box when the machine moved to Bletchley Park!
It was also possible to store instructions in memory (like a modern computer) but with only 90 memory locations this was rarely done. It was actually slower to read instructions from memory than it was to read them from paper tape. [Not quite sure why].
There were further problems with loops, the mechanical readers are rather heavy handed and after several passes had a tendency to poke extra holes in the tape. Solutions included the use of, expensive, linen based paper tape and repeating the "loop body" multiple times on a larger physical tape. I remember one large loop that was routed round an Anglepoise lamp on the other side of the room.
The most interesting task I programmed on this machine was a key (as in door key) design programme for a local firm of lock and key manufacturers [Messrs Chubb]. The problem was that on a mortice key (the sort with sticking pieces of metal called wards) only certain combinations of ward length were valid, a single ward sticking up above its neighbours would be weak, adjacent wards of the same height were a security problem etc.. Along with another schoolboy (I was let off school for a day a week to use the WITCH) we programmed the WITCH to print out all the valid combinations.
Like all machines of its period, the WITCH had what can only be called "presence", a wall of flashing lights, clacking relays, clattering tape readers and the slightly asthmatic whirr of the output printer springing into life.
Remembering the state the machine was in when it reached Bletchley Park, the fact that it has been restored without any significant replacements is a tribute to both the original designers and the restoration team.
Attending the re-boot ceremony I was given a lapel name badge that described me as "Wolverhampton WITCH", I'm keeping it for Halloween!