[comp.sys.mac] Is there a way to turn the 68020 instruction cache off?

martyl@bucket.UUCP (Marty Lee) (11/02/87)

The November issue of Macworld talks about Mac II compatibility with various
software packages and lightly goes over some of the reasons for incompatibilities.
One of the reasons is the 68020 and its instruction cache.  If the program
self modifies code then a crash is in the making.  Seem to me I read some where
that the new Atari and the Amiga have ways of turning the instruction cache off.
Would the same be applicable to the Mac II?

I also would like to start a dialog going among other Mac II owners about
which applications, games and programs work on the II.  I have a high horse
power machine sitting on my desk with no software that takes advantage of the 
68020 or the color capabilities.

Thanks in advance,




-- 
tektronix!reed!omen!bucket!martyl  (Marty Lee)

tom@iconsys.UUCP (Tom Kimpton) (11/03/87)

In article <572@bucket.UUCP> martyl@bucket.UUCP (Marty Lee) writes:
>
>The November issue of Macworld talks about Mac II compatibility with various
>software packages and lightly goes over some of the reasons for incompatibilities.
>One of the reasons is the 68020 and its instruction cache.  If the program
>self modifies code then a crash is in the making.  Seem to me I read some where
>that the new Atari and the Amiga have ways of turning the instruction cache off.
>Would the same be applicable to the Mac II?

From the Motorola '020 book 2nd edition p. p 7-3:
"7.1.2.2 E-ENABLE CACHE.  The cache enable function is necessary
for system debug and emulation.  This bit allows the designer
to operate the processor with the cache disabled.  Clearing this
bit will disable the cache (force continuous misses, and suppress
fills) and force the processor to always access external memory.
The cache will remain disabled as long as this bit is cleared.
The user must set this bit, which is automatically cleared whenever
the processor is reset, to enable the cache."


If the cache is indeed enabled at all, the following will disable the
cache:

	clr.l	%d0
	movec	%d0,%cacr
or however your assembler syntax works.  This (movec) is a privileged
instruction.  I believe that Mac's operate in supervisor mode, so
this wouldn't be any problem.  However, I am sure that A/UX will
have user tasks running non-supervisor, and kernel in supervisor.
Making a poor assumption that A/UX will use a lot of the ROM routines
in it, I would bet that there are already ROM routines available
to take care of '020, '881, and '851 processor configuration.
Not having a Mac II I can't say for sure what it's normal mode is.
-- 
Tom Kimpton		    {ihnp4,uunet}!iconsys!tom
Icon International, Inc.    {ihnp4,psivax}!nrcvax!nrc-ut!iconsys!tom
Orem, Utah 84058	    ARPANET: icon%byuadam.bitnet@wiscvm.wisc.edu
(801) 225-6888		    BITNET: icon%byuadam.bitnet