[Coco] COCO FPGA
Joel Ewy
jcewy at swbell.net
Thu Dec 22 13:19:27 EST 2011
On 12/22/2011 10:56 AM, Tony Cappellini wrote:
> I think the two new coco projects (I forgot the actual names though) are
> quite an accomplishment, and hope to get one myself.
> One limiting factor on these is not having the expansion port. Does anyone
> know if either of these projects intends to add the coco expansion
> port - or better yet- build an MPI right into one of these boards?
>
>
> Thanks
>
I'm not quite sure which two projects you are referring to. Gary
Becker's project is called CoCo3FPGA, and it is available right now. It
works with two different FPGA development boards: the Digilent Spartan
3, and the Altera DE1. I believe that James Daggett has done some work
on implementing the GIME functionality in an FPGA, and Mark McDougall
has implemented a CoCo 1/2 on an FPGA board, but I'm not aware of either
of these having released code, or being available in any other form yet.
CoCo3FPGA uses off-the-shelf FPGA development boards, which makes it
pretty affordable, but means that you have to work with what you get.
On the Spartan 3 board, you need to add a VGA breakout board with some
resistors because the built-in VGA port offers only 1 bit of color per
R,G,B. You also need to build an expansion board if you want to hook up
joysticks. I don't think there is an option for the 40-pin expansion
bus yet.
Here's what the release notes from the latest version says about the
current MPI implementation:
"MPI Slots
The MPI slots have been redefined in this version. The MPI switch is set
using two of the S3 board slide switches.
Slot 4 contains the Disk BASIC ROM.
Slot three contains a multiple cartridge ROM system designed by John at
gimechip.com. The IO locations for slot 3 are used to select the ROM
bank from SRAM.
$FF40 - The lower three bits sets the ROM bank. The same location used
by the super program paks to bank the 16K of the Pak ROM at a time. The
ROM banks are written into the SRAM every 32K. This
allows the super program paks to function, but wastes 16K per bank. A
method of recovering this 16K is explained below. But by using the
larger addressing spacing, it allows program paks that are the maximum
allowable 32K. This location is set to 0 by a system reset.
$FF41 - Not yet implementated.
$FF42 - BANK 0 Flash ROM address. The 2 Meg Flash ROM allows for up to
sixty four 32K ROMs. By setting this location to a value between 0-63,
the upper six address bits for the Flash ROM are set when location $FF40
is set to 0. This location is not cleared with a RESET.
$FF43 - Bank Size latch. Only two bits used.
Bit 0 sets the bank size
0 32K bank size
1 16K bank size
If the CoCo3 is set for a 32K ROM, the 16K bank will be aliased to the
32K size.
Bit 1 is used only if Bit 0 is set to 16K. To recover the unused 16K of
the 32K Flash address
spacing, two 16K program ROMs can occupy a 32K Flash space.
0 Use lower 16K of each 32K Flash space
1 Use upper 16K of each 32K Flash space
$FF44-$FF4A Bank 1through Bank 7 Flash ROM address. Same as $FF42,
except for banks 1-7
The eight 16K banks allows up to 128K ROMs. Software needs to be written
that reads Pak ROMs over DriveWire and stores them into SRAM. If there
is enough FPGA block RAM, the software could be stores in the FPGA. If
not, a standalone program can be loaded from Disk."
JCE
> --
> Coco mailing list
> Coco at maltedmedia.com
> http://five.pairlist.net/mailman/listinfo/coco
>
More information about the Coco
mailing list