Optionen und globale Konfiguration

Es gibt lokale und globale Optionen. Lokale Optionen werden mittels Argumente auf der Kommandozeile oder durch ToolTypes beim Start von der Workbench übergeben.
Die globale Konfigurationsdatei ist "S:WHDLoad.prefs". Sie ist eine normale ASCII-Datei und enthält eine Option pro Zeile. Leere Zeilen und Kommentare werden ignoriert. Ein Kommentar ist zeilenbasiert, beginnt mit dem Zeichen ";" und reicht bis zum Ende der Zeile.
Eine Beispielkonfigurationsdatei ist im WHDLoad-Paket enthalten ("S/WHDLoad.prefs").

Überblick

Liste der verfügbaren Optionen

Name der OptionTyplokalglobalvoreingestellt
BranchCacheSchalterx-
ButtonWaitSchalterxx
CacheSchalterx-
ChkSchalterx-
ChkBltHogSchalterx-
ChkBltSizeSchalterx-
ChkBltWaitSchalterx-
ChkColBstSchalterx-
ChipNoCacheSchalterxx
CoreDumpSchalterx-
CoreDumpPathZeichenkette-xPROGDIR:
CustomZeichenkettex-
Custom1numerischx-
Custom2numerischx-
Custom3numerischx-
Custom4numerischx-
Custom5numerischx-
DSchalterx-
DebugKeynumerischxx-
DCacheSchalterx-
ExecuteCleanupZeichenkette-x-
ExecuteStartupZeichenkette-x-
ExpertSchalter-x
FileLogSchalterx-
FreezeKeynumerischxx
MMUSchalterxx
NoAutoVecSchalterxx
NoCacheSchalterx-
NoFileCacheSchalterx-
NoFilterSchalterxx
NoFlushMemSchalterxx
NoMMUSchalterxx
NoTrapHandlerSchalterx-
NoVBRMoveSchalterx-
NoWriteCacheSchalterxx
NTSCSchalterxx
PALSchalterxx
PreloadSchalterx-
QuitKeynumerischxx-
ReadDelaynumerisch-x0
RestartKeynumerischxx-
SlaveZeichenkettex-WHDLoad.Slave
SnoopSchalterx-
SnoopAGASchalterx-
SnoopECSSchalterx-
SnoopOCSSchalterx-
SplashDelaynumerisch-x200
StoreBufferSchalterx-
SuperScalarSchalterx-
TimeOutnumerischx-0
WriteDelaynumerischxx150

Arten der Optionen

numerisch: der Wert der Option ist eine Ganzzahl,
auf der Kommandozeile können nur dezimale Zahlen verwendet werden, als ToolType auch hexadezimale Zahlen mit einem vorangestellten "$"
Zeichenkette: der Wert der Option ist eine Zeichenkette
Schalter: die Option wird eingeschalten wenn angegeben (boolean)

Beispiel

Workbench:
CLI oder Shell: 1> WHDLoad SuperGame.Slave Preload NTSC QuitKey=69 Custom1=1

Erklärung der Optionen

ButtonWait/S

Diese Option beeinflusst WHDLoad nicht, aber kann vom Slave ausgelesen werden.
Mit dieser Option kann der Nutzer dem installierten Programm mitteilen, dass diese auf einen Tastendruck warten soll, wenn es ein Bild zeigt und/oder eine Musik abspielt und dies normalerweise nur für eine sehr kurze Zeit tun würde (bedingt durch das schnelle HD/RAM-Laden im Vergleich zum Laden von Diskette).

BranchCache/S

Diese Option schaltet den Branch Cache eines 68060 ein. Auf anderen CPU-Typen ist sie wirkungslos.
Die Option wird ignoriert wenn NoCache/S auch gesetzt ist.

Cache/S

Diese Option schaltet für das installierte Programm den Instruction Cache ein und den Data Cache aus. Wenn die MMU von WHDLoad benutzt wird, wird das Chip-Memory als Cacheable Writethrough (impercise) markiert. Die Option wird ignoriert wenn NoCache/S auch gesetzt ist.

