[comp.sys.atari.st] virtual memory support on the TT

seimet@rhrk.uni-kl.de (Uwe Seimet [Chemie]) (05/22/91)

Re: virtual memory management on the TT

As you are probably aware the TT because of its 68030 is capable
of virtual memory management. This applies not only for UNIX but
is also possible with TOS.
If you don't want your programs to interfere with software that
allows virtual memory in case of a buserror you have to test
if an error occured because of an invalid page or table descriptor
or if it is a "real" error which means that you can supply your
own buserr routine.
(Of course, programs which don't manipulate the buserr vector
don't have to worry about this.)

All future buserror handlers are recommended to look like
the following example:

-----------------------------------------------------------

    tst.b ttflg
    beq nott              ;makes no sense on an ST
    ptestr #7,[16(sp)],#7 ;test descriptor
    pmove psr,status      ;get mmu status
    btst #2,status
    beq nott              ;descriptor is valid-
    jmp ([oldvec])        ;back to system exception handler
nott:
    insert your own buserr handler here

-----------------------------------------------------------

It is important that not only TT developpers use this kind of
handler. Software that is intended primarily for use on the ST
should use it to. Otherwise it won't be compatible to any future
virtual memory support on new machines.

Any more comments concerning programming on the TT? Go ahead!

-----------------------------
| Uwe Seimet                |
| Buchenlochstrasse 29      |
| D-6750 Kaiserslautern     |
| seimet@sun.rhrk.uni-kl.de |
-----------------------------