Tuesday, January 14, 2014

Introduction

The CoCo SDC is a home-brew project for the TRS-80 Color Computer (CoCo). It has been in various stages of development since 2009.  The original plan was to provide floppy controller emulation which worked in conjunction with the DriveWire server. That idea was eventually scrapped in favor of a self-contained system using an SD card.

The breadboard prototype.

A number of high capacity storage solutions have previously been developed for the CoCo, including a MicroSD card interface, a handful of IDE and SCSI interfaces and the very popular DriveWire server. One drawback of these offerings has been that they aren't compatible with software that was written to interact directly with a floppy disk controller. This isn't so much a problem if you are primarily using the CoCo for Basic programming or running OS9 software. There are however a number of titles (mostly commercial games) that fail to work with those other systems.

The CoCo SDC aims to solve the compatibility problem by combining the traditional "software hook" approach with a robust emulation of the floppy controller in hardware. This dual mode implementation provides excellent performance for the majority of software which "plays by the rules" while adding a high degree of compatibility with those titles that employ floppy-based copy protection schemes or simply choose to roll their own floppy drivers.

An enhanced LBA access mode has also been incorporated into the firmware, allowing the CoCo SDC to go beyond simply emulating floppy disks and interface with virtual hard disk images as large as 2 gigabytes. Two separate disk images (floppy or hard disk) contained on the same SD card may be "connected" simultaneously.


The production PCB was designed to fit in a Tandy FD-502 enclosure

Also onboard is 128K of Flash memory which is divided into 8 banks of 16K. These 16K banks are both hardware and software selectable and occupy the cartridge ROM space from $C000 to $FEFF.

One bank of the Flash memory is used to hold the SDC-DOS code which is yet another patched version of Microsoft's Disk Extended Color Basic 1.1. Included in SDC-DOS are additional commands to mount disk image files on the SD card, program the Flash and execute ROM images contained in the Flash. DriveWire disk support is also included in SDC-DOS.

Features and Specifications

  • Atmega 328P AVR micro controller @ 10Mhz
  •   Custom 512 byte boot-loader allows firmware to be updated by the CoCo
  • 128K In-System-Programmable Flash
  • Accepts SD/SDHC cards formatted with FAT16 or FAT32 file system
  • Emulates both the Tandy and DragonDOS floppy disk controller hardware
  • LBA access mode for virtual hard disk support
  • Extensions to Disk Extended Color Basic in SDC-DOS for disk image manipulation 
  • DriveWire disk protocol with auto-speed configuration for CoCo 1, 2 or 3
  • "Disk Switch" button to support multi-disk programs
  • PCB can be mounted in a Tandy FD-502 enclosure