[Coco] "Reading" non-readable bytes with PEEK vs ZBUG

Arthur Flexser flexser at fiu.edu
Tue Jan 22 17:12:25 EST 2008


Interesting results.  Just to clarify, these results are 100% reproducable from
one trial to the next right, so we're not talking about any sort of random
fluctuations?

Art


On Tue, 22 Jan 2008, Robert Gault wrote:

> The last message in the original thread suggested that ZBUG (or EDTASM) 
> might have introduced errors in reading non or partially readable bytes 
> such as the MMUs. That does not seem to be the case as you can see from 
> the following test.
> 
> Source code
>                org $E00
>                rmb  2
>         start  ldx #$FFA0
> E6 00         ldb  0,x
> A6 84         lda   ,x
> FD 0E 00      std  $E00
>                rts
>                end  start
> 
> This was assembled and run from Basic, not used under EDTASM control.
> 
> Results
> ?PEEK(&HE00)
> 248                ie. $F8
> ?PEEK(&HE01)
> 56                 ie. $38
> 
> Source code #2
>                org $E00
>                rmb  2
>         start  ldx #$FFA0
> E6 84         ldb   ,x
> A6 84         lda   ,x
> FD 0E 00      std  $E00
>                rts
>                end  start
> 
> Results
> ?PEEK(&HE00)
> 248                ie. $F8
> ?PEEK(&HE01)
> 184                ie. $B8
> 
> Source code #3
>                org $E00
>                rmb  2
>         start  ldx #$FFA0
> E6 00         ldb  0,x
> A6 84         lda   ,x
> 12            nop
> FD 0E 00      std  $E00
>                rts
>                end  start
> 
> Results
> ?PEEK(&HE00)
> 56                 ie. $38
> ?PEEK(&HE01)
> 56                 ie. $38
> 
>   EDTASM does generate correct code or very few if any of our assembled 
> programs would run correctly. The above was run from Basic so ZBUG was 
> not involved. The results were changed by both the byte preceding the 
> Load instruction and that following the Load instruction. In fact, ex. 
> #3 had both preceding Loads changed by the first post byte.
>   It is a good thing that this only happens when reading non or 
> partially readable bytes or one could not write code using the 6809/6309 
> cpu.
> 
> What this means I'll leave up to the hardware guys. Note that the msn 
> gets changed but not the lsn of the info read from $FFA0. Installed 
> memory for the tested Coco is 512K so $FFA0 bits 6&7 are not meaningful. 
> Above we have seen these bits filled in with 11, 10, and 00. There 
> probably is code that sees the bits filled with 01.
> 
> --
> Coco mailing list
> Coco at maltedmedia.com
> http://five.pairlist.net/mailman/listinfo/coco
> 




More information about the Coco mailing list