This is cool, but there's an argument to be made that the baggage is the whole point of doing retro computing. You can emulate a Z80 on an STM32 and it will run faster than the real thing. Much faster. So why bother with a real Z80? Because there is something ineffably cool about the "real thing". It's kind of like vinyl records. Digital audio is vastly superior by any objective measure, and yet people still want vinyl. The don't want it despite the clicks and pops and the annoyance of having to clean it and futz with the needle and the turntable speed, they want it because of all of these things.
Using an FPGA makes it especially weird because a Z80 only has a few thousand transistors and would be pretty easy to just implement on the FPGA!
That said, I've used a microcontroller as a debug device for a retrocomputer and it made things a lot easier. But that's the way it was originally done -- using a bigger computer to build a smaller computer is "fair game".
This is not a 8-bit computer built for 8-bit retro experience. It's a workstation to develop, trace, and debug Z80 programs on hardware level, down to step by step execution.
Z80 based 16K ram, yes thats a K. 2MHz processor. Plugged it into a cassette player for storage. Loading programs was hit and miss. I later splurged and bought a Basic ROM, initially you had to program it in Hex. I used it for most of my uni days, running linear regressions for lab. It cost me $300 AUD then, all my school kid savings :-).
Edit: It initially had just upper case characters - these were bitmaps stored in a ROM. I later bought an add on board that added lower case characters and graphic characters (like the old PC-DOS characters) contained in another ROM. I think from memory you could also add a RAM chip and load your own programmable characters, though that could have been my imagination. I have vague recollections of trying to figure out ways to make it have graphics that you could move around using the RAM, so I could make my own space invaders game :-)
I have that same book on my shelf, survived 20+ years and more moves than I can count.
My first computer was the Sinclair Spectrum and I've always been pleased that the z80 assembly was close to Intel's syntax. The competitors at the time, such as the 6502, always looked so dense and hard to read.
It's an interesting take on retro; gives the user the feel of a retro computer without all the gnarly period-accurate hardware. Also amusing that the STM32 supporting CPU has far more power than the main Z80 CPU.
Nothing will replicate the same feeling I had when I wrote my first machine code program by poking into RAM, and discovered the world of million+ operations per second, rather than thousands from the land of BASIC. It was like a glimpse of blinding light through the narrowest of cracks.
> Also amusing that the STM32 supporting CPU has far more power than the main Z80 CPU.
I believe some Commodore drive already had two processors identical to the main processor of the computer -- effectively giving the drive more processing power than the actual computer :)
Really nice to see a Z80-project :) I'm actually finishing my own Z80 microcomputer this weekend. But mine will utilize a symphony of exotic 7400 series chips and hard-to-get Z80 peripheral chips. All ceramic ones. So if anyone wants to build their own, it will cost several hundreds of dollars :-/. But the idea with the project was to learn how computers where built in the early 80s, not to do a modern approach, like you :-)
Fun name, by the way. Mine will be named Calculon80 or Calculon64 :-D
Interesting. I was poking around the MAME database and found that the Z80 was used as recently as 2010 by a company called Igrosoft to make video slot machines, along with some modern PLDs and support chips. They also use a YM2149-compatible sound chip for that authentic bleepy sound.
Old 8-bit architectures like Z80, 6502, and 8051 are everywhere, because they're cheap (royalty-free, unlike e.g. ARM) and there's plenty of software and tools for them.
This is a nice project and I have no objection to it.
It's interesting that he includes an STM32, an FPGA, and other such devices, as support and peripheral emulation chips, in his effort to get his 6502 running as he would like.
Part of the education of my students here on the reservation we don't have a lot of resources. But we were able to score some nice FPGAs so they've designed and built from the gate level their own CPUs from scratch, then built compilers and interpreters on top of that. The youngest to do so was 9. It's been really convenient as well to be able to order inexpensive boards rather than having to deal with all the copper etching with chemicals as we did a few years ago.
When i was a kid, i had a Mattel Aquarius. Those early days were great. Whilst this project does rekindle some of that nostalgia, I'm not sure I'll be FAPping anytime soon.
So instead of trying to recreate the “good old days”, I made the decision to liberally use modern parts to simplify the design process...
Then uses a thru-hole Z80.
If that's not a perfect illustration of nostalgia, I don't know what is. Remembering the good parts without all of the fuss of the not so good. Very nice project. I'd probably buy that as a hobby kit.
I would also recommend looking at the RC2014 project. Kits are available for order on Tindie. The mailing list is very active and new developments happen regularly.
Awesome project. Kind of off-topic: I wish I could buy such a machine or something similar as fully assembled mini laptop device with a large character LCD display.
I've been looking for fully programmable, full keyboard devices with extremely long battery life (weeks not days) for years, and all I can find are old pocket calculators and vintage machines from the 80s. I've had high hopes for the PocketChip, but there you go: 5 hours battery life only. :(
I really would love someone to build something like this on one of those FRAM chips so there is no volitile memory on the system. I'd love to write an opterating system for such an enviroment (like those non-volatile time sharing systems from the 80s that made use of stateless microkernels and really pushed the limits of disk).
The peak transfer rate of NVMe SSDs is getting close to theoretical DDR1 SDRAM speeds; not sure how well random access works in comparison, and if there's an easy way of interfacing them, but it should be able to keep an alternate history-retro machine with a ~100 MHz system clock occupied.
Another possibility would be to use an obscene amount of SRAM (by retro standards) and a battery to keep it powered at all times.
I think your project is awesome. Wish I had something like this 30 years ago. Having the Z80 clock controlled by a microcontroller is pure genius. We used an in-circuit emulator, and always wished we could write code for the ICE.
> FAP stands for FPGA Assisted Processor, inspired by Steve Ciarcia's 1981 book Build Your Own Z80 Computer, in which he called his computer ZAP, short for Z80 Application Processor.
I read the readme and this is what it said. Did you read the readme to the end? Was it different for you?
>The author would be wise to change it if he wants to be taken more seriously.
Based on the discussion so far it doesn't seem there's a problem on that front. If anything, the connotation will probably help it gain popularity, and that's a good thing.
[+] [-] lisper|9 years ago|reply
[+] [-] DanBC|9 years ago|reply
https://www.youtube.com/watch?v=0GmY_UrbXnA
Hex pads and push buttons isn't much better.
https://youtu.be/e8u_lY7RnTI?t=4m03s
These projects are very cool, but I think too much futzing for most people.
[+] [-] wrs|9 years ago|reply
That said, I've used a microcontroller as a debug device for a retrocomputer and it made things a lot easier. But that's the way it was originally done -- using a bigger computer to build a smaller computer is "fair game".
[+] [-] nine_k|9 years ago|reply
The latter is incredibly cool.
[+] [-] kazinator|9 years ago|reply
[+] [-] chadcmulligan|9 years ago|reply
Z80 based 16K ram, yes thats a K. 2MHz processor. Plugged it into a cassette player for storage. Loading programs was hit and miss. I later splurged and bought a Basic ROM, initially you had to program it in Hex. I used it for most of my uni days, running linear regressions for lab. It cost me $300 AUD then, all my school kid savings :-).
This was the book I learned assembler on https://www.amazon.com/Programming-Z80-Rodnay-Zaks/dp/089588... a classic.
Edit: It initially had just upper case characters - these were bitmaps stored in a ROM. I later bought an add on board that added lower case characters and graphic characters (like the old PC-DOS characters) contained in another ROM. I think from memory you could also add a RAM chip and load your own programmable characters, though that could have been my imagination. I have vague recollections of trying to figure out ways to make it have graphics that you could move around using the RAM, so I could make my own space invaders game :-)
[+] [-] stevekemp|9 years ago|reply
My first computer was the Sinclair Spectrum and I've always been pleased that the z80 assembly was close to Intel's syntax. The competitors at the time, such as the 6502, always looked so dense and hard to read.
[+] [-] endgame|9 years ago|reply
[+] [-] ganley|9 years ago|reply
[+] [-] jdcarter|9 years ago|reply
https://dekunukem.wordpress.com/
It's an interesting take on retro; gives the user the feel of a retro computer without all the gnarly period-accurate hardware. Also amusing that the STM32 supporting CPU has far more power than the main Z80 CPU.
[+] [-] barrkel|9 years ago|reply
[+] [-] throwawayish|9 years ago|reply
I believe some Commodore drive already had two processors identical to the main processor of the computer -- effectively giving the drive more processing power than the actual computer :)
[+] [-] XtalJ|9 years ago|reply
Fun name, by the way. Mine will be named Calculon80 or Calculon64 :-D
[+] [-] Florin_Andrei|9 years ago|reply
[+] [-] hvs|9 years ago|reply
[+] [-] HeyLaughingBoy|9 years ago|reply
[+] [-] sehugg|9 years ago|reply
More details: https://github.com/mamedev/mame/blob/master/src/mame/drivers...
[+] [-] hydrogen18|9 years ago|reply
It's a clone of an intel chip from the 80s. It's still used to make new stuff. Here's a video of it
https://youtu.be/i3B_KKyntQE?t=15m52s
[+] [-] userbinator|9 years ago|reply
Old 8-bit architectures like Z80, 6502, and 8051 are everywhere, because they're cheap (royalty-free, unlike e.g. ARM) and there's plenty of software and tools for them.
[+] [-] red-indian|9 years ago|reply
It's interesting that he includes an STM32, an FPGA, and other such devices, as support and peripheral emulation chips, in his effort to get his 6502 running as he would like.
Part of the education of my students here on the reservation we don't have a lot of resources. But we were able to score some nice FPGAs so they've designed and built from the gate level their own CPUs from scratch, then built compilers and interpreters on top of that. The youngest to do so was 9. It's been really convenient as well to be able to order inexpensive boards rather than having to deal with all the copper etching with chemicals as we did a few years ago.
[+] [-] ENTP|9 years ago|reply
[+] [-] noonespecial|9 years ago|reply
Then uses a thru-hole Z80.
If that's not a perfect illustration of nostalgia, I don't know what is. Remembering the good parts without all of the fuss of the not so good. Very nice project. I'd probably buy that as a hobby kit.
[+] [-] XtalJ|9 years ago|reply
[+] [-] amyjess|9 years ago|reply
[+] [-] hvs|9 years ago|reply
http://rc2014.co.uk/
[+] [-] jonathanstrange|9 years ago|reply
I've been looking for fully programmable, full keyboard devices with extremely long battery life (weeks not days) for years, and all I can find are old pocket calculators and vintage machines from the 80s. I've had high hopes for the PocketChip, but there you go: 5 hours battery life only. :(
[+] [-] gravypod|9 years ago|reply
[+] [-] rzzzt|9 years ago|reply
Another possibility would be to use an obscene amount of SRAM (by retro standards) and a battery to keep it powered at all times.
[+] [-] mnw21cam|9 years ago|reply
[+] [-] CodeWriter23|9 years ago|reply
[+] [-] arcticbull|9 years ago|reply
[+] [-] elpantalla|9 years ago|reply
[+] [-] hoodoof|9 years ago|reply
[+] [-] tn13|9 years ago|reply
[+] [-] jasonkostempski|9 years ago|reply
[+] [-] rounce|9 years ago|reply
I read the readme and this is what it said. Did you read the readme to the end? Was it different for you?
[+] [-] thowfaraway|9 years ago|reply
[+] [-] alkonaut|9 years ago|reply
[+] [-] notpc|9 years ago|reply
[deleted]
[+] [-] rl3|9 years ago|reply
Based on the discussion so far it doesn't seem there's a problem on that front. If anything, the connotation will probably help it gain popularity, and that's a good thing.