TrueDisk - die einzig wahre RAM-Disk
====================================

v2.3 (c) 1989-1995 by Christoph Zwerschke

Kurzanleitung
-------------
Es gibt Leute, die lesen nicht gerne Anleitungen oder wollen ein
neues Programm erst einmal schnell ausprobieren, um zu sehen, ob
es berhaupt etwas taugt (ich gehre auch dazu). Deswegen hier das
wichtigste in Krze: Die "TrueDisk" ist eine schnelle, kleine,
unkomplizierte, residente RAM-Disk fr alle Atari-Rechner mit
TOS-kompatiblem Betriebssystem. Um sie zu installieren, reicht es,
TRUEDISK.PRG in den AUTO-Ordner zu kopieren und den Atari neu zu
booten. Die TrueDisk ist so voreingestellt, da sie sich mit der
Laufwerkskennung M: und einer Gre von 512 kBytes im RAM des
Atari-Computers resident installiert. Wird eine andere Laufwerks-
kennung oder eine andere Gre gewnscht, mu man whrend des
Bootens eine der Tasten Alternate oder Control gedrckt halten.
Die TrueDisk fragt dann vor der Installation die gewnschten Werte
ab und speichert sie als neue Voreinstellung. Nach dem Booten mu
die TrueDisk natrlich noch wie jedes andere Laufwerk fr den
Desktop angemeldet werden (Menpunkt "Ikonen anmelden" oder
"Laufwerke anmelden") und der Desktop gesichert werden (Menpunkt
"Arbeit sichern"). Das war's.

Sinn und Zweck der TrueDisk
---------------------------
Eine RAM-Disk ist meiner Meinung nach eines der wichtigsten
Hilfsprogramme fr den Atari. Wie der Name sagt, werden bei ihr
die Daten im Hauptspeicher (dem RAM) des Atari-Computers abge-
speichert. Eine RAM-Disk hat gegenber einer Floppydisk oder
Harddisk hauptschlich den Vorteil, da sie schneller ist und sich
nicht mechanisch abnutzt. Sie hat natrlich auch Nachteile, vor
allem, da sie mit dem Ausschalten des Rechners gelscht wird und
den nur begrenzt vorhandenen "kostbaren" Hauptspeicher belegt.
Selbst fr Besitzer einer schnellen Harddisk kann eine RAM-Disk
aber sinnvoll sein, zum Beispiel zum Packen und Entpacken von Da-
teiarchiven und als Zwischenspeicher beim Kopieren von Dateien. Es
ist auch ratsam, neue Programme immer erst auf einer RAM-Disk
auszuprobieren. Wenn (durch einen Virus oder einen Programmfehler)
Daten auf dem Laufwerk zerstrt werden, ist das bei der RAM-Disk
im Gegensatz zur Harddisk meist nicht tragisch.

Vorzge der TrueDisk
--------------------
Zunchst einmal: Die TrueDisk ist eine "residente" RAM-Disk. Das
bedeutet, da bei einem "Warmstart" des Rechners die Daten in der
TrueDisk nicht gelscht werden. Wenn der Rechner also einmal
"hngen" sollte, kann man getrost Control-Alternate-Delete oder
den Restknopf drcken. Zweitens: Die TrueDisk ist "sauber" pro-
grammiert und luft daher auf allen mir bekannten Atari-Rechnern
mit TOS-kompatiblem Betriebssystem (auch mit MagiC!). Dies ist
fr eine residente RAM-Disk durchaus nicht selbstverstndlich.
Drittens: Sie belegt keinen der wertvollen Accessory-Pltze und
vertrgt im Gegensatz zu so mancher Accessory-RAM-Disk problemlos
einen Auflsungswechsel. Viertens: Sie luft sowohl im ST-RAM als
auch im TT-RAM, je nach Wunsch, und mit jedem Speicherausbau und
ist in der Gre nur durch diesen beschrnkt. Fnftens: Die True-
Disk versucht sich stets ans obere RAM-Ende zu installieren, wo
die Daten einigermaen sicher sind. Im ST-RAM wird der Bild-
schirmspeicher dazu vom oberen Speicherende unter die TrueDisk
verschoben, damit er nach einem Warmstart nicht als "Leiche" im
residenten Teil des RAMs liegt. Die Treiber-Routinen liegen im
Bootsektor der TrueDisk. Durch diese Manahmen wird kein Byte
Speicher verschwendet. Sechstens: Die TrueDisk bentigt keine zu-
stzliche Konfigurationsdatei, die Parameter werden im AUTO-
Ordner-Programm selbst gespeichert. Siebtens: Die eigentlichen
Treiber-Routinen arbeiten sehr schnell und zuverlssig. Die True-
Disk benutzt dabei 512-kByte-Sektoren, 2-Sektor-Cluster und 16-
Bit-FATs. Dies sind Standardwerte, mit denen alle Programme zu-
rechtkommen. Achtens: Die TrueDisk ist ein "PD-Programm"!

