From: utzoo!decvax!decwrl!sun!pugs
Newsgroups: net.micro.68k
Title: Problem with Virtual Machines on the 68010
Article-I.D.: sun.214
Posted: Mon Mar 14 23:47:03 1983
Received: Fri Mar 18 02:28:55 1983
References: tekmdp.1837

The 68010 solves the virtual machines problems of the 68000, but introduces
a new one of its own.  The stack for a bus error now includes numerous words
of "internal state information" will allows the 68010 to resume (via RTE)
instructions which are interrupted due to bus errors (e.g., page faults).
If a virtual 68010 is to be possible and reliable, there must be some way
for a virtual machine monitor to implement a virtual RTE instruction.
The problem is that the internal state information on the bus error stack
is undocumented and thus cannot be validated or translated on the way
from the virtual machine to the real machine. 
For instance, a virtual machine may have total garbage on its stack 
and then execute a RTE -- if this garbage is passed on to the real
machine it may wreak havoc, but there is no way to tell if it's garbage or not.
If the long format RTEs are not implemented by the virtual machine monitor
then there is no way to pass virtual bus errors to the virtual machine.

The sneaky way around this problem is to run virtual 68000s, not 68010s,
because the 68000 does not have the long format RTEs.  Unfortunately,
those of you who wanted to debug your virtual machine operating systems under
a virtual machine are out of luck.  Motorola has been told about this
problem, but it's a little late for a good fix.  Hopefully, they can be
persuaded to document the internal state, although even so it may be too
complex to consider validating in software.

					Tom Lyon
					sun!pugs