[Coco] 6809 / General CPU question

Stephen H. Fischer SFischer1 at Mindspring.com
Sat Feb 19 19:52:35 EST 2011


If I remember correctly, the first thing that ROM does is to copy the ROM 
addresses to RAM and switch the RAM into the previously ROM occupied 


----- Original Message ----- 
From: "Mike Rowen" <mike at bcmr3.net>
To: "CoCoList for Color Computer Enthusiasts" <coco at maltedmedia.com>
Sent: Saturday, February 19, 2011 3:46 PM
Subject: Re: [Coco] 6809 / General CPU question

> Thanks everyone for your responses. Ok, so whenever the CPU powers on  or 
> experiences a RESET inturrupt, the CPU will read the contents of  FFFE & 
> FFFF and load it into the program counter register. It then  fetches 
> instructions from that location. Presumably this would be a  location in 
> ROM.
> How does an address get into FFFE & FFFF when the system is  initialized? 
> Is this through hardware? Are these RAM locations?
> On Feb 19, 2011, at 11:43 AM, Steve Bjork <6809er at srbsoftware.com>  wrote:
>> In the era of the 6809, it was up to the circuit designer to hold  the 
>> reset line of the CPU low till the system was stable. Not only  did the 
>> power have to be stable but the other chips and circuits  need to ready 
>> for the CPU to do its work.
>> Some CPUs would just start running at address zero but the 68XX type  of 
>> chips would use the Reset Vector (store at address $FFFF) as the 
>> location to start with.  The 6809 would also turns off its ability  to 
>> service interrupts so the hardware and RAM can be initialize so  the 
>> system will run correctly.
>> The 6809 was design that the RESET line as cold (power on) reset.   The 
>> CoCo design takes this one step further by using the Reset Line  as both 
>> cold and warm reset.  Since the memory is fill with random   data with 
>> power on (cold) reset code looks at a byte in memory to  decide if it 
>> should do a cold or warm restart.  If byte at $71 hold  the value of $55 
>> then it will attempt a warm reset else it will do a  cold reset 
>> initialize the computer's memory with all the stuff  needed for BASIC to 
>> run.
>> As I said, the reset code will attempt a warm start. The next step  is 
>> for the code to grab the warm reset vector at $72.  But before  the code 
>> starts at the new address, it must make sure the code  starts with a NOP 
>> ($12) instruction to verify this is good code and  the vector is not 
>> pointing to random address.
>> The bottom line is the CoCo always does a power on reset whenever  the 
>> Reset Line is activated, be it power on or someone hitting the  reset 
>> button.  Its the power-up/reset code and the status of $71  (Reset Flag) 
>> / $72 (Vector address) controls what it should do.
>> Steve (Zaxxon) Bjork
>> On 2/19/2011 4:59 AM, Mike Rowen wrote:
>>> Basic theory question here. When a 6809 is powered up, does it 
>>> automatically
>>> begin fetching instructions at a specific location? I have been  looking
>>> through some books, but I have yet to find any document that  describes 
>>> the
>>> boot process from the CPU perspective.
>>> Regards,
>>> -Mike

More information about the Coco mailing list