Installation der TrueDisk
-------------------------
Eigentlich wurde in der "Kurzanleitung" schon alles gesagt,
trotzdem hier vielleicht noch ein paar zustzliche Hinweise: Die
TrueDisk installiert sich nur dann, wenn danach mindestens 128
kByte Speicher brigbleiben. Sie wird dann, wie gesagt, "so weit
oben" im Speicher wie mglich angelegt. Der gesamte Speicher vom
Anfang der TrueDisk bis zum oberen Ende des RAMs wird resident
gehalten und kann nicht mehr angefordert werden. Falls andere
Programme Speicher am oberen Ende des RAMs besitzen, steht dieser
Speicher nach einem Warmstart nicht mehr zu Verfgung. Eine Aus-
nahme ist der Bildschirmspeicher, der, wenn mglich, automatisch
unter die TrueDisk verschoben wird. Wird die TrueDisk also hinter
anderen AUTO-Ordner-Programmen oder aus dem Desktop gestartet,
kann es vorkommen, da man nach einem Warmstart "Speicherleichen"
oberhalb der TrueDisk erhlt, nmlich dann, wenn andere Programme
Speicher am oberen Ende des RAMs belegt haben. Die TrueDisk gibt
in diesem Fall eine Meldung aus, man sollte dann einfach das Pro-
gramm TRUEDISK.PRG an einen Platz weiter vorne im AUTO-Ordner
verschieben. Dies kann man z.B. sehr einfach mit meinem Programm
"DirSort" bewerkstelligen. Ist im Atari neben dem ST-RAM auch
TT-RAM vorhanden, dann wird die TrueDisk in dem Speicher instal-
liert, in den sie auch geladen wird. Dies wird ber ein Flag im
Programmkopf von TRUEDISK.PRG geregelt, das mit den einschlgigen
Hilfsprogrammen verndert werden kann. Voreingestellt ist fr die
TrueDisk das TT-RAM, es kann aber oft sinnvoller sein, das ST-RAM
zu verwenden, wenn gengend davon vorhanden ist und es nicht fr
andere Zwecke bentigt wird (bei mir laufen z.B. alle Programme im
TT-RAM und das ST-RAM lge grtenteils "brach", wenn ich dort
nicht die TrueDisk installiert htte). Noch etwas zur Gre der
TrueDisk: Der eingestellte Wert gibt an, wieviel Speicher die
TrueDisk tatschlich im RAM belegt. Der zum Speichern von Dateien
benutzbare Platz ist wegen der Verwaltungssektoren etwas kleiner.
Ist beim Booten eine der Shift-Tasten gedrckt, dann wird fragt
die TrueDisk erst nach, bevor sie sich installiert. Auf diese
Weise kann die Installation der TrueDisk bersprungen werden,
falls sie zu irgendwelchen Problemen oder Kollision mit anderen
Programmen fhren sollte. Eine mglicherweise bereits resident im
Speicher vorhandene TrueDisk bleibt davon aber unberhrt und wird
nicht gelscht, man kann nur nicht auf sie zugreifen. Mchte man
die TrueDisk ganz entfernen, so mu man whrend des Bootens die
Alternate- oder Control-Taste gedrckt halten und bei der an-
schlieenden Abfrage der Speichergre 0 (oder weniger als 8)
kBytes eingeben. Noch ein wichtiger Hinweis: Das Programm
TRUEDISK.PRG sollte nicht umbenannt oder gepackt werden und das
Bootlaufwerk sollte nicht schreibgeschtzt sein, weil sonst das
Speichern der Parameter nicht funktioniert.

