


OUTSIDE



Der Virtuelle Speichermanager

Fr Atari TT/Falcon030 und ST/STE mit PAK/3




Benutzerdokumentation





Copyright  Uwe Seimet
1. Die virtuelle Speicherverwaltung OUTSIDE
1.1. Allgemeines
Noch vor einigen Jahren galten Hauptspeicherkapazitten, wie sie ein Atari bietet, auf
dem Bereich der Personal-Computer als utopisch. Es erschien unwahrscheinlich, dass
ein Programm jemals 640 KByte Speicher oder gar mehr bentigen knne. Inzwischen
hat sich lngst gezeigt, dass diese Auffassung einen Trugschluss darstellte. So sind
Computer mit weniger als 64 MByte RAM heutzutage kaum noch ein Gesprchsthema.
Dennoch ist abzusehen, dass auch dieser Speicherausbau den Anforderungen zuknfti-
ger Programme nicht gerecht werden wird. Wer auf dem Atari Desktop Publishing oder
Bildverarbeitung mit hochauflsenden Scannern betreibt oder einfach nur ein Multitas-
king-Betriebssystem einsetzt, kann bereits bei einem Speicherausbau von 4 MByte
RAM auf Schwierigkeiten stoen. Zwar lsst sich der Speicher des Falcon030 oder TT
erweitern, aber eine Erweiterung per Hardware ist nicht gerade billig, insbesondere
dann nicht, wenn es nicht bei den beim Atari blichen 16 oder 32 MByte bleiben soll.
Hier schafft OUTSIDE ohne jegliche Hardware-Bastelei Abhilfe. Dank moderner Prozes-
sortechnik erlauben TT und Falcon sowie ein ST/STE mit PAK/3 Prozessorkarte durch
reine Software-Lsungen nahezu beliebig groe Speicheranforderungen zu befriedigen.
Die sogenannte virtuelle Speicherverwaltung gestattet es, eine Festplatten-Partition
quasi als Speichererweiterung zu benutzen. Mit OUTSIDE stehen Ihren Programmen so
je nach Festplatten-Kapazitt bis zu 500 MByte RAM zur Verfgung.

1.2. Systemvoraussetzungen
OUTSIDE macht von speziellen Eigenschaften des 68030 Prozessor im Atari TT, Falcon
oder ST mit PAK/3 Gebrauch. Auf einem ST mit 68000 Prozessor kann grundstzlich
kein virtueller Speicher realisiert werden. OUTSIDE setzt voraus, dass bereits minde-
stens 2, besser 4 MByte RAM vorhanden sind. Da die Festplatte von OUTSIDE dazu ver-
wendet wird, nicht bentigte Bereiche des Hauptspeichers aufzunehmen, ist zur virtuel-
len Speicherverwaltung eine Auslagerungs-Partition (Swap-Partition) erforderlich, die
sich mglichst auf einer schnellen Festplatte befinden sollte. Ganz allgemein ist zu sa-
gen, dass die virtuelle Speicherverwaltung umso zgiger abluft, je schneller die ver-
wendete Festplatte ist.

1.3. Installation
Die Installation des Programms ist unkompliziert. Kopieren Sie zunchst OUTSIDE auf
Ihre Festplatte, mglichst als letztes Programm in den AUTO-Ordner Ihrer Bootpartiti-
on. Um die Reihenfolge der Programme im AUTO-Ordner zu kontrollieren, sollten Sie
die Sortieroption des Desktop abschalten. Vor dem ersten Einsatz von OUTSIDE muss
das Programm Ihren eigenen Vorstellungen und Hardware-Gegebenheiten gem konfi-
guriert werden. Hierzu dient das OUTCONF-Programm. Nach dem Programmstart er-
scheint nach einigen Plattenzugriffen zunchst die Dateiauswahlbox, in der die zu kon-
figurierende OUTSIDE-Datei ausgewhlt werden kann. In der Regel wird es sich hierbei
um diejenige Datei handeln, die Sie soeben auf die Festplatte kopiert haben. Whlen Sie
diese nun im File Selector aus. Anschlieend knnen Sie OUTSIDE Ihren Vorstellungen
entsprechend konfigurieren.









