[Coco] values other than 0 or 1 for byte 14 of decb dir entry

Arthur Flexser flexser at fiu.edu
Mon Mar 26 22:00:47 EDT 2012


Robert, here's a message I posted to the list in April 2004 (seemed
much more recent), and to which you replied confirming my results
about what happens when you move ROM segments around by changing MMU
values:

==================================
In response to some questions that arose in an off-list discussion
involving Boisy and others, here's what happens as a result of moving ROM
segments around, according to some old notes I dug up, where all MMU pokes
are done in ROM mode:

MMU location    Value          Segment moved                 Destination

$FFA0         $3C or $3D      I0  ($8000 Extend. Bas.)          $0000
             $3E or $3F      E0  ($C000 External ROM)

$FFA1         $3C or $3D      I1  ($A000 Color Bas.)            $2000
             $3E or $3F      E1  ($E000 External ROM)

$FFA2         $3C or $3D      I2  ($C000 Int. Basic patcher)    $4000
             $3E or $3F      E0  ($C000 External ROM)

$FFA3         $3C or $3D      I3  ($E000 Int. Basic patcher)    $6000
             $3E or $3F      E1  ($E000 External ROM)


I haven't actually verified the $FFA0 results, but inferred them from the
pattern of the others.

Art

Robert Gault robert.gault at worldnet.att.net
4/25/04 to CoCoList

Good work Art!

I finally got my test code straightened out and can comfirm your
results. On my system, it does not matter whether the MMU is poked in
RAM or ROM mode. This pattern extends through all 16 MMU registers.

==================================

So, applying this information to the CoCo Max 3 situation:

The original code resulted in moving the second half of the external
ROM ($E000 and up) to $6000.  With an 8K ROM, this would move a
ghosted copy of Disk Basic there.
There appears to be no way with a 16K EPROM to move the correct bottom
half of the external ROM to $6000;  you have to move it to an
even-numbered segment of memory:
$0000, $4000, or $8000.  So I patched the code so that Disk Basic got
moved to $8000 instead to obtain compatibility with Extended ADOS-3.
After which CoCo Max 3 copies it to $C000-DD00 in some new segment
that has been switched in at $7C000 by the initial STA $FFA6

Art



More information about the Coco mailing list