Verschiedene Speicherarten
--------------------------
Noch einmal kurz zu den verschiedenen Speicherarten: Die TrueDisk
kann drei Arten von RAM-Speicher benutzen: ST-RAM, TT-RAM und
"AUXRAM". Normalerweise werden die ersten beiden vom GEMDOS
verwalteten Arten Speicher benutzt. Ob dabei das ST-RAM oder das
TT-RAM zum Einsatz kommt, hngt - wie bereits erwhnt - von dem
"Programm-Lade-Flag" im Programmkopf ab (und natrlich auch davon,
ob berhaupt gengend RAM der gewnschten Art zur Verfgung
steht). Unter "AUXRAM" verstehe ich Speicher, der nicht vom GEMDOS
verwaltet wird. Das knnte z.B. berschssiges RAM auf einer
Grafikkarte sein (wenn es nicht irgendwann mit "Maddalt()" in die
GEMDOS-Speicherliste aufgenommen wurde). Wenn man solchen Speicher
fr die TrueDisk nutzen mchte, ist ein kleiner "Patch" von
TRUEDISK.PRG erforderlich, den man leicht mit einem Diskmonitor
durchfhren kann: Bei Offset $44 vom Dateianfang findet man die
beiden Longwords $4e4f524d $00000000. Man ersetze das erste
("NORM") durch $42415345 ("BASE") und das zweite durch die
Basisadresse des RAM-Blocks, den man fr die TrueDisk benutzen
mchte. Die Lnge dieses Blocks in kBytes schreibt man in das
Longword bei Offset $38 vom Dateistart. Das ist alles.

Risiken und Nebenwirkungen
--------------------------
Da die TrueDisk im ST-RAM oberhalb des Bildschirmspeichers in-
stalliert wird, kann sie zerstrt werden, wenn Programme ber den
unteren Rand des Bildschirms hinaus in den Speicher schreiben.
Dies kann normalerweise aber nur bei sehr unsauber und fehlerhaft
programmierter alter Software passieren. Auf neueren Atari-
Rechnern und ST-Rechnern mit 4 MB Speicherausbau strzen solche
Programme mmlich durch einen Busfehler ab und drften daher immer
seltener werden, in den letzten Jahren ist mir kein einziges sol-
ches Programm mehr untergekommen. Die TrueDisk liegt daher am
oberen Ende des RAMs eigentlich im "sichersten" Bereich des Spei-
chers. Residente Programme sollten, wie bereits erlutert, wenn
mglich nach der TrueDisk gestartet werden. Dies gilt insbesondere
fr Harddisk-Cache-Programme. Ansonsten erkennt das Cache-Programm
die TrueDisk und man mu die Pufferung abschalten, da sie eine
reine Verschwendung von RAM-Speicher bedeuten wrde. Falls die
TrueDisk mit "KillTrue" entfernt wird, kann es auerdem sein,
da sich auch das Cache-Programm aus Sicherheitsgrnden auto-
matisch entfernt. Man mu diese Automatik dann abschalten.

Bekannte Probleme
-----------------
Unter MagiC 3.00 vom 26.3.1995 kann die TrueDisk nach dem Booten
von MagiC nicht mehr korrekt installiert werden, sie mu daher
im AUTO-Ordner vor MAGXBOOT gestartet werden. Das scheint mir an
einer unsauberen Speicherverwaltung von MagiC zu liegen. Ich habe
leider keine Zeit, diesem Problem genauer nachzugehen. Weiter hat
sich Markus Doll beschwert, da die TrueDisk nicht mit der "Mighty
Sonic" RAM-Karte (und der zugehrigen Software) auf dem Falcon
arbeitet. Auch dieses Problem kann ich momentan mangels Zeit und
Hardware nicht lsen.