Chk/S

Diese Option ist eine Abkürzung und aktiviert die Optionen ChkBltSize/S, ChkBltWait/S und ChkColBst/S.

ChkBltHog/S

Diese Option bewirkt, dass WHDLoad ständig prüft, dass das blthog (bltpri) Bit im custom.dmacon Register nicht gesetzt ist. Dies funktioniert nur im Zusammenspiel mit einer der SnoopOCS/SnoopECS/SnoopAGA Optionen.

ChkBltSize/S

Diese Option bewirkt, dass WHDLoad überprüft, ob das installierte Programm den Blitter richtig benutzt. Es kontrolliert, dass nur gültige Speicherbereiche für Blitteroperationen verwendet werden. Dies funktioniert nur im Zusammenspiel mit einer der SnoopOCS/SnoopECS/SnoopAGA Optionen.

ChkBltWait/S

Diese Option bewirkt, dass WHDLoad überprüft, ob das installierte Programm richtig auf das Ende von Blitteroperationen wartet, bevor es einen neuen Blitterjob startet. Dies funktioniert nur im Zusammenspiel mit einer der SnoopOCS/SnoopECS/SnoopAGA Optionen.

ChkColBst/S

Diese Option bewirkt, dass WHDLoad ständig prüft, dass das color Bit im custom.bplcon0 Register gesetzt ist. Dies funktioniert nur im Zusammenspiel mit einer der SnoopOCS/SnoopECS/SnoopAGA Optionen.

ChipNoCache/S

Diese Option deaktiviert den Cache für den Chip-Memory (BaseMem). Sie sollte eingeschaltet sein, wenn Hardware verwendet wird, die das Cachen im Chip-Memory nicht erlaubt (z.B. BlizzardPPC Karten) um Geschwindigkeitseinbußen beim installierten Programm zu vermeiden. Siehe auch CPU Cache Verwaltung.

CoreDump/S

Wenn eingeschaltet, erzeugt WHDLoad bei jeden Exit von einem installierten Programm ein Memory- und Register-Dump. Das ist hilfreich zum Extrahieren von Musikmodulen aus dem Memory Dump oder zur Fehlersuche.

CoreDumpPath

Das Verzeichnis in dem die von WHDLoad erzeugten Dump Dateien abgelegt werden.

Custom/K, Custom1/K/N, Custom2/K/N, Custom3/K/N, Custom4/K/N, Custom5/K/N

Diese Optionen werden nicht von WHDLoad selbst verwendet, können aber vom Slave abgefragt werden um spezielle Einstellungen im Slave zu setzen. Custom/K kann eine Zeichenkette enthalten, Custom1-5/K können auf Ganzzahlen gesetzt werden. In der jeweiligen Dokumentation zu einem installierten Programm ist vermerkt ob die Install Custom Optionen unterstützt.

DCache/S

Diese Option schaltet den Instruction Cache und den Data Cache für das installierte Programm ein. Wenn die MMU von WHDLoad benutzt wird, wird das Chip-Memory als Cacheable Writethrough (impercise) markiert. Die Option wird ignoriert wenn NoCache/S auch gesetzt ist.

D/S

Diese Option ist hilfreich zur Fehlersuche. Wenn aktiviert und WHDLoad hat einen unterstützten Software Freezer (HrtMon/TK) im Speicher gefunden, simuliert WHDLoad einen NMI vor der Ausführung der ersten CPU Instruktion die im Slave enthalten ist.

DebugKey/K/N

Setzt den rawkey Code um das installierte Programm mit Debug (Schreiben der Dump- und Protokoll-Dateien und Exit) zu verlassen. Dies funktioniert nur, wenn der Expert Modus aktiv ist, das VBR von WHDLoad verschoben wurde (NoVBRMove/S nicht aktiv und CPU mindestens 68010) oder der Slave es selbst unterstützt.

Expert/S

