### System Monitore und Freezer

Es gibt eine Reihe verschiedener Softwarefreezer. Die Verwendung solcher Programme kann eine große Hilfe bei der Entwicklung und der Fehlersuche bei Slaves und zu installierenden Programmen sein. Direkte Unterstützung gibt es in WHDLoad für HRTmon und ThrillKill. Andere können eventuell über die Option NoTrapHandler/S (Diese hat aber verschiedene Nachteile!) verwendet werden. Wenn direkte Unterstützung für andere Monitore gewünscht wird, bitte eine Nachricht an den Autor senden, der dann wenn möglich, die Unterstützung hinzufügen wird. Beim Starten von WHDLoad wird geprüft, ob ein bekannter Freezer aktiv ist. Falls einer gefunden wird, werden einige spezielle Initialisierungen durchgeführt. Wenn die MMU von WHDLoad benutzt wird, wird der gesamte Speicher der vom Freezer belegt ist als gültig unter WHDLoad markiert und auf cacheable WriteThrough gesetzt. Während das installierte Programm ausgeführt wird, werden alle Exceptions und der NMI an den Freezer weitergeleitet. Außerdem vergleicht WHDLoad bei jedem Interrupt den FreezeKey mit der aktuell gedrückten Taste. Wenn diese übereinstimmen, wandelt WHDLoad das gegebene Stackframe in ein NMI-Stackframe um und springt in den NMI-Handler des Freezers.

#### HRTmon

Die Erkennung im Speicher sollte relativ sicher sein. Ich denke, es wird auch mit zukünftigen Versionen funktionieren. Vorsicht ist geboten, wenn die MMU von WHDLoad verwendet wird: Es darf nicht auf Speicher außerhalb von BaseMem zugegriffen werden. Ansonsten gibt es einen Absturz, weil HRTmon die resultierende Access Fault Exception nicht verarbeiten kann.

In den HRTmonPrefs muss die Option 'No VBR move' mit einem Häckchen ausgewählt sein, sonst ist es nicht möglich den Monitor während das Laufes von WHDLoad zu aktivieren.

Nach dem Zurückkehren aus dem Monitor zum installierten Programm kann es sein, das die Grafikanzeige nicht in Ordnung ist. Die Ursache dafür ist, dass HRTmon einige Custom Register überschreibt. Das Problem kann behoben werden, indem man HRTmon die korrekten Werte für diese Register mitteilt, z.B. mit `'e $100 $5200'` was das Register bplcon0 für einen 32-Farben Bildschirm setzt.

Der in WinUAE eingebaute HRTmon kann von WHDLoad nur erkannt werden, wenn dieser vorher einmal aktiviert wurde (drücken von PgDn). Dies hat den Grund, dass bei der Aktivierung der NMI-Vector gesetzt wird welcher von WHDLoad zur Lokalisierung des Monitors benötigt wird.

#### ThrillKill

Es gibt keine verwendbare Signatur bei diesem Freezer, deshalb werden einige Code-Vergleiche verwendet. Das ist auch der Grund dafür, dass die Erkennung vermutlich nicht mit zukünftigen Versionen funktionieren wird.