mc68010+mc68451 Unix source?

Eric Smith spacewar at gmail.com
Wed Oct 5 03:22:53 CDT 2016


On Tue, Oct 4, 2016 at 4:02 PM, Ken Seefried <seefriek at gmail.com> wrote:
> Dumb question...did the '451 have a mechanism to work around the
> instruction restart issue in the 68000?  Or was there some other way
> that was handled?

The MC68451 was just an MMU. The bus fault problem of the MC68000
can't really be solved by an MMU; solving it in the general case
requires a LOT of external logic, and/or a second MC68000.  The Apple
Lisa solved it in a specialized way by writing the software to never
perform accesses from which bus fault recovery might be needed, except
using a specific instruction which yielded predictable bus fault
results.

The MC68010/012, MC68020, and MC68030 didn't support instruction
restart, but they supported instruction continuation, by having a bus
fault or address error dump a lot of internal processor state onto the
stack (known lovingly as the "stack puke"), and having the RTE
instruction reload it.

IIRC, the MC68040 and MC68060 supported instruction restart.

I once wrote an address error handler for the MC68020 so that I could
execute misaligned code. Very very slowly.


More information about the cctalk mailing list