1.3.1. Auswahl der Swap-Partition
Zunchst finden Sie eine Auflistung aller Partitionen, die als Swap-Partitionen zur Ver-
fgung stehen. Neben den Laufwerkskennungen fhrt OUTCONF die freien Laufwerks-
kapazitten auf, die fr die virtuelle Verwaltung genutzt werden knnen, in MByte auf.
Pro MByte freiem Speicher auf der Swap-Partition kann ein MByte Hauptspeicher vir-
tuell verwaltet werden. Whlen Sie die Swap-Partition durch einen Mausklick aus. Es
ist zu beachten, dass keine Daten auf die Swap-Partition geschrieben werden knnen, so-
lange OUTSIDE aktiv ist. Das Programm sorgt automatisch dafr, dass Schreibzugriffe
unterbunden werden. Diese Einschrnkung sollte nicht weiter verwundern, denn
schlielich darf es nicht vorkommen, dass Teile des auf der Platte ausgelagerten Spei-
cherinhalts durch andere Daten berschrieben werden.. Auch wenn das Schreiben auf
die Swap-Partition nicht mglich ist, knnen die bereits vorhandenen Daten ohne Ein-
schrnkungen gelesen werden. Arbeiten Sie vorbergehend nicht mit OUTSIDE, knnen
Sie die Swap-Partition ohne jede Einschrnkung zur Datenspeicherung einsetzen.
OUTSIDE ermittelt bei jedem Programmstart neu, wie es um den freien Speicherplatz
auf dieser Partition bestellt ist. Enthlt die Swap-Partition Daten, so muss vor dem
Start von OUTSIDE sichergestellt sein, dass die Diskbelegungstabelle (FAT) fehlerfrei
ist. Andernfalls knnen Datenverluste nicht ausgeschlossen werden. Testen Sie daher
regelmig die FAT einer Swap-Partition, falls diese Dateien enthlt. Fehler in der FAT
erkennt beispielsweise die Demoversion von DISKUS, die sich auf der OUTSIDE-Pro-
grammdiskette befindet. Dort finden Sie unter "Daten testen" im "Spezial"-Men die Op-
tion "FAT testen".

1.3.2. Seitengre
Die Seitengre bestimmt die Gre der Speicherblcke, die auf die Platte ausgelagert
werden. Arbeitet man mit Programmen, die hufig im Speicher hin- und herspringen,
kann eine kleinere Seitengre eine Beschleunigung der virtuellen Verwaltung mit sich
bringen. Dies gilt besonders dann, wenn der tatschlich vorhandene Hauptspeicher
knapp ist. Experimentieren Sie einfach ein wenig, um herauszufinden, welche Seitengr-
e fr Ihr System die ideale ist. Da dies sehr von den Programmen abhngt, mit denen
man arbeitet, gibt es hierzu keine Patentlsung. Bei Rechnern mit wenig "echtem" RAM
kann es sinnvoll sein, kleine Seitengren zu whlen, um ein bermiges Ein- und
Auslagern (Swappen) zu verhindern.

1.3.3. Maximaler virtueller Speicher in MByte
Hier lsst sich einstellen, wieviel MByte virtuelles RAM maximal eingerichtet werden
sollen. OUTSIDE erlaubt maximal 496 MByte virtuellen Speicher. Tragen Sie bei der
Installation von OUTSIDE einen greren Wert ein, als die von Ihnen angegebene Swap-
Partition erlaubt, ist dies nicht weiter tragisch. OUTSIDE berprft beim Programm-
start den freien Speicherplatz auf der Swap-Partition. Es wird nur so viel virtueller
Speicher eingerichtet, wie die Swap-Partition zulsst.

