
Ask HN: I'd like to learn how to build a computer - girvo
Hi all. First ever Ask HN :)<p>I've been researching hobby and retro computers from the 70's and 80's, and want to expand both my rudimentary electronic skills as well as my knowledge of computers at their very core.<p>What I'd like to do is build a computer around the Z80 processor (or the 68k, unsure yet). I mean, from scratch. But I'm unsure where to start!<p>There are some books on Amazon that cover this hobby, do you recommend any in particular?<p>The plan is to build my own homebrew computer, just like you had to in the 70's, and then build a rudimentary operating system for it (I have bult toy OSes for x86 already).<p>Where do I get started?
======
X4
imho: Stop wasting your time understanding PCs. If you're still curious just
follow the link trails: <http://en.wikipedia.org/wiki/Personal_computer>

You'll land here: <http://en.wikipedia.org/wiki/Von_Neumann_architecture> or
here <http://en.wikipedia.org/wiki/Harvard_architecture>

1) Create your own computable language or understand binary

2) Think of ways to store/load and process the data in that language

2.1) Think of ways to add/remove data from the storage

3) Create different concepts that embody that idea

4) Now you can start building it, or 3D-Printing your idea

If you're a developer, you can even write a simulation before building it
physically. There are many tools for this, two I know are:
<http://www.monolithic3d.com/simulators.html> and
<http://ozark.hendrix.edu/~burch/logisim/index.html>

~~~
girvo
Hehe followed that train of thought through to #3 already :) cheers for the
links, I'll check the simulation stuff out :)

~~~
X4
Glad you did that already, shows class. Like to share your findings? Did you
discover something new?

------
hemtros
The best book for this is "Elements of Computing System" by Noam Nisan and
Shimon Schocken. It starts from basic gates and then higher to build more
complex parts. The book website provides all the necessary emulators and
programming tools that help you to build a emulated computer and then build OS
and application softwares on top of it. I have not really gone through the
whole book and practiced what it wants to teach us because of my busy academic
schedules but hope to complete it someday soon.

------
lifeisstillgood
Google "NAND2tetris" or NAND to Tetris A professor from tel aviv university
has done just this - using a virtual hardware emulator there are twelve
courses (Approx one full term of study) starting with NAND gates and building
nor gates etc, progressing to arithmetic units, CPUs, compilers and eventually
writing a game based on a oo language. It's exciting for me (there is a book
and I am still early days) but really it's where I would recommend starting

There are a couple of ted talks too

~~~
partomniscient
The google talk video is like a more detailed version of the TED talks.
[https://www.youtube.com/watch?v=IlPj5Rg1y2w&feature=gv](https://www.youtube.com/watch?v=IlPj5Rg1y2w&feature=gv)

------
EliRivers
Petzold's "Code" starts at pretty much nothing and ends up with a programmable
computer made using transistors. It's far more primitive than what you want to
end up with (that is, you intend to start with an OTS microprocessor and build
around that) but it's certainly useful knowledge.

------
JoeAltmaier
Pretty fun, but maybe not as educational as it might be. No modern
microprocessor looks or functions much like the Z80. You could build a
'telephone' with a carbon mike and diaphram speaker and it would tell you as
much about the cellular telephone system.

~~~
girvo
Ahhhh, I meant educational in the embedded device sort of realm... Although
ill be honest, it's more for fun than anything else :)

~~~
JoeAltmaier
Oh! Thats an entirely different matter. The Z80 is very cool, many different
versions to choose from. It benefits from a very regular machine code (simple
register fields, 2- or 5-bit opcode field), you can memorize it in half an
hour.

And its still used embedded. My son wrote a simulator for a Z80 version that's
flying on Juno (Jupiter space mission). It was coupled with an FFT engine for
processing ice-penetrating radar signals. Lots of fun. SpaceX was interested
in him out of college, but that was mostly an IT position.

Anyway of all the embedded systems I've used, I am fondest of the Z80
architecture. Good choice!

------
ColinWright
I built my own Z80 based micro to power a micro-mouse. Shoot me an email
telling me what you already know, and I'll tell you what you need to read up
and and get started with.

~~~
girvo
Expect an email tomorrow (Australian time) :)

------
bencollier49
I'm doing the same thing at the moment! Good luck!

I put some links up on my site here:

<http://www.bencollier.info/links>

------
orangethirty
You should head over to hackaday.com . They have posts about people doing this
type of thing.

