How can I build a simple computer around a retro cpu like the Z80? Answered
I am interested in building a small computer and had previously opted to build a very minimal computer out of discrete components (think 4- bit). Due to cost constraints and my skill level in electronics I don't think I can do this at the current time. So, I have opted to try building a small computer with a pre-built retro cpu.
First, my two goals:
<>I do not want a computer with extra capabilities like serial output or the ability to drive a display. I want a "bare bone" computer. This entails a dip switch input and led indicating output. I would also like the option to switch to some sort of latching system for the inputs and outputs so my computer can control and be controlled by peripherals as my skill level increases.
<>Ideally I would like to have as few chips as possible.
I was initially planning to use a Z80 as the cpu because wikipedia says it had the need for less supporting ic's than its predecessors. Also, there is a lot of documentation out there on the cpu. You may be asking why I am asking for advice then but the truth is because the Z80 computer building tutorials I have found all involve a screen and are more complex than I can manage. If there is another processor that is easier to work with, please tell me!
As best I can figure, for my basic computer I would need: the processor, a ram chip, a rom chip, 8 latches for the input and for the output (for an 8 bit processor), an 8 switch dip switch, a clock, and an 8 led display. Are there any other chips I am missing (buffers or the like)?
Also, how can a program be written to the cpu? My thoughts on this were that the very first address of the rom section would have instructions to read say bit 1 and bit 2 of the input. It would keep doing this if both were low.
When bit 1 goes high it triggers the cpu to jump to a section of rom which performs a loop where it reads the input->stores it in a certain memory address allocated to storing programs-> increments this memory address by 1->reads and stores the next input.
If it read a bit 2 initially it would jump to the memory address where program starts.
All in all this seems like a very bad way to program, what is the best way to program? I am fairly certain that some startup program will need to be written to the first address of memory in the rom. Thanks for your help.