Microinstructions Done
May 1, 2012 9:56 AM   Subscribe

"I started this blog so that anyone wanting to build their own 8-bit computer could learn from my own experience and mistakes."
posted by griphus (22 comments total) 15 users marked this as a favorite

 
8 bit retro has made such a comeback that it wouldn't surprise me if someone created a new commercial console like NES. Something like MAME but supported by a strong actor/community where you could purchase the product at your usual toy/tech stores.
posted by Foci for Analysis at 10:03 AM on May 1, 2012 [1 favorite]


Minecraft.
posted by Burhanistan at 10:04 AM on May 1, 2012


Funny enough, Minecraft was where he started.
posted by griphus at 10:07 AM on May 1, 2012


I thought my husband would find this interesting since he plays with breadboards and built a similar thing on an fpga. He did, so thanks for posting. He said he doubts anyone thought of doing this and it's "madness in a good way."
posted by Listener at 11:02 AM on May 1, 2012


Oh crap. There goes the rest of my year.
posted by run"monty at 11:05 AM on May 1, 2012


This guy's version actually runs a Unix OS, which is insanely impressive.
posted by miyabo at 11:14 AM on May 1, 2012 [1 favorite]


I just did something similar as a class project, except we did it in VHDL for use in FPGAs, which is way easier.

I have dreams of making an FPGA-based Apple ][ clone, but that's probably on my ever-increasing list of "hobby projects I'll never start", which is almost as long as my list of "hobby projects I never finished"
posted by jcreigh at 11:15 AM on May 1, 2012


wait

People finish hobby projects?

I thought you just work on them until you get bored and then order something shiny and new from Jameco.
posted by griphus at 11:25 AM on May 1, 2012 [6 favorites]


Are you referring to address 16? That is the second step of the STO op code as you pointed out. During that microinstruction the Accumulator outputs into RAM. In order for my 74189 64-bit RAM to write a byte it needs to have both its write and read pins low. So memory address 16 contains the control word to bring MI_, MO_ and AO_ low.

I'll knock a couple of these out this weekend. Wish me luck!
posted by KevinSkomsvold at 11:27 AM on May 1, 2012


(When are those damn servos getting here, anyway.)
posted by griphus at 11:27 AM on May 1, 2012


This guy's version actually runs a Unix OS, which is insanely impressive.

And you can telnet in! (password is "magic")
jason@jason-desktop:~$ telnet magic-1.org
Trying 173.164.225.201...
Connected to magic-1.org.
Escape character is '^]'.

Minix  Release 2 Version 0.4

Magic-1 login: guest
Password:

    * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - *
    *                                                               *
    *      Bill Buzbee's Magic-1 HomebrewCPU TTL Minicomputer       *
    *                                                               *
    *    Running 16-bit Minix 2.0.4 at a blazing 4.09 Mhz......     *
    *                                                               *
    * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - *


Hi - and welcome to Magic-1/Minix.  The system is starting to get fairly
stable, though there are still a few things I'd like to do to make it
feel more responsive (in particular, implement "copy on write" to make
fork()/exec() go faster).  The Minix TCP/IP stack is a bit slow - so telnet
performance suffers (response is much better on a dedicated terminal here).

I recently moved the games to /usr/local/games - take a look.  Also,
see some of the many ported applications in /bin, /usr/bin and /usr/local/bin.
Some of the more popular are: life, adv, yahtzee, pom.  I've also got the
old spreadsheet sc, elvis (a vi clone), Tom Pittman's Tiny Basic, and the
small C compiler.

Feel free to poke around, but I'd appreciate it if you wouldn't try to
break what little security I've set up.  I'd like to keep this system as 
open as possible.

Thanks for dropping by,
...Bill Buzbee
Magic-1:/usr/home/guest # 
And it seems to be a fully functioning Unix server, albeit a quite slow one. There's even "eliza" if you need some help. :)
posted by jcreigh at 11:31 AM on May 1, 2012 [4 favorites]


68ks are darn cheap. The lab for digital electronics in college was essentially wire a 68k to some ram, a clock, a 'scope, and a hex-keypad, and write a program to "do something that will impress me" ..

oohh wiki informs me it was the 6800, not 68k. It was definitely 8-bit.
posted by k5.user at 11:59 AM on May 1, 2012


I had a fantasy once about building a Z80 using only 74LS00 NAND chips.
posted by Bruce H. at 1:24 PM on May 1, 2012 [1 favorite]


You won't believe how satisfying it is to build your own computer from scratch for an EE. I just did that cheating with the help of Xilinx's embedded, and writing the VHDL hardware interface for the keypad and display was awesome. Writing your first "hello world" program when you created the display driver is pretty sweet.
posted by garlic at 1:37 PM on May 1, 2012


1) This guy didn't build a computer from scratch. He basically implemented what you do (or did) in intro computer engineering courses, but cheated by using an Arduino in the design.

2) It is sad that an intro computer engineering course output gets so much internet attention in 2012.

/grumpy
posted by felix at 1:49 PM on May 1, 2012


felix: I don't see an Arduino in the design itself, just in the NVRAM programmer he built.

Foci for Analysis: There are several 8-bit DIY gaming consoles out there, but I'm not sure if you can buy them in tech stores - personally, I suspect the Raspberry Pi might be more likely to get there.
posted by GenericUser at 2:43 PM on May 1, 2012


(although I guess they're not entirely DIY as they're still relying on a microcontroller ;) )

also earlier: the $3 DIY console
posted by GenericUser at 2:51 PM on May 1, 2012


I've thought about getting some ancient "core" memory boards from a, hmm. flea marker? Build it into a glass coffee table.
posted by sammyo at 3:01 PM on May 1, 2012


1) This guy didn't build a computer from scratch. He basically implemented what you do (or did) in intro computer engineering courses, but cheated by using an Arduino in the design.

felix, I searched his site for "Arduino"; here's all results:

Which is why I decided to create a simple NVRAM (or EEPROM) programmer using the Arduino to send out addresses and data as well as control the write enable pin.

...if I choose to use my Arduino for a programmer.

To convert binary to BCD you can either design an incredibly complicated logic circuit to preform the operation, use a read-only memory (ROM) to output the correct values or use the method I chose of using an Arduino to do the conversion.

So, he's using one to program his NVRAMs, and another as his binary/BCD chip. That's it.

You're wrong, and he's cool.
posted by IAmBroom at 3:33 PM on May 1, 2012


I just want to say one word to you. Just one word. Are you listening?

Raspberry Pi.

If this does not tug at your piggy bank, the path of the true geek is forever closed to you.
posted by Twang at 12:59 AM on May 2, 2012


Twang: as if all of us haven't preordered one already! (mine arrives in june. aaa, can't wait)

something I thought about: has anyone made/planned a JAMMA adapter for the RPi? video would be the tricky part but damn, DIY arcade games would rock
posted by GenericUser at 2:56 AM on May 2, 2012


IAmBroom: so you searched for Arduino in his site, found where he admitted that he was using it to do binary to BCD conversion as part of his design, and somehow that made me wrong that he was using an Arduino as part of his design?

It's great that you think this is cool. The reason why I'm grumpy about it is that this is actually beyond commonplace. I myself have implemented binary to BCD and back using latches, async ladder logic, uv eproms, what have you, and I'm a software guy who only took up to 200-level computer engineering courses. Lawn, mine, off.
posted by felix at 4:47 PM on May 2, 2012


« Older "We had no idea we were creating an entirely new f...  |  Barnes and Noble is spinning o... Newer »


This thread has been archived and is closed to new comments