Skip to content

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.

License

TheByteAttic/CERBERUS2100

Repository files navigation

CERBERUS 2100™

The software-rewireable, 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.

BREAKING: Olimex is now selling ready-to-use CERBERUS 2100™ units!

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: contains 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-2024 by Bernardo Kastrup. All rights reserved. Provided under license.

CHANGE HISTORY:

  • 26 March 2024: Small change to the BIOS code so to avoid the possibility of an annoying beep upon software reset.
  • 25 March 2024: Alexander Sharikhin has updated his BASIC interpreter and demo code (basic65.bin, c1.src, c2.src, and c3.src in the /Cerberus uSD card files folder) to take into account the new color capabilities of the system. He has also created a manual for the CERBERUS 6502 BASIC interpreter.
  • 05 March 2024: New startup screen options by Movie Vertigo have been added to the folder /Cerberus uSD card files/AlternativeBootScreens. These change the character definitions and may have side effects in earlier software. To solve the latter, just reload the default character definitions file.
  • 18 February 2024: Several applications by Lennart Benschop, in the /Cerberus uSD card files folder, have been updated to take advantage of CERBERUS's new color capabilities (see update from 28 January 2024 below).
  • 8 February 2024: The game Sokoban, by Jeroen Venema, in the /Cerberus uSD card files folder, has been updated to take advantage of CERBERUS's new color capabilities (see update from 28 January 2024 below).
  • 3 February 2024: Update to the firmware (faster reads and writes by FAT CAT) through a pull request from Jeroen Venema.
  • 28 January 2024: FAT-SCUNK (files FAT-SCUNK.PLD, FAT-SCUNK.fit and FAT-SCUNK.jed in the /CPLD_Files directory) has been updated so to display up to 8 colors simultaneously on the screen. Specific foreground colors are assigned to specific character codes (not screen positions). The Hardware Manual has been updated accordingly, including the video architecture diagram on page 14. See page 19 for more details. These changes are unrelated to the PCB, BoM and centroid files, and even the firmware; they are accomplished simply by reprogramming one of the CPLDs, and can be applied to all existing boards.
  • 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.