[Coco] Undefined bits, was:CoCo 3 MMU test for all
6809er at bjork-huffman.net
Mon Jan 21 12:53:01 EST 2008
The main reason that the two high bits return different values is
because those bit are floating on the data bus.
On all reads, the data bus is in TRI-state and its up the i/o or
memory to place its data on the bus. If no data is placed then the
CPU will read noise.
Most of the time the noise on the data bus is whatever the data was
there from the cycle before.
As you pointed out art, the LDA 0,X and the LDA ,X are different 6809
instructions with different value for the addressing mode.
But this does not account to different values for bits 6 and 7.
The ,X has a binary pattern of %10000100 and 0,X the binary pattern
is %0000000. Only bit that changes is bit 7 in the addressing mode
but its bit 6 that that changes in the two reading of $7x and $3x.
I think there is something else (like the micro-code of the 6809)
creating the noise on the bits.
Roger, this is a mute point anyway because they are undefined bits of
data and should be ignored.
At 01:14 AM 1/21/2008, you wrote:
>Roger, the value you get from reading an MMU address depends on
>exactly HOW you
>read it, I discovered some years back. This arose when I noticed
>that the value
>I got from PEEK differed from the value returned by the MON function
>in ADOS (ML
>monitor). I traced this to the fact that PEEK used something like
>LDA 0,X while
>MON used LDA ,X. The different postbyte affected whether I got $7x (PEEK) vs.
>$3x (MON). So, I think asking people to PEEK an MMU address and report the
>results will give you a somewhat misleading impression.
More information about the Coco