Tech that never was. The "Tape controller"
While watching the movie "Juggernaut" a while back I had a notion.
In the movie Richard Harris's team of IED specialists are dropped onto a liner in mid ocean that "Mad bomber*" Juggernaut has rigged with multiple bombs in 50gal drums (IE somewhere north of 150Kg of explosive each). In return for a (modest) fraction of the liners new-build cost he'll explain how to defuse them.
So Harris and Co open up the drums and find the Prop. depts idea of a "Very complex timing device," which include what looks a loop of punched tape going round and around. It's function is unclear as all the holes in the tracks are punched, so every word is the same, whatever it is. :-( But "What if"?
Rewind to just after WWII.
It's 1946 and you have just come back from "War work" and have noticed that a lot of technician time was spent switching stuff on and off. You know the SoA for automating this is a thing called a "Cam timer," which is a slow speed motor driving a shaft on which are one or more disks with edge profiles (the cams) which open (or close) contact that control stuff. While it's simple to understand it's mechanically complex and changing the "program" means cutting new cams, which need geometry and metalwork skills. :-(
You have a cunning plan. The "Tape Controller (TM)" will use a paper tape reader to set the switches and control how long they run for. If you want to run the sequence again (call it a "loop") just Sellotape the ends together. On power on all bits output bits are 0 for safety, then it reads a word and either sets the OP bits, or starts a countdown timer till it reads the next word. Mechanically much simpler (and hopefully more reliable)
Of course it's not going to be that simple. :-(
Firstly the cheapest tape readers you can find are for teleprinters, which are 5 bits. Keeping it as simple as possible you need one bit to identify which words (the remaining 4 bits across the tape) are "time" and which are "output". IOW you have up to 15 time units (depending on how its wired secs, mins or hours), before it reads the next word. Then there's how will you store the time? Digital storage (using 2 valves/bit in a flip flop) is very expensive. Latching relays are OTS parts and can handle <= 30Hz operation. Very poor for a computer but this is not a computer.
So the "Mark 1 Tape Switch" can set a timer of 0-15secs, then read the next word and (possibly) change the outputs accordingly, before reading the next time window and so on.
Your plan is to make these first. If you're still in business you'll release a "Mark 1b" will have a knob that lets user choose if the time is in secs, mins or hours, so the maximum delay before a change will be 15hours, but (in principle) resolution down to a second (as long as someone is there to change the knob setting). You hope people will like this even more.
Now for the challenge.
You plan a "Mark 2" which will be much more ambitious. This will be expandable in number of OP lines and allow input (also expandable) to be read.
Here if the most significant bit is 0 the other 4 bits will be an instruction set, the first one of which will be "use the next word to set the (currently selected) next 4 outputs." After that you'll need "set clock value" with secs, mins or hours, also in the following word. If the top bit is a 1, then it's a time, which remains a 4 bit number.
You will notice this machine has no concept of an address. You picture it as having 2 registers, one for OP, one for IP, which could be different lengths (different number of add-in boards). The "time" register is inaccessible other than to reload it.IP and OP each has a "cursor" tracking which 4 bits you're currently reading or writing, so you'll need a "Reset whichever cursor is in the following word" command (storing a parameter in the next word conserves available bits and allows flexibility and you really like this trick :-) )
Now it gets murkier. I think you'll want to be able to AND and OR a mask with the (currently selected) IP lines and IF the result is 0 (or not 0) then write (the next word) to the (currently selected) output block
Remember loops are literally the tape ends pasted together. I think it also needs a left and a right shift, making 10 instructions in total.
So my question would be what other instructions would you include in the available 6 opcodes left?
Commentards, the floor is yours.
*He's not mad, but he's very p***ed off.