CooCoo v0.1 Tandy Color Computer 1 & 2 FPGA Implementation User Reference Manual Document Revision 0.
Table of Contents Introduction..........................................................................................................................................3 What is CooCoo?.............................................................................................................................3 The Short Version........................................................................................................................3 The Long Version.............................................
Introduction What is CooCoo? The Short Version CooCoo v0.1 is an FPGA implementation of the Tandy Color Computer 1 and 2. The Long Version CooCoo v0.1 is the just first phase of a long term project aimed at enhancing the experience of Tandy Color Computer (CoCo) enthusiasts. The CooCoo project is designed to ultimately offer a muti-faceted emulation of the whole CoCo line – and more.
Credits The CooCoo project leverages off work undertaken by a number of people and/or groups, without whom the development would have been a lot more difficult and taken a lot longer. In no particular order, credit goes to: • John Kent, designer of the CPU09 (6809) and PIA6821 cores.
Features CooCoo v0.1 emulates the Tandy Color Computer 1 & 2, with the following features/options: • 6809 running at 0.89MHz • 6847 or 6847-T1 VDG • PAL/NTSC video output • 64KiB RAM • Color Basic v1.0/1.1/1.2 • Extended Color Basic (ECB) v1.0/1.
In Depth 6847 VDG The Color Computer 1 used the original MC6847 VDG. The Color Computer 2 used the enhanced MC6847T1 VDG, which had lower case characters and the ability to change the text screen border. In addition, each variant has a PAL & NTSC version of the device and character ROM. The PAL version outputs an extra 25 lines at the top and bottom of the display, to give a 50Hz screen refresh rate. Note that the PAL option is not suitable for most VGA monitors.
Note that CooCoo v0.1 has only been tested with HDBDOS operating in LBA mode. However, the implementation should be compatible with any configuration of HDBDOS. The HDBDOS ROM is read from the flash device on the target hardware (see reference section for your target for instructions on how to program the flash). HDBDOS is a commercial product and is available from Cloud-9 . As such it is not supplied with CooCoo v0.1.
The active slot is displayed on four (4) LEDs on targets that support this feature. A 5th switch controls the auto-start for images in locations 2-15. You can think of this switch as inserting / removing the cartridge from your Coco. Technically however, it's more akin to placing sticky-tape over the CART# pin, as the ROM image is still accessible by the Coco. See the reference section for your target harwdare for more details. PS/2 Keyboard The PS/2 keyboard emulates the Coco keyboard as far as possible.
PS/2 Key Function Volume down Video Output CooCoo v0.1 can output either 15kHz or 30kHz RGB video. 15kHz is suitable only for RGB monitors that scan at this rate, such as the Tandy CM8 or Commodore 1084(S) series and clones. Alternatively, on target hardware with composite video output, it may be connected to a suitable TV or composite monitor. 30kHz is suitable for modern-day VGA monitors. This is a build-time option. By default, CooCoo v0.1 is built with the 30kHz (VGA) option.
Joystick Support CooCoo v0.1 emulates Tandy analogue joystick input via the Nintendo Gamecube controller. [further details TBD] Glenside IDE / Cloud-9 SuperIDE Interface CooCoo v0.1 emulates the above-mentioned IDE interfaces via an on-chip IDE controller implementation. The back-end of the IDE controller is connected to either a CF socket or SD/MMC card socket, depending on the target hardware. The IDE functionality is register-compatible with either controller.
Reset CooCoo v0.1 provides a number of reset options. • system-wide reset will reset the Coco itself and all other components of the emulation, including external peripherals such as the MPI. • platform reset will reset the Coco itself (only). • CPU reset will reset the 6809 core only. It is primarily used during development where an external 6809 is connected. Note that, like a real Coco, some programs 'take over' the Coco and will resume execution upon a reset.
Target Reference TerASIC DE1 The TerASIC DE1 is the de-facto standard target hardware for CooCoo v0.1. Getting Started Detailed instructions regarding the set-up and configuration of your DE1 are beyond the scope of this manual. You may need to consult your DE1 documentation.
Switch SW9 Function (not assigned) LEDs The following table details the values assigned to the LEDs on the DE1: LED Function L3:0 Active cartridge slot (0-15) L9:4 (not assigned) HDBDOS & IDE images The SD/MMC slot on the DE1 enables you to use an SD card as an IDE device for use with HDBDOS. The SD card contains a straight sector-dump of an CF card image prepared either on a real Coco or with the VCC (Coco emulator) SIDEUTIL program, for example.