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.
Μετά την επιστροφή από ένα ενεργό HRTmon στο πρόγραμμα που έτρεχε από το WHDLoad
μπορεί να παρατηρήσετε προβληματική εμφάνιση γραφικών. Αυτό συμβαίνει γιατί το HRTmon γράφει
πάνω σε κάποιον custom καταχωρητή. Μπορείτε να το παρακάμψετε αυτό δίνοντας στο HRTmon τη σωστή τιμή,
π.χ. use 'e $100 $5200' για μια οθόνη 32 χρωμάτων πριν την επιστροφή.
Το HRTmon που βρίσκεται μέσα στο WinUAE μπορεί να εντοπιστεί μόνο εάν το HRTmon έχει
ενεργοποιηθεί προηγουμένως μία φορά τουλάχιστον (πατήστε το πλήκτρο PgUp). Επειδή στην πρώτη
ενεργοποίηση το NMI vector θα οριστεί το οποίο θα χρησιμοποιηθεί από το WHDLoad για να εντοπιστεί
το monitor.
ThrillKill
Δεν υπάρχει χρησιμοποιούμενη υπογραφή στο freezer, οπότε
χρησιμοποιούνται μερικές συγκρίσεις κώδικα. Συνεπώς η αναγνώριση δεν θα λειτουργήσει
με άλλες εκδόσεις.