Diese Option aktiviert den Expert Modus von WHDLoad. Gegenwärtig beeinflusst es die DebugKey/S Funktion und Warnungen während der Umschaltung zwischen installiertem Programm und dem Betriebssystem (Farbdurchlaufcopperbildschirme).

ExecuteCleanup

Mit dieser Option kann ein Kommando angegeben werden, welches von WHDLoad nach dem Ende des installierten Programmes ausgeführt wird.

ExecuteStartup

Mit dieser Option kann ein Kommando angegeben werden, welches vor der Ausführung des installierten Programmes ausgeführt wird. Das kann benutzt werden, um Hardware welche mit WHDLoad zusammen Probleme hat zu deaktivieren, einen TCP/IP-Stack zu stoppen oder ähnliches.

FileLog/S

Diese Option ist für Entwicklungszwecke vorgesehen. Siehe Dump- und Protokoll-Dateien für weitere Informationen.

FreezeKey/K/N

Wenn einer der bekannten Software Freezer (HrtMon/TK) verwendet wird, kann mit dieser Option ein rawkey Code gesetzt werden, mit dem jederzeit der Freezer aktiviert werden kann. Dazu muß das VBR von WHDLoad verschoben worden sein (NoVBRMove/S nicht aktiv und CPU mindestens 68010) und ein Freezer muß im Speicher installiert sein.

MMU/S

