Re: Atari + gotek + MAPROM floppy corruption
Posted: 13 Jul 2020 08:35
I certainly wouldn´t rule out the possibility of bugs in maprom. I’ll give this a go when my card arrives :)
Does it help disabling the cache in TOS2.06 ?
TOS2.06 is mostly compatible with a 030 and TT-RAM etc, but as far as I can tell it never flushes the cache like TOS 3.06 does in its floppy code (and in some other non-floppy related code)
At least according to the TOS206/306 sourcecode I have.
I notice I have cache disabled in the TOS2.06 options on my machine running the 534.
Edit: if cache is the issue I believe the issue is probably not caused by TOS being in RAM but rather because 206 doesn't fully support TT-RAM and a CPU with data cache.
Floppy access goes something like this when the destination is outside ST-RAM:
DMA -> FRB (in STRAM) -> cpu copy to actual destination (outside STRAM)
306 correctly flushes the cache after floppy DMA operations but 206 doesn't seem to do so.
Perhaps maprom should patch the 2.06 floppy code to introduce the cache flushes at the same places 3.06 does it.. could be a neat project for someone :)
Or possibly easier, set up the MMU to trigger an exception when 206 reads/writes the FRB? It could then flush the cache before letting it proceed with the FRB<->Fastram copy although I am not certain if this would be enough.
Or it's just bugs in maprom. I'll double check on my machine, and could try if it makes any difference only installing the fastram and leaving TOS in ROM etc.
Does it help disabling the cache in TOS2.06 ?
TOS2.06 is mostly compatible with a 030 and TT-RAM etc, but as far as I can tell it never flushes the cache like TOS 3.06 does in its floppy code (and in some other non-floppy related code)
At least according to the TOS206/306 sourcecode I have.
I notice I have cache disabled in the TOS2.06 options on my machine running the 534.
Edit: if cache is the issue I believe the issue is probably not caused by TOS being in RAM but rather because 206 doesn't fully support TT-RAM and a CPU with data cache.
Floppy access goes something like this when the destination is outside ST-RAM:
DMA -> FRB (in STRAM) -> cpu copy to actual destination (outside STRAM)
306 correctly flushes the cache after floppy DMA operations but 206 doesn't seem to do so.
Perhaps maprom should patch the 2.06 floppy code to introduce the cache flushes at the same places 3.06 does it.. could be a neat project for someone :)
Or possibly easier, set up the MMU to trigger an exception when 206 reads/writes the FRB? It could then flush the cache before letting it proceed with the FRB<->Fastram copy although I am not certain if this would be enough.
Or it's just bugs in maprom. I'll double check on my machine, and could try if it makes any difference only installing the fastram and leaving TOS in ROM etc.