[Coco] Coco 3 Memory Map Questions
Dave Philipsen
dave at davebiz.com
Thu Feb 11 17:00:25 EST 2016
On 2/11/2016 12:13 PM, Darren A wrote:
> On Thu, Feb 11, 2016 at 10:51 AM, Dave Philipsen wrote:
>
>> I would have to agree with Darren. However, since the chip select of the
>> ROM is controlled by the GIME it is possible (although not likely) that the
>> GIME could cause something other than the ROM contents at 7FFx to show up
>> when the CPU addresses FFFx.
>
>
> The GIME, through control of the ROM's chip select, obviously determines
> which addresses the ROM will respond to. It cannot however alter the
> address being presented to the ROM on A0-A14. To map a CPU access of $FFFx
> to the $BFFx locations ($3FFx inside the ROM) the A14 address line would
> need to be inverted. There is nothing on the address bus between the CPU
> and the ROM to do this.
And it's not necessary to explain in more detail since I do agree with you.
>
> It is possible for the GIME to map the vectors to $7FFx, but that is not
> what we are talking about.
I understand that's not specifically what was being discussed but I
decided to throw that out there as a possibility although very remote.
Another possibility (also very very remote but still within the realm of
possibility) is this:
The GIME chip has access to the address lines, the data lines, and the
reset line. We assume that the address lines and the reset are merely
inputs to the GIME. But the GIME could sense when the 6809 goes into
reset on the falling edge of the signal and then hold the CPU in reset
for a longer period of time. This is how some CPU monitor chips like
the DS1232 work. It's true that the schematic seems to indicate that
the reset signal is an input to the GIME but let's assume that the GIME
can also drive that pin low if it wants to. The GIME has the master
clock signal so it can count down a specific delay if it wants to. Now
during the time that the CPU is being held in reset suppose that the
GIME chip puts addresses out on the address lines and reads data on the
data lines from the ROM (yes, I know it's a long stretch and very very
unlikely). So the GIME could feasibly read the reset vectors out of any
particular area of the ROM it wanted to (maybe $3FFx???) and then it
could store the data in some internal (volatile) registers. Now when
the CPU finally comes out of reset some microseconds later because the
GIME has released its evil grip....the CPU proceeds to set up the
address lines to read the reset vector at $FFFx. The GIME sees this
address on the address lines and instead of exerting the chip select for
the ROM it now fetches the data from its internal registers and puts
that out on the data lines.
Now I am not even remotely suggesting that this is what happens. I'm
just pointing out that it is not 100% impossible for the reset vectors
to be stored at $3FFx in the ROM. It *is* in the realm of possibility.
If I had an FPGA wired up to a 6809 just like the GIME is wired to the
6809 I can almost guarantee you it could be done (as long as the FPGA
had 5v I/O).
Dave (thinking outside of the box mode)
>
> - Darren
>
More information about the Coco
mailing list