1.3.4. Alternativer Speicher
Dieser Punkt ist nur bei Rechnern ohne TT-kompatibles RAM, also bei TTs mit einem
Speicherausbau von 4 bzw. 10 MByte ST-RAM, beim Falcon030, aber auch im ST-Kom-
patibilittsmodus von OUTSIDE relevant. Der Begriff TT-RAM ("alternatives RAM")
wurde mit der Einfhrung des Atari TT geprgt. Beim alternativen RAM handelt es
sich um einen Speicherbereich mit besonderen Eigenschaften. Beim TT ist der Zugriff
auf dieses RAM besonders schnell und ist neben dem gegenber ST und Falcon030 hher
getakteten Mikroprozessor ein Faktor fr die hhere Geschwindigkeit des TT gegenber
den anderen Atari-Computern. Prinzipiell lsst sich mit OUTSIDE nur das alternative
RAM virtuell erweitern. Nun besitzen Falcon030 sowie TTs ohne TT-RAM natrlich
keinen solchen Speicherbereich. Daher muss OUTSIDE durch einen Trick einen Teil des
"normalen" ST-kompatiblen RAM in TT-kompatibles RAM umwandeln. Wieviel RAM in
TT-RAM berfhrt werden soll, stellen Sie unter >Alternativer Speicher< ein. Dieser
Wert gibt die Gre des Speicherbereiches an, der bei der virtuellen Verwaltung tatsch-
lich im Rechner vorhanden ist, also nicht nur auf der Festplatte existiert. Ein Beispiel
soll diese Situation verdeutlich. Nehmen wir an, Sie besitzen einen Rechner mit 4
MByte ST-kompatiblem RAM. Nun wandeln Sie 3 MByte in alternatives RAM um. Be-
trgt die freie Kapazitt Ihrer Swap-Partition 10 MByte, so stehen Ihnen unter
OUTSIDE noch 1 MByte ST-kompatibles RAM und 10 MByte TT-kompatibles RAM zur
Verfgung. Von diesen 10 MByte liegen stets 7 MByte auf der Festplatte, 3 MByte befin-
den sich im Hauptspeicher. Htten Sie nur 1 MByte alternatives RAM erzeugt, wre
noch 3 MByte ST-kompatibles RAM vorhanden. Von den 10 MByte virtuellem RAM w-
ren dann 9 MByte auf der Platte und nur 1 MByte htte im Hauptspeicher Platz. Je we-
niger virtuelles RAM im Hauptspeicher realisiert ist, je mehr also nur auf der Festplat-
te existiert, desto hufiger mssen Daten zwischen Speicher und Platte verschoben wer-
den, was natrlich die Geschwindigkeit der virtuellen Speicherverwaltung sprbar ver-
mindert. Daher sollte so viel ST-kompatibles RAM wie mglich in TT-kompatibles RAM
berfhrt werden, um ein berma an Plattenzugriffen zu vermeiden. Mindestens 1
MByte ST-RAM mssen allerdings erhalten bleiben, ansonsten kann das Betriebssy-
stem des Atari nicht arbeiten. 1 MByte ST-RAM werden von OUTSIDE aus diesem
Grund immer freigehalten. Arbeiten Sie auf dem Falcon030 in der hchsten High Colour
Auflsung (nur auf einem Fernseher oder RGB-Monitor mglich), mssen 2 MByte ST-
RAM erhalten bleiben. Wenn im folgenden von TT-kompatiblem RAM oder TT-RAM die
Rede ist, ist damit entweder das tatschlich vorhandene TT-RAM oder der von
OUTSIDE in TT-kompatibles RAM umgewandelte Speicher zu verstehen. Aus der Sicht
von OUTSIDE ist dies gleichbedeutend.

1.3.5. ROM ins RAM mit/ohne Schreibschutz
Da ein Zugriff auf das TT-RAM schneller vor sich geht, als auf das ROM, kann beim TT
fr ROM-Routinen ein Geschwindigkeitszuwachs von bis zu 30% (beim Falcon bis zu
7%) erreicht werden, wenn eine Kopie des ROM-Inhalts im RAM angelegt wird.
OUTSIDE sorgt durch einen Trick dafr, dass diese Kopie vom restlichen System ohne
Kompatibilittsverlust als ROM angesehen wird. Im praktischen Betrieb fllt der Ge-
schwindigkeitsgewinn natrlich geringer aus, denn schlielich arbeitet der Prozessor
nicht stndig im ROM. Eine Beschleunigung ist aber durchaus sprbar. Sie haben die
Wahl, die ROM-Kopie schreibzuschtzen, so dass diese, wie das ROM selbst, nicht ver-
ndert werden kann. Es kann jedoch auch Schreiberlaubnis gegeben werden, was dazu
fhrt, dass der ROM-Inhalt bei laufendem Rechner verndert (gepatcht) werden kann.
Um das ROM unabhngig von OUTSIDE ins RAM verlagern zu knnen, steht das Pro-
gramm ROMSPEED zur Verfgung.

