Moniteurs système
Il existe bon nombre de moniteurs système logiciels. L'utilisation de tels outils
s'avère très utile pendant le développement et le debug des slaves et du programme installé. WHDLoad est directement interfacé avec HRTMon et ThrillKill. D'autres peuvent être utilisés avec l'option NoTrapHandler/S (cela présente des inconvénients bien sûr).
Si vous voulez une interface directe pour un autre moniteur, contactez-moi et si c'est possible, je le ferai. Au démarrage de WHDLoad, celui-ci vérifie si l'un des moniteurs connus est actif. S'il en trouve un, WHDLoad effectue des opérations spéciales. Si le MMU est utilisé par WHDLoad, celui-ci déclare la mémoire utilisée par le moniteur comme WriteThrough cachable. Pendant que le jeu ou la démo tourne, WHDLoad redirige toutes les NMI (exceptions non masquables) vers le vecteur NMI récupéré de la table des vecteurs du moniteur. De plus, si le VBR est relogé par WHDLoad (NoVBRMove/S
n'est pas positionné et le processeur est au moins un 68010) il compare la "FreezeKey" avec la valeur actuelle du clavier à chaque interruption. Si la valeur correspond, WHDLoad traite le clavier, transforme la structure de la pile en stackframe NMI et appelle le moniteur par son handler NMI.
HRTMon
La détection en mémoire est relativement sûre. Je pense que cela fonctionne pour les versions à venir. Attention si le MMU est utilisé par WHDLoad: ne pas accéder à des zones en dehors des zones mémoires valides (mémoire de base, extension, slave, ...). Cela plante car HRTMon ne gère pas les exceptions de violation d'accès.
Dans le programme de préférence HRTmonPrefs, vous devez activer l'option 'No VBR move'. Sinon vous ne pourrez
pas entrer dans le monitor lors de l'exécution de WHDLoad.
Après avoir été dans HRTMon, le programme sous WHDLoad peut afficher un écran graphique incorrect. Ceci
peut arriver car HRTMon écrit quelques informations dans les registres DMA. Vous pouvez contourner ceci en
disant à HRTMon d'écrire la valeur adéquate, par exemple utilisez 'e $100 $5200' pour afficher un écran de 32
couleurs avant de retourner dans le programme installé.
La version d'HRTMon (built) dans WinUAE peut seulement être détectée si HRTMon a été au mois une fois activé avec la touche (PgUp).
Dès la 1ère activation, le vecteur NMI sera mis et WHDLoad pourra localiser le moniteur.
ThrillKill
Il n'y a pas de signature utilisable dans le moniteur, aussi, des comparaisons de code sont utilisées. Du coup, la détection ne fonctionnera pas avec d'autres versions.