System Monitors / Freezer

Υπάρχουν πολλοί καθαροί software freezers. Η χρήση τέτοιων εργαλείων μπορεί να είναι μεγάλη βοήθεια κατά την ανάπτυξη και debugging των Slaves και των εγκατεστημένων προγραμμάτων. Το WHDLoad υποστηρίζει απευθείας το HrtMon και το ThrillKill. Άλλοι τύποι μπορούν να χρησιμοποιηθούν με την επιλογή NoTrapHandler/S (αυτό έχει άλλα μειονεκτήματα φυσικά). Εάν θέλετε απευθείας υποστήριξη για ένα άλλο, μπορείτε να επικοινωνήσετε μαζί μου και αν μπορεί να γίνει, θα συμπεριλάβω υποστήριξη για αυτό. Στην εκκίνησή του το WHDLoad θα ελέγξει αν ένα από τα υποστηριζόμενα monitors είναι ενεργό. Αν βρεθεί κάποιο το WHDLoad θα κάνει μερικά ειδικά πράγματα. Αν το MMU χρησιμοποιείται από το WHDLoad θα δηλώσει τη μνήμη που χρησιμοποιείται από το monitor ως έγκυρη και ως WriteThrough cacheable. Κατά τη διάρκεια της εκτέλεσης του παιχνιδού/demo θα προωθήσει όλες τις εξαιρέσεις NMI στο NMI vector που αποθηκεύεται από το vector table του monitor. Επιπλέον, εάν το VBR μετακινηθεί από το WHDLoad (Η NoVBRMove/S δεν έχει οριστεί και ο cpu είναι τουλάχιστον 68010) θα συγκρίνει το FreezeKey με την τιμή του πληκτρολογίου σε κάθε interrupt. Αν οι τιμές ταιριάζουν το WHDLoad θα κάνει τα απαραίτητα πράγματα του πληκτρολογίου, θα μεταμορφώσει το stackframe σε ένα NMI stackframe και θα μπει στο monitor μέσω του NMI handler του.

HrtMon

Η αναγνώριση στη μνήμη πρέπει να είναι σχετικά ασφαλής. Νομίζω ότι θα δουλέψει και με μελλοντικές εκδόσεις επίσης. Προσοχή αν χρησιμοποιείται το MMU από το WHDLoad: μην προσπελάσετε περιοχές έξω από την BaseMem από το HrtMon. Θα αποτύχει γιατί το HrtMon δεν χειρίζεται την εξαίρεση Access Fault Exception που προκύπτει.

Στο HRTmonPrefs πρέπει να επιλέξετε το 'No VBR move', διαφορετικά δεν θα μπορείτε να μπείτε στο monitor ενώ τρέχει το WHDLoad.

ThrillKill

Δεν υπάρχει χρησιμοποιούμενη υπογραφή στο freezer, οπότε χρησιμοποιούνται μερικές συγκρίσεις κώδικα. Συνεπώς η αναγνώριση δεν θα λειτουργήσει με άλλες εκδόσεις.