Monitores del Sistema / Congelador
Hay gran cantidad de congeladores puramente por software ahí afuera. El uso de estas herramientas puede ser
de gran ayuda durante el desarrollo y detección de errores en los Esclavos y el programa instalado.
WHDLoad soporta directamente HRTmon y ThrillKill. Otros tipos pueden ser usados con la
opción NoTrapHandler/S (esto tiene algunas desventajas, por supuesto).
Si Ud. desea tener soporte directo para otro programa, contácteme y si puede ser hecho incluiré soporte
para el mismo. Durante el arranque de WHDLoad este intentara comprobar si alguno de los monitores soportados
esta activo. Si se encuentra alguno, WHDLoad hará algunas cosas especiales. Si la MMU esta siendo usada por WHDLoad
este declarará la memoria usada por el monitor como válida y cacheable WriteThrough. Durante la ejecución de
la demo/el juego se reenviarán todas las excepciones NMI al vector NMI salvado desde la tabla de vectores
del monitor. Adicionalmente, si el VBR es desplazado por WHDLoad (NoVBRMove/S no
esta configurada y la CPU es como mínimo un 68010) este comparará la FreezeKey con
el valor actual del teclado en cada interrupción. Si los valores coinciden, WHDLoad hará lo necesario con el
teclado, transformando el marco de la pila a un marco de pila de NMI y entrando en el monitor a través
de su gestor de NMI.
HRTmon
La detección en memoria debe ser relativamente segura. Pienso que también funcionará con versiones futuras.
Tenga cuidado si la MMU esta siendo usada por WHDLoad: no acceda al área fuera de BaseMem desde HRTmon.
Esto ocasionará un cierre del programa debido a que HRTmon no puede manejar la Excepción de Falla de Acceso
(Access Fault Exception).
En HRTmonPrefs Ud. debe seleccionar la casilla 'No VBR move', de lo contrario no podrá ingresar
al monitor mientras WHDLoad se esta ejecutando.
Luego de retornar desde HRTmon al programa ejecutándose bajo WHDLoad Ud. puede notar una pantalla
gráfica incorrecta. Esto se debe a que HRTmon sobreescribe algunos registros. Se puede evitar esto
indicándole a HRTmon el valor correcto, por ej. use 'e $100 $5200' para una pantalla de
32 colores antes de retornar.
El HRTmon inbuído dentro de WinUAE solo puede ser detectado si HRTmon ha sido
activado previamente al menos una vez (presionando la tecla PgUp). Esto se debe a
que en la primer activación se configura el vector NMI utilizado por WHDLoad para
encontrar el monitor.
ThrillKill
No hay ninguna firma utilizable en el congelador, por lo tanto se usan algunas comparaciones en el código.
Por lo tanto la detección no funcionará con otras versiones.