Way back before the days of microcomputers, a few very lucky students first got their hands wet with microcomputer trainers. These simple devices used common logic chips, lights, and switches to perform calculations; basically, a very small and simple computer. [Jack] has just released his DUO Basic 8-bit educational computer, a computer designed entirely around logic chips just as was done in the olden days.
The entire computer except for a single EEPROM giving the computer 256 bytes of ROM, three registers, and two instructions (condition jmp and add). This allows for simple programs to be written just by flipping switches and hitting buttons – it doesn’t get much more ‘bare metal’ than that.
[Jack] has an online assembler and emulator for the DUO Basic along with a few example assembly programs. Of course, all the schematics and block diagrams are available on his site, along with a nice introductory video, shown below.
16 thoughts on “Duo Basic: An All-Logic Chip Educational Computer”
That’s really a nice build. I ordered one. I do, however, wish it had mounting holes!
Yep – my number one thing on all boards I make, even little skittery things – make sure it’s got mounting holes! Even two is sufficient ;-)
I am able to add mounting holes to the design before I order additional boards. What radius should the holes have?
Cool! I think regular motherboard standoffs are usually 6-32, so whatever hole is appropriate for that. If you’re taking requests, if you could get the holes on each corner, then some extra holes positioned near the various buttons/switches so the board doesn’t flex a bunch when they’re being pressed, that would be ideal. Maybe a barrel connector for power?
Hi Jack, have been on vacation for the past several weeks and came back yesterday to see that you were selling kits for your new computer. To my dismay, I learned that you could not file an order after November 17. Will you be continuing production cycles, or was this a one time occurance?
Just ordered one. The guy has a brown.edu address and I’m local. I should contact him and tell him I can pick the thing up.
If it’s only got 2 instructions it’s not gonna be very educational. It’d be more useful with an INTERCAL compiler.
The above article is incorrect.
One register is the program counter so ADD can be used as a RJMP instruction, forwards or backwards.
The other instruction is not a JMP per se but rather MNZ, Move if register A is Not Zero. So it can be a Compare instruction, an absolute JMP or an Immediate Load.
You can most certainly can, and should, learn on this type of hardware. I took a break a while back using AVR’s and wrote some test stuff with the 6809. Reverse engineering some of the 6809 software was a real eye opener in using some instructions more effectively. Assembler tricks I would’ve never used in any other higher level language. Having a severely limited instruction set really simplifies the thought process.
Oops bad edit mixed up my instructions there. Bleh. I meant to say the conditional JMP is a MNZ… which does this and that and that. Oh well…
That’s funny. Having done a LOT of 6809 assembly in years gone by, I never considered it a very limiting instruction set. 8048, that’s limiting. PIC, that’s limiting. But the 6809? Heck, the only “better” architecture at the time was the 68000.
And, in fact, the 68K is what really put a MAJOR dent in acceptance of the 6809 in the marketplace. A lot of companies that would have done a 6809 design waiting the 9 months from when Motorola first announced the 68K until the started shipping. The 6809 is elegant. Especially after living with the 6502, 6800, and 8080/Z80’s.
I would think the limited instructions complicate the thought process, a lot. You don’t have the basic instructions a CPU should have, so you’re essentially making your own up with hacks. As Savannahlion mentioned, you have to contrive instructions by sideways analysis of the logic that’s there, using operands as part of the effective instruction. That’s for people who already know a lot about CPUs and are good with logic.
Nobody makes CPUs like this, except as experiments. RISC chips really have lots of effective instructions, through their orthogonal and versatile instructions, each of which can be modified to do the things CISC chips separate into discrete instructions. But this chip makes doing anything practical into a chore.
It’s Turing-complete, but so’s Brainfuck. Nobody writes in Brainfuck except as an obtuse intellectual challenge. The guy who eventually managed Hello World was celebrated as a genius!
It might be educational for people who are already very good, but it’s hostile to beginners, and of course gives no impression of how real CPUs are programmed.
I’m not saying it’s not, well, whatever, but it’s not educational!
BTW if you want an awesome, minimalist TTL computer, look up the Kenbak. That’s a real gem, a combination of great thinking, and methodical design. From 1971.
They’re expensive collectors items. They’re very rare, but I think it’s the elegance that people really appreciate.
I think that’s a matter of opinion… In my opinion this isn’t and shouldn’t be intended as a full featured CPU. It’s a minimalist and accessible teaching machine that shows the individual how CPU’s work, from an instruction as a collection of on/off states on a bus as it moves through the control circuitry based on each a clock tick through the ALU and through the registers. It may not be for everyone but there is a certain appeal to gaining an understanding of the machine at such a low level.
The limited instruction set teaches the student how to think outside of the box so that once they get a handle of the limitations of the machine and instruction set they can push the boundaries to see what they can make of it. That said, I would have liked to see maybe 256 bytes of RAM like uProcessor trainers from the late 70’s.
The Kenbak was an amazing machine for its time. Some day I plan to build the Arduino based mini-Kenbak (http://www.funnypolynomial.com/software/arduino/kenbak.html)
Neat little board. But 3 registers? You kids don’t how lucky you’ve got it. The Motorola MC14500B only had a single one-bit register, and were lucky! We had to code up hill in both directions, in the snow, and worry about getting eaten by bears…
See what happens when you get old? You get your stories confused.
This is pretty darn cool. I’ve been following the DUO series of computers for a while and even link to them from my TTL CPU site.
Dang, anyone buy a kit they dont want? I didnt realize there was a deadline!
Please be kind and respectful to help make the comments section excellent. (Comment Policy)