Code Monkey home page Code Monkey logo

thebyteattic / cerberus2100 Goto Github PK

View Code? Open in Web Editor NEW
71.0 6.0 12.0 391.98 MB

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: MIT License

C++ 28.51% Processing 1.14% C 1.47% Makefile 0.16% Assembly 4.14% Forth 64.57%
8-bit 8-bit-computer computer-engineering computer-science computerengineering computers computerscience multi-processing multi-processor multi-processors

cerberus2100's Introduction

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.

cerberus2100's People

Contributors

envenomator avatar lennart-benschop avatar movievertigo avatar nihirash avatar thebyteattic avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

cerberus2100's Issues

Keyboard power issue

I have an Agon2light, and recently received my Cerebrus 2100. I fought with keyboard issues for a few weeks, none of the keyboards that worked with Agon would work with Cerebrus. No powerup sequence on the keyboard lights.
I ordered another keyboard (from Agon Australia) just to be sure, and it didn't work either!
I was looking around at it again this morning, and discovered that if I plugged in the keyboard AFTER powering up the Cerebrus the blinkenlights appeared and the keyboard works!
I'm going to attempt to look at the firmware..

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.