That is really super cool. If you look at the Wikipedia page for DTL, you’ll see a figure with a negative voltage. That’s a pain, but it was necessary. Without it (and with “good quality” diodes) anything more than a very small fraction of a volt will turn the transistor on - i.e. it will be a “1”.
With the LEDs, which are sort of crappy diodes with a big forward voltage drop, you get about the same noise immunity as TTL. And free blinkenlights! Hilarious. I never really understood DTL until today.
This was a project that Steve Wozniak proposed many, many years ago, building a ( small) microprocessor using discrete DTL logic, with the Diodes being light emitting- a visual microprocessor.
Needless to say, he never got around to it.
One interesting thing about a sliced implementation is going beyond the original 8 bit data / 6 bit addresses (64 byte memory max). In this scheme you could have 16 bit data / 12 bit addresses (8KB memory max) which allows real applications to run. In my talks I have done 16 bit data / 14 bit addresses (32KB max memory) but all of the programs I have written so far don’t need all that.
Can you get a simple operating system packed in that small a space?
No tricks like virtual memory, or swapping memory to disk.
You have read/write a disk block, and getc(dev),putc(ch,dev) as the
only system calls. Disk 256 byte sectors.
By “that small a space” do you mean the 8KB (4K 16 bit words) that the expanded LED-DTL implementation of the MCPU can address? That is a little more than what the basic PDP-8 could do, so in theory the answer is yes.
One the other hand, having only 4 instructions (this project seems to add more, but it wasn’t clear to me how they are encoded) means you need a lot more instructions to do anything. For example, a simple sine generation benchmark I wrote takes up 2403 on the expanded MCPU but is only 128 bytes long on the RISC-V using only 32 bit instructions (no C extension).
Nothing stops you from doing a 24 bit data / 18 bit address (or 22 bit address if you are not limited to the slices in this project) which would give you 768KB (or 12MB) of memory to play with. Then the absurd code bloat is not such a big problem anymore.
The design is a proof of concept of the logic. The hard part is designing a good instruction set,
Only after you write code, you get a feel for what is needed or lacking.
Ben.
PS.I wonder if optocouplers could be used. to emulate relay logic.