http://www.6502.org/users/andre/csa/index.html
6502org_logo
Andre's 8-bit Pages Projects Code Resources Tools Forum
[ ][Search site]
(by Google)
Home >
*
+ Home
+ Contact
+ Web design
* Hardware
*
+ The 65k Project
+ PET816 Accelerator
+ CS/A65
+ CBM mods
+ SPI65B
+ XS1541
+ Other hardware
* Software
*
+ GeckOS
+ lib6502
+ o65
+ usb65
+ XD2031
+ Misc
* Library
*
+ PETindex
+ PET drives
+ Advanced 6502
+ ICs and Standards
* Knowledge Bits
*
+ Computer/OS Architecture
+ 6502 Hardware Bits
+ Emulation
CS/A Computer >
*
+ CS/A Computer
+ Memory Map
* Specifications
*
+ Bus V1.0
+ Bus V1.1
* Main boards
*
+ CS/A65 CPU
+ CS/A65 BIOS
+ 65816 CPU V2
+ 64k PET CPU
+ Gecko
+ Auxiliary CPU
+ Power Supply
+ Bus terminators
* I/O boards
*
+ Video board
+ CBM PET I/O
+ Net/USB/SD
+ Ethernet
+ USB
+ PC floppy
+ DRVIO floppy and IEC
+ Double UART (RS232)
+ SCSI/I2C board
+ MMC/SD-Card
* Special purpose
*
+ Block transfer
+ SIMM RAMDisk
+ Coprocessor board
+ Emulate a 6502
+ Emulate a keyboard
+ VIA prototyping
* Contributions
*
+ Contributions
* Deprecated boards
*
+ 65816 CPU V1
+ 64k CPU
+ Keyboard and RS232
+ IEEE488 and CBM IEC
* Other links
*
+ Gallery
+ VICE emu of CS/A65
+ >C64 CS/A adapter
+ >PET CS/A adapter
CS/A65 computer - Caspaer and Gecko
(C) 1989 - 2013 Andre Fachat
30th anniversary! In october 1989 I had the first boards of this
computer system up and running - and it is still running, although in
modernized form. Watch out for more things to come (although in slow
sequence as time permits)
In the last 10 years progress was slow, but still the system got the
capability to use USB (NetUSB and USB), Ethernet (NetUSB, USB
(+Ethernet), and EthOli), SD cards (NetUSB), a RAM disk (RAMdisk), a
Blitter (Blitter), and many more updates. While not much more is
planned right now, there will be further updates. Stay tuned!
Meanwhile, have a look at the updated Gallery.
The computer presented here is 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:
*
2019-08-31 Celebrate the 30th anniversary of this machine on the
overhauled Gallery page.
*
2013-01-04 Added the new NetUSB board with SD-Card, Ethernet and
USB host + device!
*
2011-05-04 Updated the video board, hopefully fixing the last bug
*
2011-04-29 Added a completely new Block Transfer engine board!
*
2011-04-22 Added a completely new USB board!
*
2017-08-13 Added a page with contributions by other people! This
page starts with a contributed backplane.
*
2011-06-04 Updated the BIOS board with a new layout. Updated and
added a new version of the Power supply board.
Table of content
* Disclaimer
* Motivation
* Distribution
* Introduction
* General considerations
*
+ Other CPUs
+ Bus
+ Technology
+ Schematics
+ Age
* Setups
*
+ Caspaer
+ CS/A65 legacy
+ Gecko
+ Fat40
+ VC1581
* Software
* Boards
*
+ Main Boards
+ I/O boards
+ Special purpose boards
+ Deprecated boards
* Memory Map
* Board numbering scheme
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 bypass capacitors (buffering the
supply voltage for each IC separately) 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
[caspaer-sm]
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.
* It uses the current version of the boards, i.e. VDC 1.4, BIOS
3.0, PETIO 1.1 and CPU 2.0.
* It uses the PET method of generating the system interrupt, by
using the extra cable from PETIO to VDC board to use the vertical
retrace signal (This way no 50Hz generation in the power supply
is necessary).
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.
* It uses the older version of the boards, i.e. VDC 1.3, BIOS 2.x,
CPU 1.2, Keyboard 1.0 and IEEE488 1.1.
* It uses the legacy method of generating the system interrupt,
that requires the 50Hz line on the CS/A65 bus to be powered by an
external source, in my case by the power supply.
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.
* CS/A65 CPU The main CPU board features an MMU, and newer versions
also sport bus error condition detection. It is a CPU-only board
and thus requires the BIOS board for its operation.
* 65816 CPU This board uses a 65816 instead of a 6502, and does not
use a real MMU. Instead the 1MByte CS/A bus memory is mapped into
the 16MByte 65816 address space. The CPU runs at a whopping 8MHz
and the board includes 2MByte fast RAM, while the CS/A bus is
clocked at 1MHz. It is a CPU-only board and needs the BIOS board
to boot.
* CS/A65 BIOS This BIOS board contains RAM and ROM for the main
CPU, as well as simple 50Hz interrupt generation, and a serial
(RS232) interface.
* 64k PET CPU This board implements a simple CPU board that
includes not only the CPU, but also RAM and ROM (and also a
serial interface). It can - as it does not have an MMU - make
only restricted use of the bus memory address space, but can
fully use the bus I/O area. You can use this board instead of a
main CPU and BIOS board to build a Commodore 4032 or a Commodore
VC1581 replica.
* Gecko This board implements a single-board computer with a 6502,
RAM and ROM, that accidentially ;-) contains a CS/A65 bus
connector. It sports a serial interface (RS232), Commodore serial
IEC bus, infrared LED driver to use as remote control and a small
keyboard interface.
* Auxiliary CPU This board is an optional extension to the CS/A65
CPU board (only! - it requires the MMU features on the CPU board,
which are not available on the 65816, PETCPU, or Gecko boards).
It monitors the bus for error conditions, then takes over from
the main CPU to fix the error condition. Possible error
conditions are write protect error, "no execution" fault, or
unmapped pages. It can also be used to take a trace of the main
CPU.
* Power board This board provides basic services, using power from
a PC power supply. It includes voltage monitor, 3.3V generation,
battery buffered power, as well as I2C controlled clock, RAM, and
an I2C flash ROM.
I/O boards
Many of the I/O boards are designed to be at least to some extent
Commodore PET compatible
* Video The VDC board implements a 6545 CRTC-based video interface.
It includes 64k dynamic RAM that is used as video memory (at
least parts of). If the system bus runs with 1MHz it can display
40 columns PAL video, on 2MHz it can display 80 columns video.
* CBM PET I/O This board contains basically all Commodore PET I/O
interfaces except for the video. It thus features an IEEE488
interface, as well as keyboard, userport and tape interfaces. It
also contains a small beeper to make noise :-)
* Net/USB/SD A combined Ethernet, USB host+device and SD-Card
interface board! All parts connected via SPI65b (and 3.3V
converters).
* Ethernet An ethernet interface for the CS/A! Using the CS8900A
ethernet chip on an Olimex adapter board. TCP/IP functionality
provided by the uIP TCP/IP stack.
* USB A USB interface for the CS/A! Using one SL811HS ethernet chip
each for host and device operations, this board allows to use a
USB keyboard and mouse, but can also provide a USB keyboard for a
USB host!
* MMC/SD-Card The MMC- and SD-cards can use a simple SPI-based
interface. On this board the CS/A can read MMC and SD-Cards!
* SCSI This board implements a parallel SCSI interface to attach
SCSI devices to the CS/A65 computer. It is currently only tested
with disk drives, though.
* DRVIO floppy and IEC This board contains a PC-style floppy drive
interface using the WD1772 chip in a way that is compatible with
the Commodore VC1581 disk drive - so that it can be used to build
a Commodore VC1581 replica.
* Double UART Two UART 16550A implement two serial line RS232
interfacs.
* PC floppy This board contains a PC-style floppy drive interface
using the WD1772 chip. It also contains a small printer
interface.
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.
* Block Transfer Engine This block transfer engine allows to copy
blocks of memory without using the CPU - in a way that is much
faster than even the 65816: it uses only two cycles per
transferred byte!
* SIMM RAMDisk This board implements a RAM Disk based on the
(nowadays quite old) SIMM memory modules. Using four of them you
can build a RAM disk drive with up to 16MByte capacity (only
tested to 4M though). Two versions are available, an older one
with complete discrete logic, and a new one using a CPLD
programmable logic chip.
* Coprocessor This is a coprocessor board, that runs in parallel to
the main CPU and has its own 64k of memory mapped into the 1M bus
address space as shared memory. It can be used for I/O
offloading, e.g. for a SCSI or TCP/IP interface.
* Emulate a 6502 This board allows to connect another 6502-based
computer with the CS/A65. The other 6502's 64k address space is
mapped into the 1M bus address space. So with the help of the MMU
that main CPU can play the role of the replaced other computer's
CPU for example to test new ROM versions of the other computer.
* Emulate a keyboard This board emulates up to two matrix-based
keyboard. It features two shared memory areas, where the memory
is shared between the main CPU and the keyboard matrix select and
detect lines.
* VIA prototyping This board has a VIA, with address decoding and a
large area ready for prototyping.
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...)
* 65816 V1 CPU The predecessor of the current V2 65816 CPU board.
It does not use a CPLD but only a PAL as programmable logic. So
it is easier to understand and kept here for reference and
educational purposes.
* 64k CPU This is a 64k CPU that is actually a stripped down Gecko
board. It only existed as schematics and is replaced by the
PETCPU board.
* Keyboard and RS232 This is a PET compatible keyboard interface,
plus a ACIA 6551 based serial (RS232) interface. As the 6551 is a
rather rough-edged chip, and the keyboard interface is available
with the PETIO board in a more compatible way, this board is
replaced by the PETIO and DUART boards.
* IEEE488 and CBM IEC This board implements a partially PET
compatible IEEE488 interface, plus a Commodore serial IEC bus as
it is used in the C64 for example. In addition both busses can be
used not only as master, but also as drive so that the CS/A65
computer can be used as drive by the PET or C64. This board is
replaced by the PETIO and DRVIO boards.
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 ;-)
Last modified: 2019-08-31
Return to Homepage
follow
Follow my 8-bit tweets on Twitter (In new window)
discuss
Discuss my site on this 6502.org forum thread
Discuss this page's content on this 6502.org forum thread
(Forum registration required to post)
hot!
Dive into the retro feeling and build yourself a Commodore PET
replica
Need more speed? Speed up your 6502 computer with this 10 MHz 6502
CPU accelerator board
Interested in electronics design? Look at the design lesson I got
from Bil Herd, the hardware designer of the C128
Want 64bit? - pimp the 6502 with the 65k processor design!
history
*
2011-01-09 Added a completely new Bus terminator board!
*
2011-01-04 Added a completely new Ethernet board!
*
2011-01-02 Updated the Ramdisk board. Now a CPLD-based version is
available in addition to the older TTL-based version.
*
2010-12-22 Updated the CPU816 board (v2) to fix the ROM
programming, and make it compatible with the PET816 board.
*
2010-08-22 Updated the VDC and CPU boards with versions with
better layout and in case of VDC a bug fixed.
*
2010-08-02 Updated the BIOS and CPU boards with versions with
improved timing.
*
2010-04-20 Finally here it is - Part II! I already overhauled the
65816 board and made a second version, based on a CPLD Find it at
the 65816 CPU V2 page.
*
2010-01-01 Finally here it is! I managed to build the 65816 CPU
board for the CS/A65. The CPU runs at 8 MHz and makes a PET real
fast :-)
*
2010-01-06 Updated the power supply board with a version with I2C
master.
*
2010-01-07 Tested the RAMDisk board and found it working in some
configurations.
*
2007-06-29 The Video board page has helper circuits to convert
the output to composite video.
*
2007-06-27 A new version of the Gecko board, including a PET ROM
version using an RS232 interface as editor.
*
2007-06-07 A new SPI page, with a schematics and driver to handle
MMC- (and SD-) Cards.
*
2007-06-03 A new PETIO board revision, which adds a diode for the
WDC65C22's /IRQ output.
*
2007-05-26 A VIA prototyping board to test VIA-related circuits.
*
2007-05-19 Long time waited for - a power supply board (using a
PC power supply as original source): the PWR board.
*
2007-01-02 Added a description of the Caspaer setup.
*
2006-12-30 Added an auxiliary CPU board, to enable paging and
swapping with the 6502!
*
2006-12-16 Added a new working revision of the coprocessor board!
*
2006-12-14 Added a new revision of the SCSI board that now also
includes an I2C controller.
*
2006-12-09 Added a Motivation section. Why do I actually do all
this....? Also tested the PETCPU RS232 interface and added a test
driver for it.
*
2006-11-26 Introduce the DRVIO board with VC1581 compatible disk
and bus interfaces. Add tables with jumper settings for PETCPU.
*
2006-11-23 Added the memory map section to document the different
I/O areas used by the boards.
*
2006-11-01 Added new boards and new revisions of existing boards.
Most notably are the CPU, BIOS, PET CPU, PET I/O and Video
boards.