/CERBERUS2100

The amazing multi-processor 8-bit microcomputer, featuring Z80, 6502 and AVR processors. Built with CPLDs, CERBERUS 2100™ is fully programmable even with respect to its hardware, at the individual gate and flip-flop level.

Primary LanguageForthMIT LicenseMIT

CERBERUS 2100™

The educational multi-CPU, BASIC-programmable microcomputer with powerful, generic expansion capabilities! CERBERUS 2100™ is the successor of CERBERUS 2080™, which is now obsolete. Check out the project's official homepage.

IMG_0601 Background Removed small

CERBERUS 2100™ is an educational multi-processor 8-bit computer, featuring both Z80 and 6502 CPUs, plus an AVR processor as I/O controller. Built with CPLDs, CERBERUS 2100™ is fully programmable even with respect to its hardware, at the level of individual gates and flip-flops. It runs BASIC interpreters for both CPUs, but can also be used in a 'bare metal' mode through its built-in BIOS. It can even be extended through its expansion slot, which comes paired with a powerful, generic communications protocol that allows for Direct Memory Access (DMA). A detailed description of CERBERUS 2100™ is available in the Hardware Manual. And for the latest technical developments, you can join the developers' group.

CERBERUS 2100™ is a collaboration of three developers: Alexander Sharikhin (6502 BASIC interpreter, BIOS optimizations, and test code optimizations), Dean Belfield (Z80 BASIC interpreter and BIOS optimizations), and myself (hardware, original test code, and original BIOS code). The Hardware Manual does not document the software, so you should visit Alexander's and Dean's repositories for that.

The applications in the directory Cerberus uSD card files/ contain code from Alexander and Dean, but also software developed by others, namely: a FORTH interpreter for CERBERUS 2100's Z80 CPU, ported by Lennart Benschop, and the SOKOBAN game ported to CERBERUS 2100's 6502 CPU, by Jeroen Venema.

CERBERUS 2100's BIOS code uses a modified version of the Arduino PS/2 Keyboard Library by Paul Stoffregen, which we gratefully acknowledge.

The directories in this repository are as follows:

  • CAT: constains the BIOS code for FAT-CAT, CERBERUS 2100's I/O controller. This code is simply an Arduino sketch written in C and resides in FAT-CAT's on-board flash memory.
  • CERBERUS Applications Source Code: contains the assembly source codes of four test programs, which illustrate how assembly code can be written for CERBERUS 2100™, including communication between CPU and I/O processor.
  • CPLD_Files: contains the design and JEDEC files for the three CPLDs used in CERBERUS 2100™ as its custom chipset.
  • Cerberus uSD card files: contains the files users should copy to a class-10 (or higher), FAT32-formatted micro SD card to be inserted in CERBERUS 2100™ prior to starting it up. The files contain the character set definitions, both BASIC interpreters, BASIC programs, test code, and other applications.
  • Design: contains the design files of the CERBERUS 2100™ board, including schematics and PCB design files.
  • Manufacturing: contains the files needed to have CERBERUS 2100™ boards made by your favorite PCB manufacturer. The files include the Gerber set, Bill of Materials, and Pick & Place (a.k.a. centroid) specifications.
  • Photos: contains high-resolution, properly illuminated photos of a correctly assembled CERBERUS 2100™ unit. These photos can be used as reference for manual assembly, or to illustrate articles on CERBERUS 2100™. If you are a journalist, member of the media, or tech blogger, please feel free to use these photos without need to request explicit authorization from me.

Copyright © 2023 by Bernardo Kastrup. All rights reserved. Provided under license.

CHANGE HISTORY:

  • 30 August 2023: Correction to the BIOS code (affecting expansion port control), as pull request from Jeroen Venema.
  • 28 August 2023: Minor typo corrected on page 49 of the Hardware Manual.
  • 26 July 2023: Corrections and extensions to the Hardware Manual.
  • 26 July 2023: Full initial commit.