[Coco] "Reading" non-readable bytes with PEEK vs ZBUG
Roger Taylor
operator at coco3.com
Thu Jan 24 21:03:06 EST 2008
At 06:13 PM 1/24/2008, you wrote:
>Roger, regardless of whether a Coco3 has 128K, 512K, or more memory,
>when you send $38-$3F to a GIME MMU register you get the same
>result. If you have only 128 or 512K memory, it does not matter what
>values you give to the two most significant bits because it won't
>change anything regardless what you send to these bits on a Store!
>Those bits are only important with more than 512K RAM when you write
>to them. They are meaningless on a Read regardless of memory present.
>
>That means it does not matter in your program what you are doing
>during a LOADM as long as you don't store a value less than $38 or
>higher than $3F in an MMU register. Depending on the code in your
>program, it may not matter whether you only use MMU values of
>$00-$0F because the net result will can still be the same as long as
>you don't need the full address of the bytes those MMUs control.
>
>If you would post the code you are using during the LOADM (or send
>it by private e-mail) I could show why the results of the survey
>don't matter. In terms of LOADM, the survey of what can or can't be
>read from an MMU register has been pointless except for the
>interesting results caused by "floating" bits in a Coco3 system. By
>the way, you get the same "incorrect" values with a Paul Barton 8Meg
>RAM board installed. Just tested that.
Robert, there's a logic to what I'm doing because of 1) ghosting, 2)
my program will only use 128k of RAM no matter what CoCo it's on, and
3) LOADM should see a %01000000 float or actual (doesn't matter to
me) when it verifies my GIME writes, and 4) I'll reference the same
block #'s in my program by adding %01000000 to the GIME writes.
The actual MMU block # in the entire 2-meg range that is mapped in on
any given CoCo the user has shouldn't matter one bit, as long as I
leave BASIC's area alone, which to the best of my knowledge is
sitting smack dab at "$38-$3F" on any CoCo 3. Anything outside of
that is .... Mine to play with, ghosted or not.
If you see something I don't and want to explain why it's still
working, feel free. I'm quite happy.
org $FFA1
fcb %01000000+$30 switch in block $30 at $2000
fcb %01000000+$31 switch in block $31 at $4000
org $2000 load next data into $2000+
includebin "scrpart1.dat" 1st 16k of a graphics screen
org $FFA1
fcb %01000000+$32 switch in block $30
fcb %01000000+$33 switch in block $30
org $2000 load next data into $2000+
includebin "scrpart2.dat" 2nd 16k of a graphics screen
(slightly less than 16k)
org $FFA1
fcb %01000000+$39 restore MMU
fcb %01000000+$3A these blocks were there for any CoCo 3
org $1000 start of our program code
... everything else
More information about the Coco
mailing list