André's 8-bit Pages  Projects  Code  Resources  Tools  Forum

CS/A65 computer - Caspaer and Gecko

(C) 1989 - 2007 André Fachat

The computers presented here are actually a line of PCB boards that can be plugged into a passive motherboard. The boards can be used in different setups, but the Caspaer is the standard (extensible) base setup. A special place has the Gecko that in itself is a complete, single-board computer.

News:

Disclaimer

Before you go on, you should know that all this stuff comes with no warranty at all . Of course this hardware is not to be used in any important or even life-critical systems. The hardware schematics and software are provided 'as is', without warranty of any kind. The entire risk as to the quality and performance of the hard- and software is with you. Should the hard- or software prove defective, you assume the cost of all necessary servicing, repair or correction.

Motivation

Why do I do all this? Good question. It all started with modifications to my trusty old Commodore 64 (that I still own but rarely use, though). Together with a friend I developed a phone switching system so you could use multiple phones on a single phone line, with features like call forwarding, or conferencing. My friend built several revisions of the 6502-based hardware, while I wrote several revisions of the software. It was much fun to do, but it never reached production status, though. When I started studying, I decided to build my own system with advanced features - and the result was the original CS/A65 computer.

One motivation was to actually implement and try out (then and now) advanced features in microprocessor architecture. You can see that in the use of the MMU, or the planned coprocessor board. I also wanted it to be easily understandable, so I decided not to use programmable logic chips but implement everything in standard logic chips. Although nowadays FPGAs look very interesting (and advanced) :-)

Distribution

The boards, i.e. the schematics, and layout artworks are distributed under the terms of the GNU public license version 2.

The bus design is completely in the public domain. It can be used as long as any changes to the original specs are marked as such (to not let incompatibilites slip in unnoticed).

Introduction

The CS/A65 computer is a modular computer based on a passive backplane and a number of active boards. The system is based around the 6502 technology originating from the long gone MOS technologies. New chips, however, are available from other sources.

The 6502 is an eight bit CPU with sixteen address lines. A prominent feature of the main CPU board is the MMU that, together with the 20 bus address lines, allow for a megabyte of address space. This MMU is used in the GeckOS/A65 operating system for multitasking support.

Many of the boards originated from my original plans to recreate a Commodore PET3032 computer - on which I got my first programming experiences. It has, however, grown way beyond this now.

Some prominent examples for I/O boards are a SCSI interface, as well as PC floppy interface, or a 6502 emulator.

A software emulator based on the VICE commodore emulator is used for software development for the system

General considerations

Other CPUs

Currently the system is based on the 6502 processor, although other configurations (65816, 6809) should be possible. The software I use for this systems is homemade and can be found on my OS/A65 page. There are drivers and programs for most of the hardware described below available.

Bus

The bus used is the synchronous bus used in the 6502/6800/6809 CPU bus interfaces. It has some additional lines, though... A description of the bus interface is in bus.html.

Technology

All ICs are standard Low-Power Shottky ('LS) or Advanced Low-Power Shottky ('ALS) TTL ICs. These ICs are still standard, although some of the ICs seem to have been deprecated and are not ported to newer technologies like 'ALS.

Also, getting documentation for the 8bit stuff is getting more and more difficult. But there is an archive in Finland, http://www.zimmers.net/anonftp/pub/cbm/documents/chipdata/index.html that has most of the stuff. However there is a separate 74LS610 page.

Schematics

In the older schematics there are no decoupling capacitors (or what are they called?) that should be from Vcc to GND for each IC. Sometimes they are mentioned in the parts list, though. Also there is no 100uF capacitor at the CS/A bus connector between Vcc and GND, to buffer the supply voltage for the board. These are always implict, so I didn't bother drawing them. But you should use them anyway.

Most of the boards, esp. the I/O boards, are pretty straightforward. That's why I concentrate on the special I/O and even then I will only go into detail when necessary. You should have some basic understanding of 6502 hardware design.

In all mentionings I have just written 6502 or 6522 or 6821. These and other chips exist in different flavors, and it is only save to assume a that they are specified for 1MHz bus frequency only. Check if you want a 2MHz system and use the appropriate faster models.