1.3.6. Kompatibilittsmodus
Leider befinden sich noch immer Programme auf dem Markt, die das TT-RAM und so-
mit auch virtuelles RAM nicht nutzen knnen. Manche Programme laufen im Normal-
fall gar nicht auf dem TT oder Falcon030, da sie unsauber programmiert sind und nicht
mit einem 32-Bit-Adressbus zurechtkommen. Dies uert sich durch zwei Bomben (Bus-
fehler) nach dem Programmstart. Der >Kompatibilittsmodus< von OUTSIDE ermg-
licht es trotz dieser Hindernisse, einen Teil solcher Programme in Verbindung mit vir-
tuellem Speicher zu nutzen. Dazu legt OUTSIDE das virtuelle RAM nicht in den Spei-
cherbereich, in dem sich das alternative RAM normalerweise befindet, sondern in die
unteren 16 MByte des Hauptspeichers. Dabei handelt es sich um genau den Adress-
raum, der auch beim Atari ST zur Verfgung steht. Gleichzeitig wird die Adressierung
wie beim ST auf 16 MByte (24 Bit) eingeschrnkt, was zwangsweise dazu fhrt, dass
"echtes" TT-RAM nicht mehr angesprochen werden kann. Insgesamt lassen sich so zwar
nur 14 MByte virtueller Hauptspeicher realisieren, aber die Kompatibilitt zum ST er-
hht sich deutlich. Sie sollten diese Option wirklich nur dann nutzen, wenn Sie aus
Kompatibilittsgrnden dazu gezwungen sind. Voraussetzung fr die Nutzung des Kom-
patibilittsmodus bei Rechnern mit TT-RAM-Erweiterung ist, dass das TT-RAM beim
Start von OUTSIDE vollkommen leer ist. Das bedeutet, dass auch OUTSIDE nicht im
TT-RAM liegen darf. Eventuell mssen Sie also mit OUTFLAGS den Programmheader
von OUTSIDE manipulieren, so dass das Programm im ST-kompatiblen RAM abluft.

1.3.7. Speichermaximum
Normalerweise entspricht die Kapazitt der Swap-Partition der Speichergre, die von
OUTSIDE virtuell verwaltet werden kann. Besitzt eine Partition 5 MByte freien Spei-
cherplatz, knnen also auch nur 5 MByte virtueller Hauptspeicher angesprochen wer-
den. Partitionen, die eine geringere Kapazitt besitzen, als TT-kompatibles RAM zur
Verfgung steht, wren demnach fr die virtuelle Verwaltung nicht zu gebrauchen. Mit
>Speichermaximum< kann OUTSIDE so konfiguriert werden, dass sich die freie Plat-
tenkapazitt zur Gre des TT-RAM addiert. In diesem Fall knnen mit einer Swap-Par-
tition von 5 MByte und 4 MByte TT-kompatiblen RAM bereits 9 MByte Hauptspeicher
virtuell verwaltet werden. Hierbei mssen jedoch Geschwindigkeitsverluste beim Daten-
austausch zwischen Speicher und Platte in Kauf genommen werden. Daher empfiehlt
sich diese Option nur dann, wenn wenig Platz auf der Festplatte zur Verfgung steht.

1.3.8. Medium verriegeln
Befindet sich die Swap-Partition auf einer Wechselplatten-Cartridge, darf die Cartridge
nach dem Aktivieren von OUTSIDE nicht gewechselt werden, da dies einen Systemab-
sturz zur Folge htte. Es befinden sich schlielich Teile des Hauptspeichers auf der
Cartridge, auf die jederzeit Zugriff bestehen muss. Wird mit einem Festplattentreiber
gearbeitet, der wie HDDRIVER die XHDI-Spezifikation erfllt, kann OUTSIDE automa-
tisch den Auswurfknopf der Wechselplatte verriegeln, auf der sich die Swap-Partition
befindet. Hierzu muss lediglich >Medium verriegeln< eingestellt werden. Um die Ver-
riegelung wieder aufzuheben gengt es, das Programm UNLOCK zu starten. Nach der
Entriegelung fhrt UNLOCK automatisch einen Reset durch, um die virtuelle Speicher-
verwaltung zu deaktivieren.

