Benutzung

WHDLoad kann von der Kommandozeile (CLI/Shell) oder von der Workbench aus gestartet werden. Optionen können in der globalen Konfigurationsdatei oder mittels Argumenten oder Toolstypes angegeben werden. Die Slave Option ist dabei erforderlich. Andere Optionen mögen in Abhängigkeit von der verwendeten Hardware oder dem installierten Programm ebenfalls notwendig sein. Wenn WHDLoad von der Kommandozeile gestartet wird, beendet es sich mit den folgenden Rückgabewerten:

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-
ChkCopConSchalterx-
ChkIntsSchalterx-
ChipNoCacheSchalterxx
CoreDumpSchalterx-
CoreDumpPathZeichenkette-xPROGDIR:
CustomZeichenkettex-
Custom1numerischx-
Custom2numerischx-
Custom3numerischx-
Custom4numerischx-
Custom5numerischx-
DSchalterx-
DataZeichenkettex--
DebugKeynumerischxx-
DCacheSchalterx-
ExecuteCleanupZeichenkette-x-
ExecuteStartupZeichenkette-x-
ExpertSchalter-x
ExpChipSchalterx-
ExpLocalSchalterx-
Exp24BitSchalterx-
FileLogSchalterx-
FreezeKeynumerischxx
MMUSchalterxx
NoAutoVecSchalterxx
NoCacheSchalterx-
NoFileCacheSchalterx-
NoFilterSchalterxx
NoFlushMemSchalterxx
NoMMUSchalterxx
NoReqSchalterxx
NoTrapHandlerSchalterx-
NoVBRMoveSchalterx-
NoWriteCacheSchalterxx
NTSCSchalterxx
PALSchalterxx
PreloadSchalterx-
QuitKeynumerischxx-
ReadDelaynumerisch-x0
RestartKeynumerischxx-
ShowRegsZeichenkette-xSYS:Utilities/MultiView
SlaveZeichenkettex-WHDLoad.Slave
SnoopSchalterx-
SnoopAGASchalterx-
SnoopECSSchalterx-
SnoopOCSSchalterx-
SplashDelaynumerischxx200
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: Workbench Optionen
CLI oder Shell: 1> WHDLoad SuperGame.Slave Preload NTSC QuitKey=69 Custom1=1

Erklärung der Optionen

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.

ButtonWait/S

Diese Option beeinflusst WHDLoad nicht, kann aber 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).

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.

ChkCopCon/S

Mit dieser Option prüft WHDLoad ständig, dass das installierte Programm nicht den Copper-Zugriff auf die DMA-Register mittels des custom.copcon Register erlaubt. Dies funktioniert nur im Zusammenspiel mit einer der SnoopOCS/SnoopECS/SnoopAGA Optionen.

ChkInts/S

Diese Option veranlasst bei jedem auftretenden Interrupt eine Prüfung, ob für diesen ein passendes Paar Bits in intreq und intena gesetzt ist. Wenn dies nicht der Fall ist, wird das installierte Programm mit einer entsprechenden Fehlermeldung beendet. Mittels dieser Funktion ist es leicht möglich Interrupt-Acknowledge Probleme auf schnelleren Rechnern (68040/060) oder fehlerhafte Hardware zu entdecken. Da solch eine Erkennung auch unerwünschter Weise zustande kommen kann, wenn genau während des Ausschaltens der Interrupts durch Setzen von intena ein Interrupt auftritt, wurde diese Prüfung als einschaltbare Option realisiert.

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.

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.

Data/K

Mit dieser Option kann ein Verzeichnis angegeben werden, in welches WHDLoad beim Start wechselt bevor das installierte Programm gestartet wird. Diese Option überschreibt die Variable ws_CurrentDir in der Slave-Struktur.

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.

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.

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.

Expert/S

Diese Option aktiviert den Experten Modus von WHDLoad. Gegenwärtig beeinflusst es die DebugKey/S Funktion und Warnungen während der Umschaltung zwischen installiertem Programm und dem Betriebssystem (Farbdurchlaufcopperbildschirme). Außerdem erscheint im Experten Modus bei Fehlerrequestern von WHDLoad eine zusätzliche Schaltfläche mit der Aufschrift Show Regs, welche die sofortige Anzeige der Register und Statusinformationen analog dem register dump erlaubt.

ExpChip/S, ExpLocal/S, Exp24Bit/S

Wenn das installierte Programm Erweiterungsspeicher verwendet (ws_ExpMem), kann mit der Verwendung dieser Option erreicht werden, dass WHDLoad den Erweiterungsspeicher als Chip Memory, Local Memory oder 24BitDma Memory allokiert. Dies kann zu einer Verringerung der Ausführungsgeschwindigkeit führen, weil die CPU auf den nun verwendeten Speicher nicht mehr so schnell wie im Vergleich zum Fast Memory zugreifen kann. Unter Zuhilfenahme verschiedener Programme (z.B. Scout, SysInfo, GvpInfo, ...) kann man sich Anzeigen lassen, welche Eigenschaften die vorhandenen Speicherbereiche haben.
Diese Optionen haben das Ziel durch eine Verringerung der Performance die Kompatibilität zu alten Spielen auf schnelleren Rechnern zu verbessern.

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 viel 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.

NoReq/S

Diese Option kann nur beim Start von der Kommandozeile (CLI/Shell) verwendet werden. Beim Start von der Workbench hat die Option keine Auswirkungen. Wenn aktiv führt die Option dazu, dass WHDLoad keine Fehlerfenster mehr öffnet, sondern die Ausgaben direkt in das CLI/Shell-Fenster ausgibt von welchem aus WHDLoad gestartet wurde.

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.

ShowRegs/K/N

Diese Option stellt bei aktivem Schalter Expert/S ein, welches Programm für die Anzeige der Statusinformationen beim Betätigen der Show Regs-Schaltfläche benutzt wird. WHDLoad hängt an die angegebene Zeichenkette den Dateinamen für die temporär erzeugte Datei (gegenwärtig T:.whdl_register) an und führt das Programm dann aus.

Slave

Der Name des Slaves der von WHDLoad verwendet werden soll. Der Slave enthält den Schnittstellencode 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 festlegt, wie lange WHDLoad beim Start das Informationsfenster 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.