Age

Last but not least one remark. Some of the boards have been designed as early as 1989, which means they are pretty old. Nowadays I would do some things differently, the Reset circuitry is one example that can actually be seen in the newer 2006 versions of the CPU boards for example.

The schematics on this page can be found either as PNG, xfig and gzipped postscript, in which case they are at least from 1999 or earlier, or as Eagle schematics and PNG, in which case they are from 2006 or later.

Nevertheless for the older boards I have mostly transcripted the schematics from my hand-drawing to xfig format. Although I used quite some time to find any remaining error, be warned, there still may be errors. And my hand-drawing is still the authoritative source.

For the newer boards you can be pretty sure that the Eagle schematics and board layout works when the board description indicates that I have tested the board and found no problem.

Setups

In this section some supported setups are described.

Caspaer


A Caspaer setup
The Caspaer (aka "CaSpAer65" ;-) setup is the base setup for the CS/A65 computer with a main CPU board, i.e. for an MMU setup. It consists of the CS/A65 CPU, CS/A65 BIOS, Video and PETIO boards.

CS/A65 legacy

This setup uses the "old" versions of various boards. It is basically deprecated and only documented here as I still have such a setup and still want to use it... It uses the CS/A65 CPU, BIOS, Video boards, as well as the deprecated keyboard and IEEE488 boards.

Gecko

The Gecko computer is a single-board computer that can only use I/O boards on the CS/A bus, and has own peripherals on the board. It has its own Gecko page.

Fat40

The Fat40 setup is similar to the Gecko setup in that the PETCPU board used is a small computer in itself. The setup, however, defines to use the Video and PETIO boards as well, to simulate a Commodore PET 4032 with CRTC, aka "Fat40" - thus the name. The Fat40 setup has its own Fat40 page.

VC1581

The VC1581 setup also uses the PETCPU board, but uses the DRVIO board to emulate a Commodore VC1581 disk drive. The VC1581 setup has its own VC1581 page.

Software

The software used is the GeckOS/A65 operating system. It features the handling of the MMU, serial devices, video output, floppy disk drives, and the newest versions even feature TCP/SLIP (beta) and SCSI (alpha) support.

Some of the software development took place on a modified VICE emulator, that now emulates a subset of the CS/A65 hardware. Please check it out at its site.

The board pages contain driver code where appropriate and available.

Boards

This section describes the different boards and links to the schematics and more detailled descriptions.

Main Boards

Those boards are the heart of the CS/A65 and Gecko computers.

I/O boards

Many of the I/O boards are designed to be at least to some extent Commodore PET compatible

Special purpose boards

Special interest in this computer system is on the topic of emulation. The larger address space and the MMU allows for mapping of other computers memory into the main memory map.

Deprecated boards

These boards are deprecated and I will not support them further. (well, Commodore managed to spread the IEEE488 interface across 3 ICs, which was not nice for building it on PCBs like these, why I moved some of the lines around those days...)

Memory Map

A memory map on the I/O memory addresses can now be found in the Memory Map page.

Board numbering scheme

The boards are numbered with a major and a minor version number, plus a letter denoting the revision of the board. So for example a video board is numbered "1.3E", means that it is major version 1, minor version 3, and the fifth revision (E).

The revisions are changed when a compatible modification has been made - this can be a redraw of the schematics (e.g. with Eagle instead of xfig), or a minor bugfix (like fixing the reset behaviour). It is also used when during development the initial bugs are shaken out (which may involve incompatible changes, though, see the DRVIO board...)

The minor version is increased when there is a software-compatible extensions of the previous board. For example the 1.4 version of the VDC board, although the video connector has changed (composite is gone, but VCC is there now) it can be used very much like the V1.3 versions (software-wise).

The major version number is increased by major and incompatible changes. For example the BIOS board is in its third major version: the first version used an ACIA as RS232 interface, the second one an UART instead. The third version is a complete redesign with the possibility to provide up to 512k RAM and/or ROM. It could be used like a version 2 board, but is a major change anyway, therefore a new major version.

I try to keep the numbering consistent, but I am only human ;-)

Old News: