Skip to content

Thejayman77/retroDE_coco2

Repository files navigation

retroDE CoCo2

TRS-80 Color Computer 2 (Tandy CoCo) core for the retroDE FPGA platform. Real hardware logic on modern silicon — not software emulation.


About

This is the CoCo2 core for retroDE, an open-source FPGA retro computing platform targeting the Terasic DE25-Nano (Intel Agilex 5). The RTL is a DE25-Nano port of the MiSTer-devel CoCo_MiSTer core, which itself derives from pcornier's original coco2 project. See CREDITS.md for full attribution.

For the overall platform, main entry point, and the list of available cores, see the top-level project: https://github.com/Thejayman77/retroDE

Status

Working on real hardware. Boots cartridges via the included clean-room boot BIOS, drives HDMI video and audio through the retroDE platform shell. Active development — working does not mean finished.

Features

  • MC6809 CPU (Greg Miller's mc6809i.v from upstream)
  • MC6883 SAM, MC6821 PIAs, MC6847 VDG (NTSC color burst + analog signal simulation for authentic artifact colors)
  • Two-port joystick + keyboard via the retroDE platform shell
  • Cartridge loading via HPS (loaded into a SDRAM-backed window)
  • Clean-room boot BIOS — retroDE-authored replacement for the proprietary Tandy Color BASIC ROMs. Boots cart games out of the box; no Tandy ROM sourcing required. See CREDITS.md for the detailed BIOS scope and limitations.
  • Manifest-driven core entry — selectable from the retroDE supervisor menu

Repository layout

retroDE_coco2/
├── retroDE_coco2.sv          # Top-level
├── retroDE_coco2.qsf / .qpf  # Quartus project
├── retroDE_coco2.sdc         # Timing constraints
├── compile_coco2.sh          # Build + bitstream packaging
├── post_flow.tcl             # Post-assembler HPS-first bootloader merge
├── rtl/coco2/                # CoCo2 wrapper + bridge + screenshot
├── rtl/platform/             # Local platform glue
├── rtl/sdram_ctrl.sv         # SDRAM controller
├── CoCo2_MiSTer/             # Vendored MiSTer CoCo_MiSTer RTL (GPL-family)
│   ├── rtl/                  # CPU, SAM, PIAs, VDG, peripherals
│   └── roms/chrrom/          # 6847 character generator (datasheet-derived)
├── bios/                     # Clean-room retroDE boot BIOS (8 KiB × 2)
├── bios_src/                 # Boot BIOS source (lwasm assembly, MIT)
├── ip/                       # Agilex 5 PLLs
├── qsys/                     # Platform Designer subsystems (HPS, peripheral)
├── software/                 # HPS-side debug / loader source (.c)
├── CREDITS.md                # Full upstream attribution + BIOS notes
├── COPYING / LICENSE         # GPLv3
└── README.md                 # This file

Build prerequisites

  • Intel Quartus Prime Pro 26.1 (or set QUARTUS_ROOTDIR to match)
  • Terasic DE25-Nano board
  • retroDE_splash checked out as a sibling directory (see below)
  • lwasm (from lwtools) — only needed if rebuilding the boot BIOS from source; the pre-built .rom files are shipped under bios/

Expected directory layout

This core shares RTL and the u-boot SPL with the retroDE platform shell. Clone retroDE_splash next to retroDE_coco2:

your-workspace/
├── retroDE_splash/   # Platform chassis — must be present
└── retroDE_coco2/    # This repo

Files referenced from ../retroDE_splash/ during build include the shared platform RTL and the u-boot SPL hex for the combined bitstream. Override the location with RETRODE_ROOT=/path/to/workspace if your layout differs.

Building

# Defaults: assumes ../retroDE_splash is a sibling, quartus_sh on PATH
./compile_coco2.sh

# Clean build artifacts
./compile_coco2.sh clean

# Override locations
QUARTUS_ROOTDIR=/opt/intel/quartus_pro/26.1/quartus \
UBOOT_HEX=/custom/path/u-boot-spl-dtb.hex \
./compile_coco2.sh

Build time: roughly 8–12 minutes on a modern machine.

Output bitstreams land in output_files/:

  • retroDE_coco2.core.rbf — runtime FPGA fabric bitstream (deploy this)
  • retroDE_coco2.hps.rbf — HPS-merged RBF (rarely used; splash JIC handles QSPI)

Manifest entry

Add this section to ~/cores/manifest.cfg on your DE25 to register the CoCo2 core with retrodesd:

[coco2]
name=CoCo2 (TRS-80 Color Computer 2)
rbf=/home/terasic/cores/retroDE_coco2.core.rbf
backend=coco2
core_id=0x434F4300          # "COC\0"
min_abi=0x00000100          # ABI v1.0
config=/home/terasic/coco2.cfg
bios.0=ext_basic:/home/terasic/bios/retrode_coco2_ext_basic.rom
bios.1=color_basic:/home/terasic/bios/retrode_coco2_color_basic.rom
extensions=.rom,.ccc,.bin
rom_dir=/home/terasic/roms/coco2
media=rom

Copy bios/retrode_coco2_ext_basic.rom and bios/retrode_coco2_color_basic.rom (both shipped in this repo) to ~/bios/ on the DE25.

See the umbrella SETUP.md for the full list of manifest options.

Boot BIOS

The CoCo2's original boot ROM (Microsoft Color BASIC + Extended Color BASIC, copyright Tandy Corporation / RadioShack) is proprietary and not redistributable. retroDE does not include it.

In its place, this repo ships retrode_coco2_*_basic.rom — a clean-room minimal boot BIOS written from scratch by retroDE contributors (MIT-licensed, source under bios_src/). It handles just enough to boot cartridge games out of the box. Verified working: Dungeons of Daggorath (1982), Downland (1983).

It does not implement the BASIC interpreter, tape I/O, disk I/O, or BASIC math routines. Programs that depend on those Color BASIC entry points will not work against this BIOS.

See CREDITS.md for full BIOS details, scope, and rebuild instructions.

License

GPLv3 on the combined work — see LICENSE and COPYING.

The vendored CoCo2_MiSTer/ RTL is treated as GPL-family compatible per the upstream's open-source publication; see CREDITS.md for the licensing-ambiguity caveat. The clean-room boot BIOS (bios_src/ and bios/retrode_coco2_*.rom) is MIT-licensed retroDE-original work, dual-hatted under the combined-work GPLv3.

Do not strip original copyright headers from any file.

About

TRS-80 Color Computer 2 (Tandy CoCo) core for retroDE — DE25-Nano (Agilex 5) port of CoCo_MiSTer with a clean-room boot BIOS. No proprietary Tandy ROMs required.

Topics

Resources

License

GPL-3.0, GPL-3.0 licenses found

Licenses found

GPL-3.0
LICENSE
GPL-3.0
COPYING

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors