[Coco] The Continuing Saga of My 6809 Computer
Kip Koon
computerdoc at sc.rr.com
Thu Aug 30 20:57:24 EDT 2012
Hello Everyone,
It's been a little while since I've posted the current events of my 6809
computer, so I thought I'd take some time and let you all know how my little
creation is coming along. If my calculations are correct as Velma would say
in the Scooby Doo cartoons, I believe I can build a 6-chip 6309 based
computer with 512KB of ram running 6809 Extended Basic using all 512KB of
ram and a USB port! That all depends on how quickly I can find a copy of
the actual source code files for Coco 3's Color Basic, Extended Color Basic
and Super Extended Color Basic as detailed in the Unraveled series all nice
and neatly in one massive text file. I've been trying to figure out how to
easily remove the line numbers and object code from the left hand side of
the listings. I heard someone once telling me that he uses Excel for all
his assembler programs. I wonder how that would work. Has anyone actually
entered them into actual computer text files from the pdf documents? I will
of course need to merge them into one large file and then modify the Color
Basic Keyin and outchar routines to use the USB port. I'm replacing the
MC68B50P ACIA and MAX232N chips in Grant Searle's design with a USB
prototype board from FTDI. It's really a cool little board. In a 24-pin
footprint, FTDI has taken their FT245R surface mount USB chip and mounted it
on a little PCB just big enough to accommodate the 24 header pins. After
installing the drivers on the PC and plugging in this little USB prototype
board, the documentation says the PC drivers do all the configuring of the
FT245R chip! The USB prototype board needs only a 1 byte address location
to communicate correctly with the chip which uses an interrupt output line
to inform the MPU when it is time to service the USB chip. Data is read
from and written to the chip through a 256 byte FIFO buffer. It's really a
neat little prototype board! I'd like to get the sources for HDBDOS and
Drivewire only for the express purpose of integrating them in with the
modified version of Coco 3's Super Extended Color Basic Interpreter. I
don't think they would be compatible as they presently are in the rom file
as all the variable locations have changed. The Super Extended Color Basic
Interpreter will have to be modified to remove all the color graphics
routines, and to take advantage of the USB port. I would imagine it will
use my MMU as it is since it's based on the Coco 3's MMU. If I designed the
MMU circuit correctly, the maximum amount of ram I'll be able to use in this
current design will be 2MB. I'd like to include the 2-bits in the $FF9B
register to raise that to 8MB, but I'll need to find a less costly 32MB
static ram chip than the one I found for over $200 and something a pop. I'm
using the CY7C130 Dual-ported Static Ram chip for my Dynamic Address
Translator to enable any Coco 3 software that uses the MMU to function
correctly. It has been suggested that I include a video controller. I
would, but I need to figure out which one I could use. I had looked at
several on my laptop, but that data is gone as the primary hard drive is no
longer recognized when I plug it up with my SATA to USB controller cable.
If anyone is interested in helping me decide which video graphics controller
chip to use that can do excellent VGA graphics, I'd be very much
appreciative. Once that is done, then all the graphics routines would have
to be updated to utilize that chip, I'd love to have the Color back into
the Super Extended Basic Interpreter. All the routines will have to be
updated for the new chip. Since I've changed from using a 6809 to using a
6309, I'd also like to update the entire Basic Interpreter to take advantage
of all of the HD63C09P's capabilities, but that would basically mean a total
rewrite of the entire code base. I figure on using a second USB port for
communication with the Drivewire 4 Server on the PC. Last night, I just
successfully designed and implemented (compiled) my first schematic for the
Xilinx XC9572 PLCC84 CPLD. I let the software pick out which chip it wanted
to use. Thanks goes to everyone for suggesting this idea. My first
schematic for that chip is what I'm calling a 'Simple Address Decoder' since
I'm not including any buffering of any of the MPU lines, yet. The full
schematic with the buffers included requires me to abandon the PLCC form
factor and instead use one of the 100 pin or 160 pin case styles which I do
not yet know of a source for to obtain the adapters needed to mate them with
the breadboard panel, otherwise I would include full buffering on all signal
lines to and from the MPU. It's turning out that the cost for the XC95108
is under $10 from UTSOURCE.NET. I'm also having to order the CY7C130
dual-port static ram chip and the AS6C4008 4Mbit chip for the 512KB of ram
from the same site. I buy 2 of each chip I need so 2 - CY7C130 chips are $8
each, 2 - XC95108 chips are $15 each, and 2 - HD63C09P chips are $5 each.
After I fix my laptop, I'll be ordering these chips to breadboard my design
and then I'll be able to see how well I accomplished my overall goal. I
really like the Xilinx ISE package. It has been an interesting learning
experience. For those of you who are not familiar with the ISE software
package, I drew my schematic directly into the program which then implements
the schematic (as ISE calls the compiling process) to produce the file
needed for the programmer. I'll have to figure out which file that is since
there are a boatload of files generated during the compiling process.
Originally, my ideal design included the buffering of all signals to and
from the MPU, but at 91 pins at last count, I opted for a much simpler
approach for my first 6309 computer. As for software in EPROM, initially
I'll be using SiMON6809 with the 6309 running in 6809 emulation mode.
Eventually, I'd like to use a 6309 monitor program, but I haven't found one
yet and believe me I've killed several hours on the internet looking. If
anyone knows of one or is interested in modifying Simon6809 to become
Simon6309, I'd be very interested in obtaining a copy for this project.
Like I mentioned earlier, I'm thinking about calling this first version the
6-chip 6309 512KB computer with one USB port, which is pretty impressive I
think. I'd also like to include the program to enable Basic to recognize
and use all 512KB of RAM! But hey, one modification at a time. My best
friend back home where I grew up always reminds me to make one change at a
time. J Anybody ever make more than one change at a time to fix a problem
only then to have to go back and figure out where you went wrong with the
fix? I have done it many times. When I first started this project, I was
trying to get a 6802 MPU with a 6846 RIOT chip combo working with 2K of ram
and now I'm actually going to have a 6309 functioning with 512KB of ram in
operation in the very near future. I'm really excited about that. As I'm
still working on saving for a new motherboard to fix my laptop, it will be a
little bit longer before I can begin to buy and breadboard this little
Mighty computer. Man, I love this stuff! So, to recap, I'll be using an
HD63C09P MPU chip running at 14.3181818MHZ divided by 4 internally, an
XC9572 or XC95108 PLCC84 CPLD for the Simple Address Decoder, a CY7C130
Dual-ported Static Ram chip for the Dynamic Address Translator, an AS6C4008
4Mbit (512KB x 8) static ram chip, and a 27C256 32KB EPROM programmed with
an initialization routine for the MMU circuitry and then a modified version
of Grant Searle's 6809 Extended Basic using a USB port instead of an ACIA
chip for communication with the PC. For software, I'll be using the
SiMON6809 rom monitor (as it already is programmed to use the FT245R USB
chip for communication all programmed into the same EPROM. I'll use a dip
switch to choose which one I use on powering up. Well, please excuse the
long windedness of this email. Once I get started on a favorite topic, I
can really keep on going with it. Anyhow, you all take care and have fun
'09ing!
Kip
More information about the Coco
mailing list