[Coco] FW: My 6809 Computer is Working!

Kip Koon computerdoc at sc.rr.com
Wed Jul 25 21:59:03 EDT 2012


John,

 

Thank you so much for your suggestions.  I was concerned about the ACIA
being so low in memory also made me think a about it before I built it.
Since I had never built an 8-bit 6809 computer from scratch before and this
one had been designed and built with a nongraphic version of Tandy's
Extended Color Basic in it that was the clincher.  I cut my post college
computer learning years on Tandy's Color Computers.  At one time I had a
Coco1, 2 and 3 with 4 floppy drives and a 20BM MFM hard drive too.  I
thoroughly enjoyed that computer.  So to make a long story short, I figured
I could alter the placement of the I/O later once I get my proverbial tooth
cut building Grant's 6-chip 6809 computer to the $FFxx region.  

 

In my next project I'll be building SiMon6809 which has a USB port placed at
$D000 which for me is still too low.  The link to Simon6809 appears below:

 

http://www.8bitforce.com/simon6809/

 

But after it is working , I'll be moving that USB port up to the $FFxx
region or maybe the $Exxx like SWTPC computers.  I'm not sure yet. Maybe
eventually I could create a dual memory map version.  That could be a very
interesting but complex learning experience.  I'd definitely create some
more wrinkles in my brain working on it. J I'm waiting on some supplies, so
it could be a little while.  In the meantime, I'll be brushing up on my
decoding logic as it applies to 8-bit microprocessor applications.  This is
so much fun.  The modern chips we have available make implementation so much
nicer.  

 

I have never used Flex9 or even 6800 Flex, so I never really considered it.
I'll have to look into it.  I'd like to upgrade the next version with a DMA
Floppy disk controller so I can run disk-based OSs Flex, OS-9 and NitrOS-9
and Uniflex.  I'm game for it all.  It will be like old times, but better.
Isn't dreaming FUN?!  Let me go for now.  I'll keep you all up to date as
things progress.

 

Kip

 

-----Original Message-----
From: coco-bounces at maltedmedia.com [mailto:coco-bounces at maltedmedia.com] On
Behalf Of John Kent
Sent: Tuesday, July 24, 2012 8:17 AM
To: CoCoList for Color Computer Enthusiasts
Subject: Re: [Coco] FW: My 6809 Computer is Working!

 

 

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 < <mailto:computerdoc at sc.rr.com>
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

>>  <mailto:Coco at maltedmedia.com> Coco at maltedmedia.com

>>  <http://five.pairlist.net/mailman/listinfo/coco>
http://five.pairlist.net/mailman/listinfo/coco

>> 

> --

> Coco mailing list

>  <mailto:Coco at maltedmedia.com> Coco at maltedmedia.com

>  <http://five.pairlist.net/mailman/listinfo/coco>
http://five.pairlist.net/mailman/listinfo/coco

> 

 

--

 <http://www.johnkent.com.au> http://www.johnkent.com.au

 <http://members.optusnet.com.au/jekent>
http://members.optusnet.com.au/jekent

 

 

 

--

Coco mailing list

 <mailto:Coco at maltedmedia.com> Coco at maltedmedia.com

 <http://five.pairlist.net/mailman/listinfo/coco>
http://five.pairlist.net/mailman/listinfo/coco

 




More information about the Coco mailing list