Skip to content

Root repository for the Micro-PET type family of boards

Notifications You must be signed in to change notification settings

fachat/upet_family

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 

Repository files navigation

Micro-PET family

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 Ultra-CPU core is based on my CS/A bus system, and as an FPGA is used that contains the memory mapping, could be used in different types of system, not just the PET.

The Micro-PET is the core, plus all the standard PET I/O, mainly IEEE488, keyboard, and tape (but without 9V), on a single 100x190mm board.

The Ulti-PET finally, is a fully integrated PET clone, with many many features. Most notably, I used 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 Micro-PET family

Features

All variants center around a set of core features, as implemented in the Ultra-CPU board. The core specs are:

Ultra-CPU

  • CS/A bus-based 65816 CPU board

  • Up to 17.5 MHz 65816 CPU, with 1MB RAM (512k fast, 512k media RAM)

  • 768x576 VGA with 16 colours out of 64, various modes incl. Colour-PET and C64-alike, incl. sprites

  • USB host for keyboard and mouse

  • DAC (DMA) audio output

  • Port for SD-Card adapter (2 variants)

  • Port for Network, with either Ethernet or Wifi options

Micro-PET

The Micro-PET removes the CS/A bus connector, but adds:

  • Standard PET I/O, plus ability to work as IEEE488 device

Ulti-PET

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 bus extender board to use CS/A, RC2014, Apple-II, or C64 cards

Build

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.

CS/A bus boards

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

FAQs

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 might be looking into providing separate information for SMD assembly like https://jlcpcb.com/smt-assembly but I haven’t gotten to that point yet. That would then allow to get 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.

The boot screen

The boot screen

A demo showing the graphics capabilities

A demo showing the graphics capabilities

The highest character resolution, 96x71

The highest character resolution

Development of the board with new PET start screen

Development of the board with new PET start screen

Running GeckOS in 8296 emulation mode

Running GeckOS in 8296 emulation mode

About

Root repository for the Micro-PET type family of boards

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published