ChaosLord wrote:
It sounds like you are saying your code will fail on any 060 or 040 that does not have an MMU.
Yes! Let me read you a paragraph from Amiga Mail dated Nov/Dec 1992 Titled "The 68030 and 68040 on the Zorro III Bus" by Michael Sinz...
"As the 68040.library requires an MMU to map address space, the fix described above will not work on systems with a MC68EC040. Because burst mode on the 68040 is activated along with the cache, there is no way to prevent a 68EC040-equipped Amiga from doing full line bursts when accessing cachable address space. This means a 68EC040 cannot prevent the excessive reads and writes when reading non-cachable ZorroIII devices that reside in cachable address space. A 68EC040-equipped Amiga will experience a significant decrease in performance when accessing non-cachable Zorro III devices. For this reason we cannot recommend that anyone use a 68EC040 (or any future 68000 series CPU that has no MMU) as the CPU on a Zorro III bus system."
So, CopyMem060 is dangerous to use on the 68040 or 68060 without MMU unless all the caches are left off (default after reset). The MMU needs to map memory so bursts do not occur to certain areas of memory. After that, the CPU is smart enough not to burst into those areas of memory. This is all done by the 68060.library when the setpatch command is run in the S:Startup-Sequence. Using move16 is no more dangerous than turning on the caches in a 68040 or 68060 without the MMU setup properly and nobody in their right mind would run with the caches off. All of this does NOT apply to an emulated 68040 or 68060.