Lisa (was Re: Olivetti M20)

Don North ak6dn at
Thu Jan 18 00:55:17 CST 2007

Chuck Guzis wrote:
> On 17 Jan 2007 at 11:22, Don North wrote:
>> Lisa (and Macintosh) used the original 68000 which was not capable of
>> recovering from an arbitrary access (page) fault in the middle of an
>> instruction (the updated 68010 fixed this, but Apple never used it).
>> The 68000 did lot leave enough info on the fault stack to indicate
>> which memory access within an instruction faulted, and which registers
>> might have been auto-incremented/decremented.
> Exactly why I said that calling the Lisa architecture "virtual
> memory" is misleading at best. One could not write a loop to move 2
> megabytes using a simple MOVEM/SUBQ/BNE loop as if all of the memory
> were seamlessly continuous and present.
The Lisa memory architecture was demand-segmented, not demand-paged.
It was virtual in the sense that one could pull segments off the disk
on demand, but the mechanism to do this was to use a specific instruction
that was know to be 'well behaved' when it faulted.

A few years earlier Apollo Computer came out with their first system
that employed a 68000 that implemented a full demand paged virtual
memory system. The trick they used was to have two separate 68000
processors, one for the user and the other to service page faults.
When it was determined that the user processor would fault, that
68000 was frozen mid-access, then the system 68000 would service the
fault, fix memory up, and then let the user 68000 continue. Actually
kind of an innovative approach at the time.

I remember going to a tech talk when Apollo came out of 'stealth mode'.
It was in the Wang Computer building in Lowell, MA (next to Chelmsford)
in the company cafeteria. The room was jammed to overflowing with DEC,
DG, Wang, etc engineers all wanting to see and hear how they did it.

> I remember trying to make a list of 68K instructions that could be
> restarted, wondering if it might be possible to construct a useful
> subset. One of the gotchas was that the bus error handling in the
> 68K gave you a P-counter that was only guaranteed to be "in the
> vicinity" of the failing instruction. I gave up after awhile.

More information about the cctech mailing list