1.3.9. Ende der Konfigurierung
Somit wre die OUTSIDE-Installation auch schon abgeschlossen. Sobald OUTCONF mit
>OK< verlassen wird, werden die vorgenommen Einstellungen in der OUTSIDE-Pro-
grammdatei vermerkt. Was jetzt noch zu tun bleibt? Nun, wie wre es mit einem Druck
auf den Reset-Knopf? Dieser versetzt Sie nach dem Neubooten des Systems in die Welt
der virtuellen Speicherverwaltung. Wollen Sie OUTSIDE einmal nicht mitstarten, drk-
ken Sie whrend des Boot-Vorgangs einfach beide [Shift]-Tasten. Und denken Sie daran:
Alternatives RAM knnen nur Programme nutzen, bei denen die Bits im Programmhea-
der entsprechend konfiguriert wurden, beispielsweise mit OUTFLAGS. Bei den meisten
aktuellen Programmen ist dies bereits von vornherein der Fall.

1.4. Programme gegen Auslagern schtzen
In Verbindung mit virtueller Speicherverwaltung ist die Unterscheidung zwischen resi-
denten und nicht residenten Programmen von Bedeutung. Residente Programme befin-
den sich auch nach dem Programmende noch im Speicher, um dort ihren Aufgaben
nachgehen zu knnen. Hierzu zhlen in erster Linie Programme, die aus dem AUTO-
Ordner heraus gestartet werden. Nicht residente Programme hingegen werden nach
dem Verlassen vollstndig entfernt. Hierbei handelt es sich normalerweise um Anwen-
dungen, die mit der Maus bedient werden. Programme, die vor OUTSIDE gestartet wur-
den, werden grundstzlich nicht ausgelagert. Auch der Programmcode residenter Pro-
gramme, die nach OUTSIDE gestartet werden, verbleibt im Speicher. Es ist nicht aus-
zuschlieen, dass es einige wenige nicht residente Programme gibt, die sich in Verbin-
dung mit virtuellem Speicher problematisch verhalten und daher ebenfalls stndig im
Speicher prsent sein mssen. Solche Programme werden einfach in die Datei
OUTSIDE.INF eingetragen, die sich im Wurzelverzeichnis von Laufwerk C: befinden
muss. Bei dieser Datei handelt es sich um eine einfache Textdatei im ASCII-Format, die
Sie mit einem Texteditor verndern knnen.
2. Hilfsprogramme
2.1. OUTFLAGS
Es wurde bereits darauf hingewiesen, dass prinzipiell nur das alternative RAM, nicht
jedoch das ST-kompatible RAM virtuell verwaltet werden kann. Damit nun mglichst
viele Programme in den Genuss eines greren Speichers kommen, mssen diese natr-
lich auch im virtuellen RAM ablaufen oder zumindest einen Teil ihres Speicherbedarfs
aus dem virtuellen RAM befriedigen. Dies ist nicht unbedingt automatisch der Fall, son-
dern muss fr jedes Programm irgendwann einmal festgelegt werden. Besitzer eines TT
mit TT-RAM drften diese Art der Konfiguration bereits kennen. OUTFLAGS ermg-
licht es, Programme so zu konfigurieren, dass sie im alternativen RAM (also im virtuel-
len RAM oder auch im "echten" TT-RAM) ablaufen knnen. Nach dem Start von OUT-
FLAGS erscheint zunchst der File Selector, in dem Sie die Programmdatei, die konfigu-
riert werden soll, auswhlen knnen. Anschlieend landen Sie in einem Dialog, der drei
Einstellungen zulsst.






