This is the root repository for a number of 8-bit retro machines, mainly clones of the Commodore PET - but with many more features. This is a family of boards with a set of core features, and different additional features depending on the board variant.
The Micro-PET is the core PET clone, already with USB, SD-Card, and network interfaces in addition to all the standard PET I/O: IEEE488, keyboard, and tape (but without 9V), on a single 100x190mm board.
The Ulti-PET is a fully integrated PET clone, with many many features. Most notably, I added dual SID, mixer, and an audio amp, fast serial IEC bus, RS232, and I extended IO by using the 6502.org original SPI-10 specs and included a 5V (based on the VIA SR), and a 3.3V (based on the FPGA) variant. Also, an UEXT connector is on board, including I2C, 3.3V-TTL serial, and SPI (based on the FPGA SPI interface).
The Ultra-CPU core is only the FPGA-based core, using my CS/A bus system for extensions. Together with the PETIO board it makes a Micro-PET, and can be extended to almost a full Ulti-PET with further additional boards, and beyond. As the board itself does not include any PET specifics, it could be used to create other type of clones, as long as they are based on the CS/A bus.
All variants center around a set of core features, as implemented in the Ultra-CPU board. The core specs are:
-
CS/A bus-based 65816 CPU board
-
Up to 13.5 MHz 65816 CPU, with 1MB RAM (512k fast, 512k media RAM)
-
720x576 VGA with 16 colours out of 64, various modes incl. Colour-PET and C64-alike, incl. sprites - see the README in the fpga sub-repository.
-
USB host for keyboard and mouse
-
DAC (DMA) audio output
-
Port for SD-Card adapter
-
Port for Network, with either Ethernet or Wifi options
-
RTC chip
-
Standard PET I/O, plus ability to work as IEEE488 device
The Ulti-PET integrates, on top of the Micro-PET, the following features from other CS/A bus boards
-
(Fast) Serial IEC, incl. ability to work as IEC device, based on the VIA SR
-
RS232, plus 2nd TTL serial (shared with UEXT)
-
Dual SID with mixer (that includes the DAC audio and the beeper); Speaker amp included.
-
Keyboard shift lock / reset (needs Shift lock key on separate keyboard matrix position) and adds these features on top:
-
2 Joystick ports, switchable between single- and dual mode ("stupid pet tricks" compatible)
-
SPI-10 5V, SPI-10 3.3V, and UEXT extension ports (partially shared, see schematics), incl. I2C
-
Fully functional Tape incl. 9V for Tape drive power supply
-
Expansion ports for the CS/A bus - single wide port, single shortbus port for Ultrabus expansion board
-
Accompanying Ultra-Bus bus extender board to use CS/A, RC2014, Apple-II, or C64 cards
To build the boards, a few core repositories are required that contain shared code (FPGA, Firmware) in addition to the specific repositories for each board. Also, there are further options like Wifi, or the bus extender.
All repositories contain gerber files and BOMs (of varying quality) where PCBs are included. Most of them are designed with KiCAD, one is still with Eagle.
The CS/A bus boards are extensions that can be used with the Ultra-CPU or the Ulti-PET. Care needs to be taken to match the respective I/O ranges used to avoid bus conflicts.
To download the github repositories, you can actually run a "make clone" command on the command line, in the directory for this readme.
-
Wifi breakout board (Note: so far untested)
The PETIO board completes the Ultra-CPU to a PET clone:
Other CS/A bus boards are here http://www.6502.org/users/andre/csa/index.html
Here are some answers to questions I got:
-
The FPGA does not need direct programming. Instead you program the configuration ROM, which is an SPI-based Flash-PROM. This should be programmable with any more recent EPROM programmer. In fact you have to program two of those, one for the FPGA, one for the firmware.
-
The files provided are basically as "kit" as I can do: there are the gerber files, and Bill-of-Materials for all boards, that you can upload to Mouser to get all the parts (for me in Germany even without shipping costs as it is > 50$. Admittedly no SID replacements from mouser though, but all other parts are in there) The parts cost is about 300-350$ + tax though, plus PCBs. That is for the all-included Ulti-PET board. For the Micro-PET board it’s currently about 170$ + tax. Mouser may not be the cheapest choice, so you may be able to optimize, but it is the most convenient for me.
-
Soldering might be a challenge. There are a couple of parts that have very small pin distances, down to IIRC .4 or .5mm. I have been looking into providing separate information for SMD assembly like https://jlcpcb.com/smt-assembly and the BOMs for the main boards now contain parts information for SMD assembly by JLCPCB. That allows getting a board with all SMD done, and only Through-hole parts to purchase yourself and solder.
-
Software-wise, you can select on the boot screen which version of BASIC (1, 2, or 4) you want to use. USB keyboard and SD Card support is available for BASIC4 for now.
-
Compatibility is limited regarding the video output timing. As the different PET models have different video output timings, my take was, to get VGA compliant video output, I’ll define my own. It might be possible, using wait states for the CPU, to create a more correct timing as are in the 2001, or CRTC models. However, that is currently not implemented and not on my priority list. So, there will be limited success running the current set of new graphics demos, but anything else should be fine.
-
Hardware debugging can be a challenge. I know of some patterns where I know where to look, but I’ll probably add some build guidelines to the documentation.