Diese Option ist auf 68030 Maschinen notwendig um die speziellen MMU-Funktionen von WHDLoad (Speicherschutz, verbesserte CPU-Cache Verwaltung, Snooping, resload_Protect#? Funktionen) nutzen zu können. Auf 68040/68060 ist die Option wirkungslos, da hier die MMU bereits per Voreinstellung immer benutzt wird. Es wird empfohlen diese Option auf allen 68030 Rechnern mit einer funktionierenden MMU (d.h. kein 68EC030) in der globalen Konfigurationsdatei zu setzen, weil es die Sicherheit und Zuverlässigkeit erheblich verbessert. Wenn die Option NoMMU/S ebenfalls gesetzt ist, ist die Option wirkungslos.

NoAutoVec/S

Diese Option verhindert, dass WHDLoad das installierte Programm beendet wenn ein unerwarteter Autovector Interrupt oder NMI (Vektoren #25-31 / Adressen $64-$7c) auftritt. Diese Option sollte auf Systemen aktiviert werden, die solche Unterbrechungsanforderungen ständig/zufällig erzeugen (was in der Regel an schlechter Hardware liegt) um zu verhindern, dass das installierte Programm dadurch abbricht.

NoCache/S

Wenn eingeschalten werden alle CPU-Caches ausgeschalten.
Diese Option überschreibt BranchCache/S, Cache/S, DCache/S, StoreBuffer/S und SuperScalar/S.

NoFileCache/S

Die Option schaltet den Datei-Cache aus. Dadurch wir jede Datei durch eine Umschaltung auf das Betriebssystem geladen.
Die Option deaktiviert die Option Preload/S.

NoFilter/S

Schaltet den Audio-Filter aus. Die Initialisierung erfolgt beim Start des installierten Programmes, wenn dieses die Einstellung des Audio-Filters danach selber wieder verändert, ist die Option wirkungslos.

NoFlushMem/S

Normalerweise führt WHDLoad beim Start eine Bereinigung des Speichers durch, bei der unbenutzte Resourcen (Bibliotheken, Schriften, ...) aus dem Speicher entfernt werden. Das Ziel ist, dass möglichst viel freier Speicher für die Preload/S Operation zur Verfügung steht. Wenn die Option aktiviert ist, wird diese Speicherbereinigung nicht durchgeführt. Dies ist sinnvoll auf Systemen mit sehr vielem freien Speicher, um zu vermeiden, dass temporär ungenutzte Resourcen später wieder nachgeladen werden müssen.

NoMMU/S

Wenn diese Option gesetzt ist, benutzt WHDLoad eine vorhandene MMU nicht. Diese Option ist kritisch und gefährlich und sollte nur zu Testzwecken verwendet werden, nicht zur normalen Benutzung. Mehr Infos gibt es im Kapitel MMU. Diese Option überschreibt MMU/S.

NoTrapHandler/S

Wenn diese Option eingeschaltet ist, verwendet WHDLoad die originale Vektortabelle des Betriebssystems als Voreinstellung für das installierte Programm. Dies kann für Testzwecke in Ausnahmefällen hilfreich sein, sollte aber nicht für die alltägliche Benutzung verwendet werden. Warnung: wenn ein Handler für Ausnahmebedingungen mittels der originalen Vektortabelle aufgerufen wird, und dieser versucht Betriebssystemfunktionen oder -datenstrukturen zu verwenden wird dies die Maschine zum Absturz bringen (z.B. exec.Alert).

NoVBRMove/S

Voreingestellt verschiebt WHDLoad die Vektortabelle mittels des VBR (Vector Base Register) auf eine von $0 verschiedene Adresse. Dies hat den Vorteil, dass das installierte Programm diese Vektortabelle nicht verändern kann, was die Sicherheit und Stabilität von WHDLoad erheblich verbessert. Einige Installs mögen mit einer verschobenen Vektortabelle nicht korrekt zusammen arbeiten. Die Ursache dafür kann sein, dass das installierte Programm irgendwelche seltsamen Dinge anstellt die von der verschobene Vektortabelle nicht unterstützt werden oder dass der Autor der Install einfach zu faul war eine verschobene Vektortabelle zu unterstützen. In solch einem Fall muss die Option NoVBRMove gesetzt werden, welche WHDLoad anweist, die Vektortabelle auf Adresse $0 zu legen.
Eine weitere positive Eigenschaft einer verschoben Vektortabelle ist, dass WHDLoad Eingaben von der Tastatur bei jedem Auftreten eines Autovektor Interrupt prüfen kann. Damit ist WHDLoad in der Lage, unabhängig von installierten Programm und Slave, das installierte Programm zu unterbrechen oder zu beenden wenn ein QuitKey/S, DebugKey/S oder FreezeKey/S gedrückt wurde.
Die Fähigkeit die Vektortabelle zu verschieben erfordert mindestens ein 68010 Prozessor. Auf einem 68000 ist die Option wirkungslos, die Vektortabelle beginnt hier immer bei Adresse $0.

NoWriteCache/S

Diese Option deaktiviert den Schreibcache von WHDLoad. Ohne diese Option versucht WHDLoad bei Schreibzugriffen diese im Hauptspeicher zwischenzuspeichern und erst beim Beenden des installierten Programmes diese physisch durchzuführen. Dies hat zum Ziel Umschaltungen auf das Betriebssystem zu vermeiden.

NTSC/S

Wenn aktiv, verwendet WHDLoad einen NTSC-Bildschirm (60 Hz) für das installierte Programm. Auf einem PAL Amiga muss dazu der NTSC Monitortreiber in "DEVS:Monitors/" installiert sein.

PAL/S

Wenn aktiv, verwendet WHDLoad einen PAL-Bildschirm (50 Hz) für das installierte Programm. Auf einem NTSC Amiga muss dazu der PAL Monitortreiber in "DEVS:Monitors/" installiert sein.

Preload/S

Wenn diese Option eingeschalten ist versucht WHDLoad beim Start soviele Dateien und Diskettenabbilder wie möglich in den Hauptspeicher zu laden. Dies verbessert die Ablaufgeschwindigkeit da Umschaltungen auf das Betriebssystem zum Laden von Daten vermieden werden können. Diese Option sollte eigentlich immer eingeschalten sein.

QuitKey/K/N

Setzt den rawkey Code um das installierte Programm zu Beenden. Dies funktioniert nur, wenn das VBR von WHDLoad verschoben wurde (NoVBRMove/S nicht aktiv und CPU mindestens 68010) oder es der Slave selbst unterstützt.

Slave

Der Name des Slaves der von WHDLoad verwendet werden soll. Der Slave enthält den Schnittstellenkode der für die Kommunikation zwischen dem installierten Programm und WHDLoad notwendig ist.

Snoop/S, SnoopAGA/S, SnoopECS/S, SnoopOCS/S

Diese Optionen aktivieren den Cia/Custom Register Snoop Modus von WHDLoad.

ReadDelay/K/N

Mit dieser Option lässt sich die Zeit in 1/50 Sekunden einstellen, die WHDLoad wartet, nachdem es Daten von Disk gelesen hat (während der Ausführung des installierten Programmes). Die Zeit wird auch gewartet nachdem die Preload Operation abgeschlossen wurde. Die Wartezeit vermeidet Probleme im Zusammenhang mit Laufwerken (z.B. CDROM) welche nach der Leseoperation noch bestimmte Aktionen durchführen wollen (z.B. den Motor ausschalten).

RestartKey/K/N

Setzt den rawkey Code um das installierte Programm neu zu starten. Dies funktioniert nur, wenn das VBR von WHDLoad verschoben wurde (NoVBRMove/S nicht aktiv und CPU mindestens 68010).

SplashDelay/K/N

Mit dieser Option lässt sich die Zeit in 1/50 Sekunden einstellen, die WHDLoad das Informationsfenster beim Start anzeigt. Wenn SplashDelay/K/N kleiner als ReadDelay/K/N eingestellt ist, wird das Fenster solange wie bei ReadDelay/K/N eingestellt angezeigt. Das Fenster wird auch mindestens solange angezeigt wie Preload/S arbeitet.
Wenn die Option auf 0 gesetzt wird, wird kein Informationsfenster geöffnet.

StoreBuffer/S

Diese Option schaltet den Store Buffer des 68060 ein. Auf anderen Prozessoren ist die Option wirkungslos.
Diese Option hat keine Funktion wenn NoCache/S auch gesetzt ist.

SuperScalar/S

Diese Option aktiviert die Fähigkeit des 68060 mehrere Instruktionen in einem Maschinenzyklus zu verarbeiten. Auf anderen Prozessoren ist die Option wirkungslos.
Diese Option hat keine Funktion wenn NoCache/S auch gesetzt ist.

TimeOut/K/N

Mit dieser Option kann eingestellt werden, dass WHDLoad das installierte Programm nach einer vorgegebenen Zeitdauer beendet. Voraussetzung ist, dass die Option NoVBRMove/S nicht aktiv ist und das installierte Programm den ciaa.ciatod Timer nicht verändert. Die Zeitdauer wird in 1/50 Sekunden angegeben. Um diese Zeitdauer für ein Spiel oder eine Demo zu bestimmen setzt man die Optionen Expert/S und DebugKey/K/N, und drückt beim Erreichen des Punktes an dem das Programm beendet werden soll den DebugKey. In der erzeugten .whdl-register Datei lässt sich nun die Zeit bei ciaa-event ablesen. Wenn die Netzfrequenz 50 Hz beträgt, dann ist dies der Wert der bei TimeOut/K/N anzugeben ist. Bei 60 Hz Netzfrequenz ist der Wert mit 5/6 zu multiplizieren.

WriteDelay/K/N

Die Option stellt in 1/50 Sekunden ein, wie lange WHDLoad nach dem physischen Schreiben von Daten warten soll. Betroffen sind alle resload_Save#? Funktionen und die FileLog/S Operation. Die Wartezeit ist notwendig, weil Dateisysteme für gewöhnlich die Daten nicht unmittelbar auf Disk schreiben. Es dauert eine gewisse Zeit (1...3 Sekunden) bis alle Strukturen des Dateisystems erfolgreich aktualisiert wurden. Der voreingestellte Wert ist 150, was eine Wartezeit von 3 Sekunden bedeutet. Der Wert kann auch auf 0 gesetzt werden, aber dann sollte ein laufendes installiertes Programm nie mit einem Reset oder dem Netzschalter beendet werden, da gespeicherte Daten möglicherweise noch nicht korrekt auf Disk geschrieben wurden.