Why mod.. when you can make?

User Tools

Site Tools


zik80

The ZikZak Console/Computer

The Zik80

The ZikZak is a retro-styled computer and game console project. The project is a moving target that will ultimately end up in a very small run of pcbs that can be assembled as a kit. The latest incarnation is nicknamed the 'zik80' due to its intended brain being the venerable Zilog Z80 processor (popularized in 1980's home computers, game console and business systems.)

As of 2014, the Zik80 is the main project. I've been through a half dozen variations over the year with varying degrees of complexity but in the name of keeping to the guiding principles below have settled on some less expensive parts, that are fun and hackable and flexible. See the Guiding Principles below for the self-imposed handicaps.

Zik80 Basic specification:

CPU: eZ80 (reasonably modern descendant of the beloved Z80 cpu from the 1980s)
GPU: STM32 microcontroller (F2 or F4 are fine) - a general purpose mcu that we abuse into a graphics generator
RAM: 128KB or 256KB or 512KB (easy to add more to the design, but settled on a workable amount for a retro-styled machine)
ROM: Uses cartridges! Each cartridge can be up to several MB in size .. 8bit CPUs of the 80s could only dream..
Ins and Outs: VGA output (full colour), PS/2 keyboard, Atari-style joysticks, classic era sound chip (AY-3-8910, YM2149, it goes by many names); multiple serial ports

Expansion options are plentiful .. some GPIO headers are exposed; i2c bus exposed; serial; the cart slot with full bus and 3.3V and 5V power feeds; USB pads exposed; and more! Designed for hackability! Reflash the eZ80, the STM32, or even the cartridge on the fly to change how the CPU and GPU work, or program your own cartridges!

For more information read on!

Guiding principles

Schematics, Prototypes, Experiments Along the Way
Cartridge Details
Memory Map, BIOS, Programming

TBD

Photos, Screenshots, Media
Goal Specifications (WIP)

These are the ever changing specifications; No doubt wildly out of date.

Feature Spec Proven Comment
DIY Full Do It Yourself Kit Yes! We want it moddable; yes thats a guiding principle, but its worth restating! Thats why we're here!
Display VGA (Resolutions; at least 256×240, 320×240 and 320×480, and likely 640×480 and various text modes) - we're writing our own video code, so make your own resolutions.. not too hard. Yes! STM32 pure software VGA 320×240 works sharp!
GPU STM32F4 Yes! General purpose microcontroller being used as a software GPU, because we like to do things the hard way
CPU Zilog eZ80 Yes! Specifically: EZ80F93AZ020SG
RAM 128KB main RAM (easily changed in design); theres also 4KB SRAM built into the CPU, but thats a little cheating; maybe use it for stack, nice and fast. Yes! The eZ80 can actually manage up to 16MB of RAM, but current target is for kit to default to 128KB; fairly trivial to solder in larger pieces if you need .. headers should be exposed
RAM 512KB Yes! r3 and later pcb can support the higher RAM sizes; added up to 512KB in case I want to run an ancient Linux, or various other operating systems..
CPU Speed 20MHz (or less) Yes! Driven by a crystal .. use any speed you like up to 20MHz; it is also possible to drive the clock from the GPU (say), to make the speed variable; in practice, thats sort of goofy and confusing, so not in the earliest revision.. but maybe do later. For fun.
CPU Peripherals I²C, UART/USART serial, GPIOYes! These are in the breakout headers, if you like
CPU Flash 64KB Yes! This eZ80 has built in flash, which can be used for a basic firmware/BIOS standard, and directly programmed to make development easier than cartridge program-and-swap cycle. We're mostly using the cartridge ROM as Crom intended, but certainly a basic BIOS or BASIC or something will be in the flash … even if its only a “no cartridge installed” message.
CPU Programmable Directly, or via GPU Yes! Can use a Zilog programmer device for CPU … or just update a ROM cartridge from the GPU; or from the CPU; the basic BIOS/bootloader should be able to take a plain serial connection and update cartridges or its own code .. no special hardware needed. Unless you want to get a Zilog Smart Cable (Ethernet or Serial or USB), or a ST Micro programmer, etc .. all good. Very awesome. And optional.
Cartridge Programmable Depends on the cart Yes! The reference cart I'm designing uses a fairly expensive writable eeprom; could use a Zikburner, or update it from the CPU or GPU; the cartridge slot supports both 5V and 3.3V, so you have quite a range in parts you could use as cartridge ROM or EEPROMs; heck, stick an SD card slot in there.
Sprites Should be a sprite-list generated in CPU, with GPU rendering the 'scene graph' each frame Yes! several hundred full colour sprites rendered per frame; the GPU can read the cartridge for sprite data, or the CPU can prepare a framebuffer, or the CPU could send a list over serial or via the RAM bus; or i2c; or …. you get the idea; we're writing the GPU firmware, go nuts.
Keyboard PS/2 standard keyboard Yes!
GPU Serial USB-Serial Yes! Should be available at least for logging to a PC, but likely two way serial over the USB as a 'console'; or as a way to reflash components. Or to drive the video.
CPU Serial USB-Serial Yes! May want CPU to have its own serial-over-usb channel for debugging; more to point, could perhaps have a bootloader in the cpu, which knows how to program the flash or the carts, and thus use serial custom protocol to reflash components…
Joystick Classic Atari Yes! 8way with fire button supported; two supported; they're actually GPIOs, that share serial pins; so one joystick plus some serial; or 1 joystick plus GPIOs for something else; theres a separate spare GPIO header as well, so two joysticks plus GPIO is good too; very flexible. Oh, you can have more than 1 fire button, since our joystick ports are 8 pins each .. 4 way + 4 buttons, say. Whatever you like, its up to you.
GPU Programmable ST-Link V2 Yes! The firmware for the GPU (and all ICs) is available in source and binary; hack your own GPU updates, add features and improve performance as you see fit!
Audio AY-3-8910 Yes! The famous audio chip from 80s arcade games and home computers/consoles like the Spectrum
Cartridges 36 pin slot Yes! “ROM Packs” or cartridges, like in the good old days; should fit into an Atari 2600 cart shell, too. Cart specification will allow nearly 2MB of storage on the carts, though they can be any size they want .. even exceed that with bank switching logic, etc.
/home/skeezix/public_html/zikzak.ca/zikzak.ca/dokuwiki/__data/pages/zik80.txt · Last modified: 2017/11/11 02:58 (external edit)