Zum einem kann fr ein Programm das sogenannte >Fast-Load-Flag< gesetzt werden.
Diese Information wird von allen TOS-Versionen ab TOS 1.04 (also auch auf einem ST)
ausgewertet und sorgt fr einen schnelleren Programmstart. Bei gesetztem Flag wird
der Hauptspeicher beim Starten eines Programms nicht gelscht, was besonders dann,
wenn viel Speicher zur Verfgung steht. die fr den Programmstart bentigte Zeit deut-
lich verkrzt. Wird Speicher virtuell verwaltet, ist das Setzen des Fast-Load-Flags un-
bedingt zu empfehlen, da andernfalls whrend des Startvorgangs unntig viele Platten-
zugriffe erfolgen. Schlielich befindet sich ja ein Teil des zu lschenden Speichers auf
der Platte. Ob ein Programm im alternativen RAM abluft und auch bei eigenen Spei-
cheranforderungen Speicher aus diesem zugeteilt bekommt, kann anhand der beiden
verbleibenden Buttons eingestellt werden. Programme knnen in der Regel nur dann
von den Mglichkeiten Gebrauch machen, die OUTSIDE bietet, wenn zumindest eine
dieser beiden Optionen aktiv ist, also das alternative RAM zumindest teilweise genutzt
wird. Der Knopf >Programm luft im alternativen RAM< sorgt dafr, dass ein Pro-
gramm vom Betriebssystem TOS ins TT-RAM bzw. virtuelle RAM geladen wird. Unab-
hngig davon kann mit >Speicher aus dem alternativen RAM< festgelegt werden,
dass Speicherplatz, der von einem Programm nach dessen Start angefordert wird, aus
dem virtuellen RAM zur Verfgung gestellt wird. Alle Kombinationen dieser beiden
Einstellungen knnen durchaus sinnvoll sein. Programme, die nicht an den TT angepas-
st sind und mit mehreren Bildschirmen arbeiten, knnen zwar im virtuellen RAM ab-
laufen, sollten jedoch keine weiteren Speicherbereiche aus dem alternativen RAM zuge-
teilt bekommen. Dies hat seinen Grund darin, dass der Speicher, in dem sich die Daten
fr den Bildschirm befinden, grundstzlich nicht im alternativen RAM liegen kann.
Wird nach dem Starten eines Programms Mll auf dem Bildschirm dargestellt, wurde
der Bildschirmspeicher im alternativen RAM eingerichtet. Der Knopf >Speicher aus
dem alternativen RAM< und eventuell auch >Programm luft im alternativen
RAM< darf in diesem Fall nicht aktiviert werden. Benutzen Sie OUTFLAGS, um das
Programm entsprechend zu konfigurieren.
3. Kompatibilitt
Es befinden sich noch immer einige Programme auf dem Markt, die nicht mit Haupt-
speichergren oberhalb von etwa 8 MByte zurechtkommen. Handelt es sich hierbei um
Accessories, ntzt es nichts, diese mit OUTFLAGS ins ST-RAM zu verbannen. TOS
ignoriert bei Accessories die entsprechenden Bits im Programmheader, so dass diese
Programme bei ihren Speicheranforderungen stets Bereiche aus dem alternativen RAM
zugewiesen bekommen.
Sollte ein Programm wider Erwarten nicht in Verbindung mit OUTSIDE laufen, lsst
sich in der Regel recht einfach Abhilfe schaffen. Erzeugen Sie mit einem Texteditor auf
Laufwerk C: eine Datei mit dem Namen OUTSIDE.INF, in der der Name des entspre-
chenden Programms eingetragen wird. Dieses Programm wird nach dem erneuten Star-
ten von OUTSIDE nicht mehr aus dem Speicher ausgelagert. Eine andere Mglichkeit,
dies zu erreichen, besteht darin, beim Programmstart die [Alternate]-Taste zu drcken.
Hilft das Eintragen in OUTSIDE.INF nicht weiter, muss dafr gesorgt werden, dass das
Programm nicht mehr vom virtuellen RAM Gebrauch macht. Hierzu kann OUTFLAGS
eingesetzt werden. Bevor man sowohl den Knopf >Programm luft im alternativen
RAM< als auch den Knopf >Speicher aus dem alternativen RAM< deaktiviert, sollte
man zunchst prfen, ob es zum fehlerfreien Betrieb bereits ausreicht, nur eine der bei-
den Optionen (in der Regel >Speicher aus dem alternativen RAM<) abzuschalten.
Programme, die auf dem Falcon030 mit Hilfe des Blitters Speicher im virtuellen RAM
verschieben wollen ("Illegaler Blitter Transfer", Quelle und Ziel liegen im virtuellen
RAM), knnen nur dann Speicher aus dem virtuellen RAM verwenden, wenn gleichzei-
tig ein Software-Blitter wie NVDI installiert ist. Andernfalls muss bei diesen Program-
men >Speicher aus dem alternativen RAM< abgeschaltet werden. Die Benutzung des
Software-Blitters NVDI bewirkt brigens auch einen verringerten Speicherbedarf von
OUTSIDE auf dem Falcon030 und wird daher sehr empfohlen.
Programme, die wie OUTSIDE ebenfalls Gebrauch von der PMMU des 68030 machen,
sollten nicht zusammen mit OUTSIDE eingesetzt werden. Eine Ausnahme stellen Pro-
gramme dar, die anhand des "PMMU"-cookies die Anwesenheit einer virtuellen Spei-
cherverwaltung erkennen und entsprechend darauf reagieren. OUTSIDE berprft vor
der eigentlichen Installation anhand des "PMMU"-cookies, ob die PMMU bereits von ei-
nem anderen Programm benutzt wird. Ist dies der Fall, wird OUTSIDE nicht installiert.
Der Cache des ICD-Festplattentreibers arbeitet in Verbindung mit virtuellem Speicher
nicht zuverlssig. Auerdem ist der ICD-Treiber nicht voll AHDI-kompatibel. Daher
sollte ein anderer Treiber verwendet werden. Besonders empfehlenswert sind Treiber,
die wie HDDRIVER das Festplatteninterface XHDI untersttzen.
Virtuelle Speicherverwaltung unter MultiTOS bzw. N.AES ist mit OUTSIDE ab MiNT
1.05 unter Vorbehalt mglich, jedoch nur bei abgeschaltetem Speicherschutz. Hierzu
wird MINT.PRG in MINTNP.PRG umbenannt. Da MiNT stndigen nderungen unter-
worfen ist, kann die einwandfreie Zusammenarbeit mit OUTSIDE grundstzlich nicht
garantiert werden. OUTSIDE steht beim Einsatz von MiNT nicht im AUTO-Ordner,
sondern wird aus der Datei MINT.CNF heraus mit dem Kommando "exec outside.prg"
gestartet. Ein Kommando wie "init=" sollte aus MINT.CNF entfernt werden. Die Datei
GEM.SYS muss sich in einem Ordner mit dem Namen MULTITOS befinden. Dieser Ord-
ner muss im Wurzelverzeichnis liegen.

