Z80 · 2 January 2019 0

LM80C, a Zilog Z80-based 8-bit color computer

I grew up during the golden age of 8-bits computers, I lived the ’80s by typing “listings” and loading games from cassette tapes bought by newspapers kiosks, sharing software with my friends and writing code with paper and pen. I had a Commodore 16, the little brother of the monster computer that was the C64: by the way, I enjoyed it and it was good enough to let me do a lot of experience with BASIC and assembly.

Then I joined the 16-bits platforms (PC XT & Amiga) and, later, the PCs of the ’90s and 2Ks. But the 8-bits are like a mark, they live inside you. So, first I tried to find again those sensations with Arduino and the microcontrollers, and lately the big step has arrived! The step that every nerd, sooner or later, will try to make: build his/her own 8-bits computer! So I started buying components, downloading datasheets of more than 30 years old chips and assemble this thing, trying to see how far I was able to go. I reached this point:

LM80C - proto

LM80C – proto

This thing has reached highest peaks, so I decided to stop for a while and try to make some order and to share with you the path I’m doing: first, because this will serve to myself as a diary, to organize and store every information I have collected, and secondly, to let other people find interesting stuff just in case someone will want to replicate it.

Technical features

My computer will be called LM80C: “LM” because they are my initials, “80” because I’m using a Zilog Z80 CPU, and “C” because it should (if everything will work as expected) visualize some sort of color graphics. Below are the main components (at the moment I’m writing):

  • CPU: Zilog Z80B
  • CPU clock : 4 MHz
  • Memory:
    • RAM: 32 KB of SRAM
    • ROM: 32 KB of EEPROM
  • Graphics:
    • Texas Instruments TMS9929A graphics processor
    • VRAM: 16 KB of SRAM
    • resolution: 256×192 pixels
    • colors: 16
    • sprites: 32 (monochrome)
    • video out: PAL RGB
  • Audio: Yamaha YM2149F with 3 voices
  • I/O: MOS 6522 (VIA)
    • Z80 SIO:
      • serial periphery with 2x UART ports
    • Z80 PIO:
      • parallel periphery with 2×8-bits ports
    • Z80 CTC:
      • programmable timer/counter

I had to face several issues: I will write about them in future posts. At the moment I’m still reorganizing the informations and soon I will add new articles to let my readers follow my progresses during the building of my computer.