[Coco] FW: My 6809 Computer is Working!

John Kent jekent at optusnet.com.au
Tue Jul 24 08:16:57 EDT 2012


Kip,

You could add a floppy disk controller to it.
I tend to follow the South West Technical Products Computer 6809 memory 
map in my FPGA designs as it allows for more contiguous RAM.
The SWTPc has RAM mapped from $0000 to $DFFF, giving 56K of RAM.
$E000 - $EFFF is used for I/O. Typically I/O is mapped in 10 x 16 bytes 
slots.
They have 10 slots because they use a decade decoder (74LS42 ?)
$F000 - $F7FF can be used for EPROM such as one of the OS9 boot ROMs.
It can also be used for a DMA Floppy disk controller.
$F800 - $FFFF is used for a Boot ROM, such as SBUG.
It's also used for an OS9 boot ROM if you want to run OS9.
Some of the SWTPC boards use a 16 byte write only register file mapped 
at $FFF0 to $FFFF to map in up to 1MB of RAM in 4Kbyte blocks. The extra 
memory can be used for running OS9 level 2 if you can get hold of it or 
UniFlex, although that might need a DMA Floppy disk controller.

The SWTPc memory map is more intended for running the Flex disk 
operating system, so that things like BASIC and so on can be loaded off 
floppy disk into memory.
I'm not sure if it's possible to design a hybrid SWTPc that also 
supports CoCo hardware as well.

Kip, you'd be better off using $E000 for I/O rather than $A000 as that 
would give you more continuous RAM.
On the SWTPC Flex9 sits at $C000 - $DFFF where you have the ROMed Basic 
interpreter. If you have that as RAM, you might be able to read the 
BASIC ROM from an I/O location and copy it into RAM. You could have two 
8 bit latches/ D flip flops (74LS374s)  at an I/O location somewhere 
that you write the address to and read the contents of the ROM back and 
write it into RAM.

To run Flex9 you need a floppy disk controller (or an IDE drive) a 6850 
ACIA at $E000-$E00F and that's about it. There is a lot for free Flex9 
software out there.

It's a bit off the topic for the CoCo list sorry. A CoCo 1 or 2 wouldn't 
be too hard to build. the 32K SRAM chips out of a 486 cache have a 20 - 
25nsec access time, so you wouldn't need a SAM to interleave the CPU 
with the VDG for video accesses.

John.

On 23/07/2012 11:26 AM, Juan Castro wrote:
> Suggestion: external clock circuitry so the much more ubiquitous 6809E can
> be used. (If the lack of MRDY won't screw up with your multiprocessing
> ideas.)
>
> Juan
>
> On Sun, Jul 22, 2012 at 2:24 AM, Kip Koon <computerdoc at sc.rr.com> wrote:
>
>> 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
>>
>>
>>
>>
>> --
>> Coco mailing list
>> Coco at maltedmedia.com
>> http://five.pairlist.net/mailman/listinfo/coco
>>
> --
> Coco mailing list
> Coco at maltedmedia.com
> http://five.pairlist.net/mailman/listinfo/coco
>

-- 
http://www.johnkent.com.au
http://members.optusnet.com.au/jekent





More information about the Coco mailing list