No updates detected yet. GitHub releases will appear here.
Mainboard replacement for Commodore PET/CBM series machines
翻訳待ち
Loading the full README.
Read the full README ↗Open hardware mainboard replacement for Commodore PET/CBM 2001/30xx/40xx/80xx machines. The EconoPET can also run standalone with HDMI display and USB keyboard.
See the project page for user manual and firmware updates.
⚠️ Warning: Rev A is not perfect. Before ordering, review the currently known issues and understand that new issues may be discovered over time.
Rev. A has been released. For manufacturing and assembly instructions, go here.
This project uses a Dev Container for a consistent development environment on Windows, macOS, and Linux.
This project uses CMake to manage the build process for firmware, gateware, ROMs, and SD card package.
# Configure
cmake --preset default # Do this first
# Build
cmake --build --preset all # Build everything
cmake --build --preset boot # Build the EconoPET SD-card bootloader
cmake --build --preset fw # Build firmware only
cmake --build --preset fw-test # Build firmware tests only
cmake --build --preset sys-test # Build system integration tests
cmake --build --preset gw # Build gateware only
cmake --build --preset rom # Build ROMs only
cmake --build --preset sdcard # Build SD card package
# Build and Program
cmake --build --preset prog-boot # Build and program bootloader (over SWD)
cmake --build --preset prog-fw # Build and program firmware (over SWD)
cmake --build --preset prog-gw # Build and program gateware (over SWD)
cmake --build --preset prog # Build and program bootloader, gateware, and firmware (over SWD)
cmake --build --preset reset # Reset the MCU without reprogramming (over SWD)
# Test
ctest --preset all --parallel # Run all tests
ctest --preset fw --parallel # Run firmware tests only
ctest --preset sys # Run system integration suite only
ctest --preset gw --parallel # Run gateware unit tests only
ctest --preset gw-boot --parallel # Run full-boot benches (Verilator, minutes)
Gateware benches run under both simulators. gw runs both quick suites;
gw-iv and gw-vl run only Icarus or Verilator, respectively. Verilator is
two-state and settles differently, so it catches races Icarus tolerates. Each
suite takes under a minute. ECONOPET_MEDIA_DIR must point at the directory
containing roms/ and disks/; top_tb and the boot bench load real ROMs
from its roms/ subdirectory.
The integration-test author guide covers host, board
and firmware fixtures, checked CPU programs, ROM calls, and cooperative phases.
Use its nested CTest commands to filter individual integration cases or set
inner parallelism. The root sys preset selects the aggregate wrapper.
gw-boot is separate because it simulates seconds of PET time: it boots the
stock BASIC-4 ROMs on the soft 6502 and passes only once the banner, the RAM
sizing result and the READY. prompt are all on screen. That takes ~5 minutes
under Verilator and is impractical under Icarus. It prints the screen at the
end and writes gw/EconoPET/outflow/stock6502_boot_tb.pgm:
|*** COMMODORE BASIC 4.0 *** |
| |
| 31743 BYTES FREE |
| |
|READY. |
ctest hides that on success, so use ctest --preset gw-boot --parallel -V to see it, or
run ./verilate.sh stock6502_boot_tb 0 directly. See
docs/dev/verilator.md for the Verilator runner and
docs/dev/testing.md for test seeding and replay.
This project is released under the CC0 1.0 Universal (CC0) license, placing it in the public domain.
Exception: external dependencies are subject to their own licenses as noted in their respective source code and in NOTICE.md.