And then there's the Elliott 803, an influential machine. Tony Hoare (Quicksort, NULL, semaphores, CSP, Turing Award)) developed an influential Algol-60 compiler for it. The Elliott 803 was the computer used in the ISI-609, the world's first process or industrial control system, wherein the 803 was a data logger. It was used for this purpose at the US's first dual-purpose nuclear reactor, the N-Reactor.
39 bit word, 39-bit registers, 18/39-bit instructions, 13-bit addresses, 1-bit data path. Categorise that!
13 bit, but it came very very close to being 39 bit :-)
Although the accumulator (the only register except another to put the top half of a double-precision result) was 39 bits, that doesn't make it a 39 bit machine, just as the 80386 or 68020 having some 80 bit registers didn't make them 80 bit computers. And neither do the x86 string instructions.
How was it almost a 39 bit machine?
If the "B" bit between the two 19 bit instructions in a word was set then the new value of the 39 bit memory location pointed to by the first instruction (which is most often the same as the old value) is added to the 19 bit instruction in the second half of the word, before that instruction is decoded. It's a simple arithmetic add, so that data word being added can alter not only the 13 bit address in the 2nd instruction (the most common use, for array indexing or simple pointer-chasing), it can also modify the opcode field. Or even overflow the address into the opcode. Ugh.
Since it has this indexed/indirect addressing ability there is no real need for a self-modifying code ability before instruction decode -- you can anyway just do that in memory. So they COULD HAVE instead used the entire 39 bit data word from memory as a base address added to the 13 bit offset in the 2nd instruction and had 39 bit addressing.
Not that anyone needed 2,748,779,069,440 bytes (2.7 TB) of memory (2,680,059,592,704 after subtracting the parity bit in each word) in the 1960s. They could probably barely afford the 40k bytes the machine actually supported.
The normal core store was 4k words; 8k was the architectural maximum. Youngsters don't comprehend why memory cost used to be specified in terms of $/bit (cf Gb/$ !)
I've long ago forgotten how the B bit word worked, event though it was integral to the first machine code program I wrote[1].
I'll probably see a working 803B tomorrow, and if Peter Onions is there I'll ask him. He is more than happy to whip out the blueprint schematics, and discuss them
![Smiley :)](https://www.eevblog.com/forum/Smileys/default/xsmiley.gif.pagespeed.ic.R8GFI-pF6f.png)
[1] to convert from one 5-channel paper tape code into Elliott 5-channel paper tape code. I unwittingly (re)invented FSMs when doing it, one state for figure shift, another for number shift, and the events being the input characters
![Smiley :)](https://www.eevblog.com/forum/Smileys/default/xsmiley.gif.pagespeed.ic.R8GFI-pF6f.png)