4. Der PMMU-Handler
Von OUTSIDE wird ein cookie mit der Kennung "PMMU" eingerichtet. Der zugehrige
Parameter ist entweder ein Nullpointer oder stellt die Einsprungadresse eines Funkti-
onshandlers dar, der unter der Kontrolle von OUTSIDE einige PMMU-bezogene Manipu-
lationen ermglicht. Ein solcher standardisierter Handler wird nicht nur von
OUTSIDE, sondern auch von manchen anderen Programmen zur Verfgung gestellt, die
die PMMU nutzen. Der Aufruf des Handlers ist nur im Supervisor-Modus erlaubt und
geschieht ber eine Funktionsnummer, die im Datenregister D0 abgelegt wird. Eventu-
elle Rckgabewerte finden sich ebenfalls in diesem Register. Andere Prozessorregister
werden nicht verndert. Folgende Funktionen stehen zur Verfgung:


Funktion #0:
	UWORD PMMUversion(void);

Versionsnummer des PMMU-Handlers erfragen. Der zurckgelieferte Wert beschreibt
in den Bits 8 bis 15 die Version, in den Bits 0 bis 7 die Revision (z.B. $0102 = 1.02).


Funktion #1:
	ULONG SetPageMode(ULONG mode, ULONG start_address, ULONG length);

PMMU-Modus in dem durch start_address und length definierten Speicherbereich set-
zen. Jedes Bit in mode hat dabei eine bestimmte Bedeutung:

Bit 0: SwapInhabit-Bit, der Speicherbereich wird nicht ausgelagert. Bit 1: WriteProtect-
Bit, der Speicherbereich wird schreibgeschtzt, ein Schreibversuch fhrt zu einem Bus-
fehler. Bit 2: Used-Bit, der Speicherbereich wird als benutzt gekennzeichnet. Hierdurch
erhlt er temporr eine hhere Prioritt und wird vorerst nicht ausgelagert. Bit 3: Mo-
dified-Bit, der Speicherbereich wird als verndert markiert. Dadurch wird dieser Be-
reich auf jeden Fall auf die Platte geschrieben, bevor neue Daten an seine physikalische
Adresse eingelesen werden. Bit 4: CacheInhabit-Bit, die Prozessorcaches werden fr die-
sen Bereich abgeschaltet.

Die restlichen Bits sind reserviert und mssen auf Null gesetzt werden. Fr die virtuel-
le Speicherverwaltung ist in erster Linie das SwapInhabit-Bit von Bedeutung, da es die
Mglichkeit bietet, bestimmte Speicherbereiche gegen Auslagern abzusichern. Beim
Schreibschtzen von Speicherbereichen ist unbedingt zu beachten, dass der Speicher in
Seiten unterteilt ist, die die kleinste Einheit fr einen Schreibschutz darstellen. Es
muss sichergestellt werden, dass sich der Schreibschutz nicht auch auf einen Bereich
erstreckt, der nicht geschtzt werden darf, weil er beispielsweise nicht zum eigenen Pro-
gramm gehrt.

