On Sat, 16 Mar 2013 11:16:42 -0500, Dave Park wrote:

> Hi all,
> 
> It's been mentioned that vanilla QDOS/Minerva doesn't run happily on
> 68EC020 due to CPU differences. The GC/SGC copies and patches the OS to
> work with the EC020 CPU, and to relocate certain resources.
> 
> My questions are: what are the differences?

For all 680x0 CPUs above the 68000/8 (ie. for 68010/012/020/030/040/060s),
the MOVE from SR instruction is priviledged while it is not for the
68000/8. This is the usual cause of incompatibilities for software
written for the 68000 and ran on a newer processors.

You therefore have to patch those pieces of software to invoke the MOVE
from SR instruction only from supervisor mode.

There's also the VBR but it should be initialized to 0 on reset, so
this should not cause an incompatibility. With the VBR, however, you
can move the exception vectors (which are normally held in ROM, at
address 0 ownwards) to RAM (in the SGC example, this is probably what
happens: it might change the VBR to point to the start of the patched
QDOS/Minerva copy in RAM, with modified vectors pointing to the patched
exception handlers).

Thierry.
_______________________________________________
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm

Reply via email to