Bisherige Verbesserungen an der TrueDisk
----------------------------------------
v1.0 (16.12.1989): Erste Version der TrueDisk. Sie baut auf der in
der c't 11/1986 vorgestellten "RRRDisk" auf, behebt aber einige
gravierende Mngel, z.B. das doppelte Booten der RRRDisk.
v1.1 (14.03.1990): Die TrueDisk wird unabhngiger von der TOS-
Version (benutzt aber immer noch undokumentierte Eigenschaften).
v1.2 (12.02.1992): Da das "memconf"-Byte nur beim Original-
Atari-ST gesetzt wird, kann es nun gepatcht werden. XBRA-Protokoll
und weitere Verbesserungen eingebaut.
v1.3 (09.06.1992): Anpassung an das TT-TOS. Kleine Verbesserungen
am Konzept, die TrueDisk kann nun auch de-installiert werden.
v1.4 (17.09.1992): TT-RAM bringt die TrueDisk nicht mehr durch-
einander, die TrueDisk luft aber weiterhin nur im ST-RAM.
v1.5 (26.04.1993): Anpassung an weitere TOS-Versionen.
v2.0 (27.12.1993): Die TrueDisk wurde zu groen Teilen neu ge-
schrieben. Die Reservierung des Speichers geschieht jetzt ohne
Manipulation der GEMDOS-Speicherverwaltung und die Abfrage des
"memconf"-Bytes wurde vllig gestrichen. Durch diese beiden nde-
rungen sollte die TrueDisk nun unabhngig vom Betriebssystem lau-
fen (getestet mit der TOS-Version 3.06, MultiTOS und MagiC!). Der
einzige Nachteil gegenber den bisherigen Versionen ist, da bei
einer Grennderung einer installierten TrueDisk nun ein Kalt-
start durchgefhrt werden mu. Die TrueDisk kann nun auch im TT-
RAM installiert werden. Die Ausgabe von "Crash-Infos" wurde vllig
gestrichen, weil damit sowieso niemand etwas anfangen konnte. Wer
so etwas braucht, soll sich ein eigenes Programm dafr in den
AUTO-Ordner legen. Das Default-Laufwerk ist nun "M:".
v2.1 (18.01.1994): Unter der Speicherverwaltung von MagiC konnte
die TrueDisk keinen Speicher allozieren, sie konnte also nur vor
MagiC gestartet werden. Die Reihenfolge spielt nun keine Rolle
mehr. Die Vorgehensweise bei Grennderungen der TrueDisk wurde
verbessert, insbesondere wird jetzt auch unter MagiC ein Kaltstart
ausgefhrt. Neu ist auch die Mglichkeit, Speicher zu benutzen,
der dem GEMDOS unbekannt ist.
v2.2 (01.02.1994): Die TrueDisk kann nun nicht nur wie bisher mit
dem Programm "ZeroTrue" gelscht werden, sondern mit dem Programm
"KillTrue" auch vollstndig aus dem Speicher entfernt werden.
v2.3 (03.04.1995): Kleinigkeiten. Hinweis auf bekannte Probleme.

Weitere ntzliche Hilfsprogramme
--------------------------------
Einige andere Hilfsprogramme, die ich im Zusammenhang mit der
TrueDisk erwhnen sollte: "ZeroTrue" lscht schnell die gesamte
TrueDisk, "KillTrue" entfernt sie komplett aus dem Speicher.
"DirSort" sortiert Directories, insbesondere den AUTO-Ordner.
"LED-Panel" zeigt Schreib/Lese-Vorgnge auf Laufwerken in der
Menleiste an. Alle vier sind "Public-Domain-Programme" und
von mir geschrieben. "GD-Flag" verndert die Flags im Kopf von
Programmdateien. GD-Flag ist ein "Freeware-Programm" von Gregor
Duchalski. Es empfiehlt sich, die Programme immer im "Paket" und
natrlich mit den zugehrigen Anleitungstexten weiterzugeben.

Das unvermeidliche Kapitel
--------------------------
Zwei wichtige Punkte, die in keiner Programm-Anleitung fehlen
drfen: Erstens mchte ich deutlich darauf hinweisen, da ich na-
trlich keinerlei Garantie fr die Funktionsfhigkeit der TrueDisk
und die Korrektheit der Angaben in dieser Anleitung bernehme. Ich
hafte auch nicht fr Schden (insbesondere Verlust von Dateien),
die sich durch die Benutzung der TrueDisk oder der Zusatzprogramme
ZeroTrue und KillTrue ergeben. Zweitens mchte ich ebenso deutlich
darauf hinweisen, da die TrueDisk ein "Public-Domain-Programm"
ist. Sie darf im nicht-kommerziellen Rahmen nach Belieben kopiert
und weitergegeben werden. Falls Ihnen die TrueDisk gefllt, drfen
Sie mir das natrlich gerne schreiben und mir auch eine kleine
Anerkennung fr meine Arbeit zukommen lassen. PD-Versender und
sonstige kommerzielle Anbieter bitte ich, mich vor der Aufnahme
meiner Programme in ihr Angebot zu benachrichtigen und eine dicke
Sonderspende locker zu machen.

Adresse des Autors
------------------
Der Programmierer vom Dienst:

    Christoph Zwerschke             Bankverbindung:
    Am Steinfeld 4                  Bezirkssparkasse Heidelberg
    59379 Selm-Cappenberg           BLZ: 67250020
    Deutschland                     Konto Nr. 4338405