Der Rckgabewert von SetPageMode ist Null bei fehlerfreier Ausfhrung, ansonsten
sind die Bits gesetzt, die nicht manipuliert werden konnten.


Funktion #2:
	ULONG ClearPageMode(ULONG mode, ULONG start_address, ULONG length);

Gegenstck zu SetPageMode, die entsprechenden Bits werden gelscht. Ein Programm
darf nur die Bits lschen, die es vorher selber gesetzt hat.


Funktion #3:
	ULONG GetPageSize(void);

Dieser Aufruf liefert die momentane Gre der Speicherseiten.


Funktion #4:
	UWORD *GetHdv_inuse(void);

Man erhlt den Pointer auf das hdv_inuse-Wort zurck. Anhand dieses Wortes lsst
sich jederzeit testen, ob der Festplattentreiber gerade dabei ist, eine Seite ein- oder aus-
zuswappen. Eine berprfung dieses Wortes muss erfolgen, bevor aus einer Inter-
ruptroutine heraus ein Zugriff auf das virtuelle RAM stattfindet. Der Plattentreiber
darf nmlich nicht durch einen Zugriff auf eine nicht existente Speicherseite unterbro-
chen werden, falls gerade eine andere Seite ausgelagert wird. Ist das Statuswort un-
gleich Null, muss der Zugriff verschoben werden.


Funktion #5:
	ULONG vmem_size(void);

Gesamtgre des virtuellen Speichers erfragen.


Funktion #6:
	ULONG pmem_size(void);

Erst ab PMMU-cookie Version 1.01: Gesamtgre des physikalischen Speichers, der vom
Speichermanager verwaltet wird, erfragen.


Mit Hilfe des "PMMU"-cookies lsst sich leicht feststellen, ob sich irgendein Programm
im Speicher befindet, das die MMU nutzt. Handelt es sich beim Langwort, das dem coo-
kie als Parameter folgt, um einen Nullpointer, stellt das zugehrige Programm keinen
MMU-Handler zur Verfgung. Der cookie signalisiert in diesem Fall lediglich die Be-
nutzung der MMU, was fr andere Programme ein Zeichen sein kann, sich nicht zu in-
stallieren.
5. Fehlermeldungen
Die folgenden Meldungen erscheinen je nach TOS-Version in deutscher, englischer oder
franzsischer Sprache:

Es ist bereits ein PMMU-Programm aktiv!
Befindet sich beim Start von OUTSIDE bereits ein anderes Programm im Speicher, das
die MMU benutzt, wird OUTSIDE nicht installiert.

Falsche GEMDOS-Version
OUTSIDE bentigt TOS 2.05 oder eine neuere Systemversion.

Fehler beim Lesen der FAT
Die Diskbelegungstabelle der Swap-Partition konnte nicht ausgewertet werden.

Fehlerhafte Konfiguration
OUTSIDE wurde falsch bzw. gar nicht konfiguriert.

Illegaler Blitter-Transfer
Der Blitter wurde dazu benutzt, Blcke innerhalb des virtuellen Speichers zu kopieren.
Dies ist mit OUTSIDE prinzipiell nicht mglich. Bei der Verwendung des Software-Blit-
ters NVDI kann dieser Fehler nicht auftreten.

Kein Kompatiblittsmodus mglich
OUTSIDE wurde zu einem Zeitpunkt im Kompatibilittsmodus gestartet, zu dem das
TT-kompatible RAM bereits von einem andere Programm benutzt wurde.

Lese-/Schreibfehler auf Sektor x
Beim Versuch, eine Speicherseite ein- bzw. auszulagern, meldete der Festplattentreiber
einen defekten Sektor.

OUTSIDE bentigt eine 68030 CPU
Virtuelle Speicherverwaltung ist daher nur bei TT oder Falcon mglich.

Ungltiges Swap-Laufwerk
Die Swap-Partition kann nicht korrekt angesprochen werden.

Zu geringe freie Plattenkapazitt
Auf der Swap-Partition befinden sich weniger freie Blcke als physikalischer Hauptspei-
cher vorhanden ist.

