Developer Creates DIY 8-Bit CPU 187
MaizeMan writes "Not for the easily distracted: a Belmont software developer's hand-built CPU was featured in Wired recently. Starting with a $50 wire wrap board, Steve Chamberlin built his CPU with 1253 pieces of wire, each wire wrapped by hand at both ends. Chamberlin salvaged parts from '70s and '80s era computers, and the final result is an 8-bit processor with keyboard input, a USB connection, and VGA graphical output. More details are available on the developer's blog."
I can do 2^1 better (Score:5, Funny)
I own a two-bit computer. My dad gave it to me. I know it is two bits because before he gave it to me he would often remark "I hate this ******* two bit computer."
(Yes, it is also reproductive.)
That reminded me of a Microsoft joke... (Score:2, Funny)
But does it run Vista? (Score:2, Funny)
Sorry, I just had to ask.
Probably not. (Score:1)
Re: (Score:3, Informative)
not a single version of windows was designed to run on 8 bit cpus.
Re: (Score:1)
None, ran 8 bits cpus. As for the design itself, I am not so sure anymore.
Re:But does it run Vista? (Score:5, Informative)
Of course the ISA is probably nothing like an x86, so it still wouldn't run [MS|PC|DR|Free]-DOS anyway. Apparently it does have a C compiler, so perhaps you could port Bochs or Qemu to it and then run DOS on that. Emulated. On a TTL CPU running at 2Mhz (2Mhz slower than the original IBM PC). Maybe not then.
Re:But does it run Vista? (Score:5, Insightful)
Re:But does it run Vista? (Score:4, Funny)
Which is only logical, given that no version of Windows was developed to run on 32 bit or 64 bit CPUs either. Which versions of Windows were designed to crash on various CPUs is another matter ;-)
(Lighten up over-sensitive Windows Weeinie's with mod points. It is a joke)
Re:But does it run Vista? (Score:5, Insightful)
Why does this question keep coming up? Of course it does. It's turing-complete, so it's just a matter of writing the software. Not for the impatient users, obviously.
Re:But does it run Vista? (Score:4, Interesting)
Well, your response applies slightly more to Linux (one would just have to implement a Linux kernel on the 8-bit CPU, which isn't likely to happen to anytime soon) and doesn't really apply to Vista at all. MIcrosoft would have to implement Vista, and unless there is sufficient market demand for this 8-bit CPU, they'll never do it, since the incentive for them to write an 8-bit Vista is approximately zero.
While it may be possible to write a Linux kernel for an 8-bit processor, this, too, is not likely, at least not a complete Linux kernel. Linux was pretty much designed and written from the ground up on a 32-bit processor with built-in low-level support for multitasking.
So, IOW, while you are theoretically correct, from a practical standpoint implementing Vista or Linux or any other modern OS, with the exception of FreeDOS, is virtually impossible. Hence, the GP's joke retains its original humor.
Re: (Score:3, Insightful)
any Turing machine can emulate any other. an 8 bit CPU can do a 128 bit calculation, it just has to do it in small steps. you would probably need a lot of disk space.
for example you store on disk the input and output of every transistor in a core2duo. then you iterate through each transistor and set the output according to the input. it may take a billion clock cycles to emulate one core2duo clock cycle, but its possible.
Re: (Score:3, Funny)
Are we still talking about 8 bit machines?
Re: (Score:2)
Well, that and another lifetime or so hand-crafting 1GB+ of memory chips, yeah.
Re: (Score:2)
Turing-complete is not enough if you have a user interface.
Re: (Score:2)
Sure it is. Input and output is nothing more than reading and writing to the proper memory locations.
Re:But does it run Vista (Score:2)
I tried writing a virtualization in Z-80 assembler of a 32-bit system meeting Microsoft's specifications for Vista.
Unfortunately it couldn't actually run Vista because Microsoft underballed the requirements.
Re:But does it run Vista? (Score:4, Informative)
LBA-complete (Score:3, Informative)
He didn't say it's a Turing Machine, he said it's Turing-complete, which means that (in theory) it can ran any conceivable program, with the obvious limits of RAM/Disk.
The limits of memory make the proper term "LBA-complete" [wikipedia.org], where the required memory varies linearly with the size of the input, rather than "Turing-complete". But in practice, "Turing-complete" means LBA-complete.
Re: (Score:2)
The same input today could produce a very different output tomorrow.
Re: (Score:2)
But what if it's networked?
In computational complexity theory, a "program" is most often taken to mean a subroutine that doesn't perform input or output. If you have input or output, such as network packets, the program ends, and it starts again after receiving the next packet. Two programs communicating over a network link are coroutines, but I'm not aware of any generalizations of complexity theory to cover coroutines.
Re: (Score:2)
Doesn't communication complexity try to model this?
http://en.wikipedia.org/wiki/Communication_complexity [wikipedia.org]
Re: (Score:2)
neither term really applies to hardware with a fixed amount of memory.
LBAs have a fixed amount of memory, proportional to the size of the input. For a larger input, you use a larger LBA.
But does it run Minix 1? (Score:1)
After all, it has to be better than MS-DOS!
It must be early.... (Score:1, Offtopic)
Re: (Score:3, Interesting)
Re: (Score:2)
Correct! Six thousand cores (Score:5, Funny)
built his CPU with 1253 pieces of wire
Farnsworth: Let me show you around. That's my lab table, and this is my work stool, and over there is my intergalactic spaceship. And here is where I keep assorted lengths of wire.
Fry: Whoa! A real live space ship!
Farnsworth: I designed it myself. Let me show you some of the different lengths of wire I used.
That's how we used to make all hobby computers (Score:5, Insightful)
Yeah, baby...
Back before the days of the 4004, 8008, and 8080, when we built computers, we REALLY built computers.
None of this: take a pre-built-motherboard, add a pre-built-power-supply, add a pre-built graphics card...
oblig: get off my lawn
Re:That's how we used to make all hobby computers (Score:5, Interesting)
Then, as a private project, I built a half adder with washing machine relays but it never worked properly because of power supply problems (which was the 12v transformer from my train set).
As parent already said (but they're so PESKY and disrespectful): Hey you kids, GET OFF MY LAWN
Re:That's how we used to make all hobby computers (Score:4, Funny)
Did you try using the "permanent press" cycle?
Re: (Score:2)
Re:That's how we used to make all hobby computers (Score:4, Interesting)
The ROM in the computer on the moon lander used ferrite rope memory that was hand strung from bins of cores pre-programmed as '1's and '0's. The assemblers literally had a bin full of 1's and 0's.
Those where the days when assembly programming really meant just that.
http://en.wikipedia.org/wiki/Apollo_Guidance_Computer [wikipedia.org]
Re: (Score:2)
Re: (Score:2, Funny)
Ummmm... whoever modded me funny: I was being serious. (except for the "get off my lawn" part) :-)
I cringe whenever I hear a young whippersnapper say "I built my own computer over the weekend" because "building a computer" to me doesn't mean slapping together pre-built parts.
(yeah, yeah, and I'm sure someone will respond to my thread saying when they were young, they built their own transistors from the sand in their backyard and smelted their own copper wires and I should get off THEIR lawn.
Re: (Score:2)
Look at some of the early SGI workstations or PC's with graphics accelerator boards - every separate function (video RAM to analog RAMDAC, pixel processing, motherboard bus interface) was a separate ASIC with some other chips to handle communication [wikimedia.org].
Watchout Intel (Score:5, Funny)
It is about time that Intel has some competition.
Eek! Wire wrapping! (Score:4, Insightful)
All the board level products I designed in the early 90s had to be prototyped with wire wrapping. Even if you are careful, by the time you do hundreds of connections it is almost inevitable there is some flaw. You might miscount a row of pins and attach to the wrong pin. The process of layering multiple connection to a single pin might damage a wire at the bottom. Wires might break or make a shaky connection that comes or goes.
I would not ever want to go back to that, but it did two useful things: The plodding physical process of "I'm now connecting this to that." forced a slow, comprehensive walk through of your design which can reveal design mistakes. The other is honing debugging skills of intermittent problems: "Is this a design flaw or a wire making poor contact?".
Re: (Score:2)
Wire wrapping isn't that big a deal. I still have a wire wrap gun, although I haven't used it in years. You buy precut, wire in different standard lengths, and it comes with the right amount of insulation pre-stripped at each end. You have a wire list (A-15 to C-42, etc., and you just follow the wire list. It's usual to sort the wire list by length, so that you do the longest wires first. It's time-consuming, but not difficult. Far easier than ordinary hand-wiring.
Fully automatic wire wrap machines
Done before... in 16-bits (Score:5, Interesting)
Slashdot posted an article on Magic-1 when it was completed years ago as well.
Real dedication! (Score:1)
Comment removed (Score:5, Interesting)
Re:Fantastic! (Score:4, Insightful)
which leads to blatant disregard for anything, really sloppy ways of coding and development, zero ideology or best practice on how to truly harness and control resources efficiently.
I see lots of sloppy coding practices, but they have about nothing to do with hardware efficiency. (Think buginess and maintainability). Unless you're writing for specialized environments, the days of worrying about a few cycles of CPU, or a few kilobytes of memory are over (and good riddance).
The world has changed and the challenges have changed. It's great to design your own CPU, and I'm sure he learned an enormous amount. But to pretend that we should all be thinking like it's still 1979 is absurd.
Fine you drive an early car then (Score:2)
Re: (Score:2)
Plus the ease of use of modern vehicles
newsworthy? (Score:4, Informative)
Re: (Score:2)
Love that it is on wired (Score:3, Funny)
But Russians did it first! (Score:2)
Back in the '80s there was a rumor of a Russian version of the Apple II with the CPU implemented in wire-wrap, because they couldn't get actual 6502s in Russia.
Intel 4004 schematics (Score:2)
Just look at all the embroidery [4004.com] in a 4-bit CPU.
I love this stuff (Score:2)
Some time ago (nearly 10 years - wow!) I made a microcontroller-based homebrew MP3 player: http://codepuppies.com/~ben/sens/pic/mp3 [codepuppies.com] . My big mess of wires was a tiny fraction of the size of his, and it caused me enough headaches - tracking down signal noise, random glitches, etc... Hats off to this guy.
I'd also recommend this book: http://en.wikipedia.org/wiki/The_Soul_of_a_New_Machine [wikipedia.org] to anyone who finds the Wired article of interest. It doesn't get too technical, but it describes the trials and tribulatio
74181/74182 (Score:2)
I can't seem to find a parts list, but well, I wonder if he used a 74181 Arithmetic Logic Unit and 74182 carry lookahead generator. That would provide quite a few of the arithmetic and logical instructions that one might expect in 8-bit CPUs common in the 1980s in just three packages (the 74181 ALU is a 4-bit ALU, but it can be cascaded, and the 74182 can be used to provide carry lookahead for up to four 74181s). However, you'll also need an instruction decoder, and that, unless you use a programmable log
Re: (Score:2)
Yep, the 181 shows up in the layout diagram on his site [stevechamberlin.com]. I'm a little surprised, actually -- if you compromise enough to use GALs (programmable logic), it's kind of pointless to brag about being "TTL-based". If I build something out of a fistful of PICs, and hook them together with TTL-level signals, can I claim the same thing?
I built a "video card" for a TRS-80 as a hobby project about 25 years ago -- 50 or so chips, 8 or 10 solderless breadboards, and a baking sheet for support/ground-plane. 30 rows, 1
The LCD on the front probably has more CPU (Score:2)
Not to mention... (Score:2)
Not to mention that despite the back lighting, the LCD panel probably uses but 1/100th of the power consumed by all the discrete logic.
FLOPS? (Score:2)
Comment removed (Score:5, Funny)
Re:A lenient definition of "make" (Score:5, Interesting)
Uh, maybe not [virgilio.it]. :-)
Re: (Score:3, Funny)
I'm gonna get off his lawn for sure!
Re: (Score:2)
Fantastic video, thanks for the link.
Re: (Score:2)
Wow! thank you for that link. made my month.
Re: (Score:2)
Slashdotted? (Score:2)
Can't see the video... 404 compliant.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2, Funny)
Damn right, the lazy fucker should have dug the iron ore up himself, then dug up the coal to fire his home-built kiln so that he could create his own iron. Of course he would have had to hand-build bellows to create steel, and maybe he should have home built EVERYTHING ELSE in the production pipeline, including hunting his own food every night from his homebuilt house. Luckily he invented his own language to communicate with other people so that he could coordinate things!
Re: (Score:2)
Re: (Score:2)
Tho you were being funny, one really could build this out of discrete semi conductor diodes quite easily.
People have been known to make their own tubes too ya know -> http://www.eetimes.eu/consumer/205801104 [eetimes.eu]
Re:A lenient definition of "make" (Score:4, Insightful)
Re: (Score:2)
Re: (Score:1)
The "connect them to form a CPU" is sort of the trick there though isn't it? I could buy a bunch of TTL chips and "connect them up" but it sure as hell wouldn't do anything other than let the smoke out. It certainly wouldn't be a CPU.
My chances of waking up on a deserted i
Re: (Score:2)
Re: (Score:2)
Um, no. I'm saying doing it with wirewrap TTL is more interesting than doing it by programming an FPGA. It's more interesting and requires more skill. If I was suitably motivated I could learn enough Verilog to build a simple 8bit CPU on an FPGA, but it would take me significantly longer to learn the EE required to do it with TTL.
It really isn't much harder. I guarantee that you could learn to wire up some TTL chips just as easily as you could learn Verilog. Is "assign x = y" really so much easier than connecting pin X to pin Y with a wire?
The tricky parts in digital electronics are always the various hazards (race conditions, glitching, metastability, etc...), and they will happen regardless of whether you're using wired discrete components or an FPGA. That's where the real electrical engineering work is.
In fact, I'd say that st
Re: (Score:2)
On the other hand good design practice for anything but ultra high speed devices makes glitching moot. You use flops, not latches, and all outputs are registered, so the outside world always sees clean signals. And that is a terribe example, since it is quite likely for no glitching to occur with that, depending on the design of the lookup table used in the fpga.
Oh and these days sythesis tools have gotten pretty darn good. "assign a=b*c;" is certainly a hell of a lot easier than building a combinational mu
Re: (Score:2)
Re: (Score:2)
Good luck with that.
Nothing about your garage is similar to a clean room and god forbid you actually meet the requirements for a class 10 clean room, you wont have enough room left for any equipment!
Re: (Score:2)
Re: (Score:2)
Wow, 8cm resolution. I think I could do better with a chisel and hammer!
(I know what you meant, but i couldn't help myself)
Re:A lenient definition of "make" (Score:4, Insightful)
Re: (Score:2)
just use a not dirty room (Score:2)
Re: (Score:2)
Er... WTF? (Score:5, Insightful)
To have fun is not a good enough reason to do something?
I guess you would be happier if he was just another fat slob who "has fun" by watching American Idol?
This is quite possibly the most asinine comment I have seen on Slashdot in a long time.
Re: (Score:1)
What? All he said was "I don't know". It's an honest answer. You are the one who's being an ass about it.
Re: (Score:2)
Children! Do I need to pull this internet around and take us all home?!
.. so some slashdot halfwit could criticises him (Score:2, Insightful)
slashdot is really sucking hard these days.
the guy makes an off-the-cuff comment about his motivation, and some braindead moron on slashdot criticizes him for it.
HE MADE A FUCKING COMPUTER, YOU MOUTH-BREATHING DIPSHIT.
of course he had motivation! how could you sum up the motivation in just a couple of words?
what worthless piece of shit you are
Re: (Score:2)
She'd let you? And that's a virtue? Damn, man.
When you are time poor and share financial responsibility for a family, and you're the bread-winner, decisions like that are joint decisions. I know that's a difficult concept for some to grasp and you think that just means I'm under the thumb, but you know what, I couldn't do what she does for our child. We only have one child he's still an infant and he doesn't sleep much. She's had it very rough, gets very little sleep etc. So, yes, she's entitled to have som
Re: (Score:2)
Re: (Score:2)
ROTFLMAO
What makes you think I was replying to you instead of the post from "Anonymous Coward" to which I clearly did reply? Do you not know how to follow a thread? I was replying to "Anonymous Coward" and pretending like I thought that was 1 single person, making a joke that obviously went over your head. What is perhaps more baffling is that you are the one who told someone to fuck off, so you would think that would have been a pretty big hint that I was not referring to you. In t
Re: (Score:2)
If you were replying to a/c, I apologise. I've been getting some shit lately here.
Have a good one.
Re: (Score:2)
As you are no doubt aware, such mature behavior is not nearly as common as one would expect from a site ostensibly frequented by professionals.
Peace and Blessed Be [wikipedia.org]
Re: (Score:2)
Because you're being chased by goats?
Re: (Score:2)
errmmm. pics or ... ;)
a 68020 !! That's a pretty impressive feat. What kind of chips did you build it from ? Regular series ttl or cmos or something at a higher level of integration ? Did it work ?
Given the fact that the chip was originally named (the 68000) for it's transistor count even if you were using fairly large 'blocks' it would likely have spanned many boards.
What clock speed did you get it to run on ?
Re: (Score:2)
Re: (Score:2)
One can be critical, just not a luddite and wet blanket.
Where does it say that? (Score:4, Informative)
The article mentions "Z-80" among the parts used. The Z-80 itself is an 8-Bit CPU.
The blog says "Build the CPU from scratch, primarily using basic 7400-series logic. No 6502, Z-80, etc."
That's the only reference to the Z80 I can find in either the article or the blog.
Re: (Score:2)
Re: (Score:2)
Making me feel old. :)
6502 vs 8080/z80 was THE big home computer war back in the late '70s. Apple vs Radio Shack. "crapple" vs "trash 80".
Re: (Score:2)
6809 FTW! 8 bit multiply, bitches!!
Re: (Score:2)
Oh yes, I thought the 6809 was a very tasty little chip. I didn't have an opportunity to do anything with it, alas.
On the other hand, have you ever worked on the 1802?