Lisa (was Re: Olivetti M20)
cclist at sydex.com
Wed Jan 17 13:57:34 CST 2007
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.
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.
Of course, it wasn't necessary to implement virtual memory in
hardware. JRT Pascal did it--on floppy yet. (an interesting aspect
of an otherwise miserable product).
> On the Lisa all accesses to memory that was not previously known
> to be memory resident used a probe instruction (a TST.W (A0), IIRC)
> that only did one memory access and did not alter the registers.
> Lisa was a segmented memory architecture, not demand paged, so the
> overhead was not too great. Stack extension also used this probe IIRC.
More information about the cctech