
FAP80, a retro computer without the retro baggage - signa11
https://github.com/dekuNukem/fap80
======
lisper
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.

~~~
DanBC
I suspect the vast majority of people find programming a computer with toggle
switches fun for only the first 8 instructions.

[https://www.youtube.com/watch?v=0GmY_UrbXnA](https://www.youtube.com/watch?v=0GmY_UrbXnA)

Hex pads and push buttons isn't much better.

[https://youtu.be/e8u_lY7RnTI?t=4m03s](https://youtu.be/e8u_lY7RnTI?t=4m03s)

These projects are very cool, but I think too much futzing for most people.

~~~
rvense
> These projects are very cool, but I think too much futzing for most people.

Why learn an instrument when you can just torrent some music

~~~
rtpg
depends on what you want to do.

Do you want to make games? Using something like the PICO-8 will still mean
you're gonna futz around. But you'll be futzing around on game design-y stuff,
rather than on "how do I get pixels to the screen" futzing.

If you want to make game engines, then the pixels to the screen is the fun
part.

I futzed around so much as a kid, but not because I wanted to. It was more
because I didn't know any better, and was just trying to get to what I
"really" wanted to futz with.

~~~
DanBC
Yes. I don't think I was clear enough with my first comment.

Futzing is great, and I celebrate people who futz on this kind of level. The
people who code golf a bubble sort to be one less instruction; the people who
can cram a plasma and text scroller demo into 89 bytes; the people who really
understand everything about a system from top to bottom, inside out and upside
down.

As a society we're not very good at protecting those people from harm (in the
form of bullying from other students) or providing them with work that makes
the most of their rare talent.

------
chadcmulligan
Thought the retro people might like this - the first computer I built -
[https://en.wikipedia.org/wiki/Dick_Smith_Super-80_Computer](https://en.wikipedia.org/wiki/Dick_Smith_Super-80_Computer).

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...](https://www.amazon.com/Programming-Z80-Rodnay-
Zaks/dp/0895880695/ref=pd_sim_14_1?_encoding=UTF8&pd_rd_i=0895880695&pd_rd_r=JGJVMVFNRKPHMKR3R4Y8&pd_rd_w=EdHN0&pd_rd_wg=3HMjb&psc=1&refRID=JGJVMVFNRKPHMKR3R4Y8)
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 :-)

~~~
endgame
The fall of Dick Smith Electronics makes me rather sad.

~~~
chadcmulligan
yes, it had stopped being an electronics place a long time ago though. Jaycar
is still around

------
jdcarter
The blog posts have a ton more detail and make for fascinating reading (or
browsing the pictures):

[https://dekunukem.wordpress.com/](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.

~~~
throwawayish
> 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 :)

~~~
mkesper
The 1571 had one 6502 inside, at 2MHz (double speed of the C64 Cpu)
[https://en.m.wikipedia.org/wiki/Commodore_1571](https://en.m.wikipedia.org/wiki/Commodore_1571)

~~~
david-given
The 8250 (the equivalent disk drive for the PET) had _two_ 6502s inside!

In today's language, one was the application processor running DOS and the
other was a DSP that did the low level hardware monkeying; they were connected
up to a shared data bus. Because the 6502 only does bus accesses on one phase
of the clock, by inverting the clock for one processor, it was safe to connect
them both up to the bus simultaneously with no loss of speed...

~~~
throwawayish
Ah right, I was thinking about the 8250 indeed. It made _click_ when you
mentioned their curious "multi-processor" arrangement.

------
XtalJ
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

~~~
Florin_Andrei
Is your room gonna smell like soldering rosin while you're making the device?
Cause there's no "real retro" without that smell of rosin. :)

~~~
stan_rogers
Oh, come now! Surely an impenetrable tangle of fragile little wires wrapped
around a forest of little square pegs is retro enough?

~~~
XtalJ
I first built my computer using low quality breadboards and a lot of wires,
which I tried to keep as tidy as possible, without success ;-) I designed a
PCB in KiCAD and got 5 of them delivered a week ago. Sooo much better :-)

I wonder how the FAP80 was prototyped?

------
sehugg
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.

More details:
[https://github.com/mamedev/mame/blob/master/src/mame/drivers...](https://github.com/mamedev/mame/blob/master/src/mame/drivers/multfish.cpp)

~~~
hydrogen18
This chip makes me laugh:
[http://www.keil.com/dd/docs/datashts/nuvoton/w78e054d_w78e05...](http://www.keil.com/dd/docs/datashts/nuvoton/w78e054d_w78e052d_w78e051d.pdf)

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](https://youtu.be/i3B_KKyntQE?t=15m52s)

~~~
Sanddancer
The 8051 family also has a huge amount of support tooling for it -- compilers,
validation tooling, etc. For a lot of jobs where the 8051 lives, a new
architecture would just mean an expensive set of validation tests for no real
benefit.

~~~
hydrogen18
Wow, you're right. I figured an 8051 was popular, but its derivatives make up
>50% of the embedded market it seems. I am guessing most clones offer more
than 128 bytes of memory.

------
red-indian
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.

------
ENTP
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.

------
noonespecial
_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.

~~~
XtalJ
Maybe the Z80 should be retro but not the rest? :-) A small surface mounted
Z80 would modernize the FAP80 a bit more.

------
amyjess
Cool... the idea reminds me of TempleOS, which was meant to evoke the spirit
of the C64 but run on and take advantage of modern hardware.

------
hvs
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.

[http://rc2014.co.uk/](http://rc2014.co.uk/)

------
jonathanstrange
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. :(

------
gravypod
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).

~~~
rzzzt
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.

~~~
shakna
> Another possibility would be to use an obscene amount of SRAM (by retro
> standards) and a battery to keep it powered at all times.

Like the DUO Mega [0]? 16 Atmega328P's in concert, with 32kb of SRAM.

[0]
[http://www.ostracodfiles.com/mega/menu.html](http://www.ostracodfiles.com/mega/menu.html)

------
CodeWriter23
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.

------
arcticbull
I love it when people make stuff like this.

------
elpantalla
Super cool. I'm impressed.

------
hoodoof
Is there a youtube video of it in action?

------
tn13
FAP? Really ?

------
jasonkostempski
I assume awkward name is intentional.

~~~
thowfaraway
It is juvenile, and hurts the project. Too bad because it is pretty cool.

~~~
zwerdlds
If you go looking for issues, you'll find them, alright...

From the repo: "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."

~~~
ferbivore
Go looking? It's literally the project's name. Or do you think people see
"FAP" and go "oh, jeez, that's such an unfamiliar word, I guess it's an
acronym? wonder what it stands for"?

~~~
zwerdlds
It's in the repo. There is no guessing necessary.

