Path: utzoo!attcan!uunet!portal!cup.portal.com!thad
From: thad@cup.portal.com
Newsgroups: comp.sys.m68k
Subject: Re: 68020 in a *68010* socket?
Message-ID: <6276@cup.portal.com>
Date: 6 Jun 88 00:40:43 GMT
References: <17206@gatech.edu> <10123@mcdchg.UUCP> <17479@glacier.STANFORD.EDU>
Organization: The Portal System (TM)
Lines: 67
XPortal-User-Id: 1.1001.2826
Why do you feel there's such a software incompatibility between the various
680x0 processors?
I've been operating 68000, 68010 and 68020/68881 combinations in my Amigas
for over two years now with impugnity.
There are fewer than 10 commercial software products (of the more than 700+
available), and fewer than five public domain (of the thousands available)
that don't function properly on the '020 Amigas, and the reason are simple:
1. Some earlier commercial software releases were produced using a
C compiler that generated (or whose library utilized) the dreaded
`MOVE SR,' instruction. Fixes for this are distributed by
Motorola (as described in App Notes, etc.) and are also user-
installable by running the DeciGEL program in the background (this
program traps privilege violations, examines the opcode at the
offending location, and patches it to be MOVE CCR, then re-executes
the instruction)
2. self-modifying code (which wreaks havoc with the '020 when the
instruction cache is enabled).
Both the problems above are due to software producers who chose to ignore
Amiga programming guidelines issued in May 1985
The Amiga's OS has supported all 680x0 variants since 1986 (with release 1.2),
and it automatically enables the 020's cache if an '020 is detected upon system
boot and startup.
The Amiga OS release 1.3 automatically vectors to a 68881 if one is present,
thus permitting all existing programs the use of the math chip.
Guidelines for implementing compatibility are available from Motorola who
claims, in their App Notes, that any operating system can be fixed in just
a matter of hours (ref: Motorola's MICRO MINUTES MM-444-02).
As a matter of interest, the 68030/68882 combination also operates fine
on the Amiga. Products (e.g. piggyback *AND* plug-in boards) exist
commercially today. Several manufacturers' boards (both '020 and '030) were
demonstrated and available for purchase recently at the Santa Clara Convention
Center, and one or two different types are usually shown in the Hacker's
Kitchen room during the FAUG (First Amiga Users' Group) meetings at the Palo
Alto Hyatt Hotel (about 1,000 members usually in attendance, along with a
wet bar! :-) whose next meeting is this Tuesday, June 7, at 7PM. You're
welcome to attend.
Finally, attempting to "shoe-horn" a 68020 into an 68000-size package is not
reasonable, since you'd lose the 32-bit wide data path and other niceties of
the 68020's design. Piggyback adapter cards permitting an '020 to be used
as a replacement for an '000 or '010 are readily available at 'reasonable'
cost.
Without wishing to start another "my computer is better than yours" debate,
I respectfully suggest that you express your concerns to the manufacturer
of your computer system and to the software producers.
There is NO need to produce multiple versions, packaging, etc. of commercial
software releases IF the system software and hardware was thoughtfully and
intelligently designed and implemented. One example: on the Amiga, the
user's tasks and processes run non-privileged; if they NEED the processor's
condition codes, a system call (GetCC() for C, JSR _LVOGetCC(A6) for assembler)
provides the codes in a processor-indepedent manner.
The MC68000 has been "out" since 1978, and the 68010 and 68020 were not
exactly born yesterday. These issues have been understood and addressed
years ago, so I'm sorry to hear you are burdened with a system that doesn't
permit expansion flexibility and processor upgrade.