[Coco] FW: My 6809 Computer is Working!

Kip Koon computerdoc at sc.rr.com
Sun Jul 22 01:24:09 EDT 2012


Hello Everybody,

 

I'd like to report that I finally got Grant's 6-chip 6809 computer working!
It is so wonderful to actually build your own computer from scratch and see
your creation come to life and display "Hello World" which is actually the
first program I typed in. J  It's kind of tradition anyway.  I've seen
several small microprocessor projects on the internet being demoed with the
standard "Hello World" message.  It was my first C++ program years ago
anyway.

 

I built the first version of my 6809 computer exactly like Grant's 6-chip
6809 computer with exactly the same memory map as shown below. It has 32KB
of ram at $0000 to $7FFF with the 16KB eprom at $C000 to $FFFF programmed
with Grant's 6809 Extended Basic.  The Basic Interpreter actually starts at
$DB00, so there is a lot of empty eprom space leftover for some type of
monitor - 6.75KB I believe.

 

The initial memory map is as follows:

 

$0000

   |          32KB RAM

$7FFF

$8000

    |          8KB Unused

$9FFF

$A000    

    |          8KB I/O Space: MC68B50 ACIA chip is addressed at $A000-$A001
(Address Bus is not fully decoded.  The ACIA appears throughout the
$A000-$BFFF address space.)

$BFFF

$C000

    |          16KB EPROM programmed with 6809 Extended Basic beginning at
$DB00.

$FFFF

 

Well the obvious next step is to extend the ram up to the indicated $9FFF
limit in the design.  So I did!  I had a small supply of 32KB ram chips I
had robbed from an old 486 motherboard not knowing at the time that they
were 32KB ram chips.  Was I surprised when I looked them up on the internet.
I used one for the initial 32KB of ram and added a second one at $8000 -
$9FFF for another 8KB of ram.  Obviously I just used part of the second 32KB
ram chip.  Later on, I plan to use more after I rearrange the I/O space. Now
my little 6809 computer has 40KB of ram space located from $0000-$9FFF!  So
the memory map is modified as follows:

 

$0000

   |          40KB RAM

$9FFF

$A000

    |          8KB I/O Space: MC68B50 ACIA chip is addressed at $A000-$A001
(Address Bus is not fully decoded.  The ACIA appears throughout the
$A000-$BFFF address space.)

$BFFF                                    

$C000

    |          16KB EPROM programmed with 6809 Extended Basic beginning at
$DB00.

$FFFF

 

Then I added an MC68B21 PIA chip decoded to $A004 - $A007 and connected an
AY-3-8910 Programmable Sound Generator Chip to the two ports of the PIA
chip.  I was having some problems with the initial testing of the PIA so I
added two SN74LS244 Octal buffer chips each one connected to 8 LEDs one to
each port of the PIA so I could see what the two PIA ports were doing.
Well, every time I pressed the reset push button, the LEDS changed!  I
hadn't even written any code what so ever nor did any exist in the eprom, so
I knew something was wrong!  As you all might have guessed I had not fully
decoded the PIA chip to just the $A000-$BFFF address range yet!  I had just
decoded A3 - A0 address lines.  A15 - A4 were never used.  No wonder the PIA
wouldn't work correctly!  I couldn't hardly believe I had made such a gross
mistake.  Therefore, the PIA chip appeared everywhere in the 64KB address
space.  The funny and most interesting part was, the 6809 Extended Basic
still functioned perfectly!  WOW!  So now the memory map is updated thusly:

 

$0000

   |          40KB RAM

$9FFF

$A000

    |          8KB I/O Space: MC68B50 ACIA chip is addressed at $A000-$A001
(Address Bus is not fully decoded.  The ACIA appears throughout the
$A000-$BFFF address space.)

$BFFF                                    MC68B21 PIA chip is addressed at
$A004-$A007 (Address bus is definitely NOT fully decoded, yet.  It appears
everywhere.  Oops.)

$C000

    |          16KB EPROM programmed with 6809 Extended Basic beginning at
$DB00.

$FFFF

 

Although I can use the 6809 Extended Basic, I have yet to see the power on
boot up message.  I have to press reset a couple of times before I see the
OK message prompt.  Can Anyone tell me why?  I think a capacitor is missing
between the reset button and ground, and if so I need a value for the cap.
I've tried several resister values a 100uf and 0.1uf capacitor values but
nothing has worked so far regarding power on reset working correctly.  The
schematic for the initial version of Grant's 6-chip 6809 computer is
attached as a .png file.  This is the schematic I started my project with.
I will eventually be adding my additions to a new version of the schematic.
I'm just not sure yet what I'll use to draw the schematic with.

 

I just received some more hook-up wire so I'll be fixing the addressing
problem with the PIA.  After that, testing the PIA chip should be easy.

 

My next addition which I am in the middle of adding to my 6809 computer is a
UM245R USB Prototype board from FTDI.  Since the FT245R chip is a ssop, they
put it on a PCB with 24 legs so it will fit on a breadboard prototyping
design layout just like a real 24-pin chip.  I love it!  As soon as it is
hooked up, I will be programming an eprom with the Simon6809 monitor
program.   Simon6809 communicates with the host PC through - you guessed it
- the USB port!  I can hardly wait to see that working!  You can google
"Simon6809" for further information if you're interested.  

 

That's all for now with the continuing saga of my Home Brewed 6809 computer.
My little baby is growing.  It's so exciting!  Take care everyone.

 

Kip

 




More information about the Coco mailing list