Build an 8-bit retro computer powered by a Z80 ! [Zeal 8-bit]

preview_player
Показать описание

Hello, world!

Let me present to you the Zeal 8-bit computer, totally built from scratch. You will get a glance at the making process, the memory mapping, the choices of components, and even some problems I encountered. Well, everything that makes it a computer after all!

The key features already working:
- Native OS fully written in Z80 assembly
- ROM and RAM support with banking (both internal and external)
- Support external extension card (for adding RAM, ROM, Flash, EEPROM, and so on...)
- PS/2 keyboard support (targeting a full 104-key keyboards support)
- 16 GPIO pins (some used by the system)
- Software I2C
- Software UART
- VGA graphics support (powered by an FPGA)
- *Text mode 800x600 resolution: 100x50 characters
- Text mode 640x480 resolution: 80x40 characters
- Text mode characters support up to 16 colors for foreground and background
- Graphic mode 640x480 resolution: 16x16 pixels tiles, 40x30 sprites on screen. Up to 128 different tiles at once. Supports 2 layers, with transparency for the layer on top.
- ** Sound support (powered by the FPGA)
- 2 voices tested at the moment
- 3 possible waveform: square waves, triangles waves, sawtooth
- Frequencies between 20Hz and more than 20KHz

Upcoming features:
- Embed 32KB I2C EEPROM on the board (24LC256 is the best candidate currently)
- Embed the FPGA on the board
- Support for MicroSD (powered by the FPGA)
- Improve sound: add more voices, add noise waveform
- Improve software: add a Z80 assembler, add a BASIC (or similar language) interpreter, add some games, a user API for system libs
- Fix some HW & SW bugs, of course

It is still under heavy development as you can see, currently I am also working on an emulator that I plan to publish, when stable, on the future website dedicated to the project.
Let me know if you are interested in using it, feel free to give me your feedbacks on the project itself.

Credits:
Images:

Musics:
Ben Sound - Creative Minds
Top Flow Production - Corporate & Upbeat Ambient Background Music
Рекомендации по теме
Комментарии
Автор

Wow! This video has reached more than 25, 000 views, thanks to all of you!

Zealbit
Автор

I really enjoyed this! You made a very cool simple computer!

DSage
Автор

Just stumbled over your channel & I’m just blown away! This is the first homebrew z80 project with graphics & sound.

ChrisPatti
Автор

This is a real Z80 8-bit computer. I hope one day I get one in hand and learn assembly language by using it!

sanhua
Автор

msx were made with Z80.Several Texas intruments calculators had one. I have a Ti 86 programmable in assembly, with z80

blackimp
Автор

I really enjoyed your video, some minor quality issues but those will get ironed out as you get more experience making the videos. In terms of the technology I find it very interesting and I am excited to see what you can do from here, its always been a dream of mine to make a small console of my own. Keep up the good work!

keithw
Автор

You are real master, DIY computer is a miracle

New subscribers from Indonesia.

prayogi
Автор

I'll watch the video at home... This video seems like something interesting

boyekaperrol
Автор

I enjoyed watching this video. The first Z-80 based computer my family had was the Osborne Executive.

ggpestano
Автор

An awesome product, especially for those of us who started with 8-bit PCs. I had an Apple ][+ with a Z-80 coprocessor running CP/M. nifty little op/sys.

johngeverett
Автор

Excellent.. The mix of the older, but still available components, plus the FPGA is fascinating

pipsqueak
Автор

I like your video RAM scheme. Makes super easy for games and graphics!

antonnym
Автор

Nice machine, it's interesting when design choices are unique and not a copy-paste of existing designs. Dead Z80 chips are a real thing, the first two chips I got from Ebay were braindead. Problem was, I had never verified my NOP breadboard tester was working so I was stuck in a situation where it's hard to diagnose where the fault is. But it turns out it was faulty chips that with a static clock signal were putting out ~3V on nearly every pin when they should've been either high or low.

jimtekkit
Автор

Really impressed with what you are doing. Don't stop, keep going. The knowledge you are amassing is going to be useful 9n the future, I'm sure.

horseradishpower
Автор

Really nice. I implemented a TV signal generator in a CPLD with just 44 macrocells capacity. It should be perfectly feasible to do it in 74xx series ICs. It's basically just a 19-bit presettable counter, an 8-bit PISO register and a little bit of logic. It would probably come down to a board about the same complexity as your CPU board.

TheRealMalvaX
Автор

Great Video, great Idea, Fantastic realization! Respekt!👍👏

hanspeterbestandig
Автор

I already started an similar project based around a Z80. However my design interestingly does not contain a non volatile Memory like a ROM or FLASH. Just 64 KB of SRAM. The Program first is “injected” by a STM32 that is capable to capture the Z80 Buses by DRIVING THE Z80 BUREQ among of RD/WR... signals. Then the STM triggers Z80 RESET LINE, releases the Bus by dead setting BUSREQ and the Z80 executes the Code that has been preinitialized starting at Address 0... For Sound I attached an AY-3 8912 sound chip (as used in the Atari ST)... For Graphic you may an FT81x EVE chip (search for “Gameduino 2”) as an alternative... 😉

hanspeterbestandig
Автор

This video was one among many to inspire me to design my own computer (powered by a 6502 instead, and yes Ben Eater is part of the inspiration too)

KingRenYen
Автор

I selected Z80 systems over 8080 systems due to the block instructions and the extra registers. Then I picked between the Exidy Sorcererer, TRS-80 and the H-89. I selected the H-89. I found out from and AMD rep that the block instructions were as fancy as I had believed. Clearing, copying and filling memory was still 5 times faster than the equivellant 8080 code. The AMD ( licensed 2nd source for Z80s at the time) rep told me all they had to do to make the block instructions work is add 2 or 3 registers (this I already knew) and inhibit the incrementation of the program counter 'til the the byte count went to zero. The bad part about that is that for every byte moved the block instration would have to be reread from memory. Still better than reading a whole subroutine to do it, but nat quite as fancy as I had imagined. The fact that this engineer had told me this increase my respect for AMD! I may have got a few details wrong, as I am working from memories of a very long time ago.

ElAnciano
Автор

Very cool! Would love to test that machine! You left a comment on my channel but it disappeared. Thanks for your kind words!

RetroWK