[Coco] Undefined bits, was:CoCo 3 MMU test for all

Steve Bjork 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.

Steve

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.
>
>Art




More information about the Coco mailing list