Системные мониторы / Отладчики
Существует много различных программ для отладки. Их использование может дать
огромную помощь в процессе разработки и отладки программ. WHDLoad напрямую
поддерживает HrtMon и ThrillKill. Другие виды могут использоваться через
параметр NoTrapHandler/S (это естественно
имеет некоторые неудобства). Если вы хотите прямую поддержку для других способов -
свяжитесь со мной, и если это возможно, я буду включать эту поддержку.
При старте WHDLoad проверяет, активен ли один из поддержанных мониторов. Если
хотя бы один из известных мониторов будет
обнаружен, то WHDLoad создаст для него специальные данные. Если MMU
используется WHDLoad, то заявленная память используется монитором и кэшируется
WriteThrough. В процессе работы игр/демо WHDLoad пересылает все NMI-исключения
NMI-вектору, записывая их в таблицу векторов монитора. Дополнительно, если VBR
перемещён с помощью WHDLoad (NoVBRMove/S не включен, и
процессор по крайней мере 68010 и выше), то при каждом
прерывании будет проверяться - не нажата ли на клавиатуре клавиша FreezeKey.
И если клавиша нажата то
WHDLoad преобразует stackframe в NMI stackframe
и войдёт в монитор через его NMI-handler.
HrtMon
Обнаружение в памяти происходит достаточно уверенно. Я думаю, что это также
будет работать с будущими версиями. Будьте осторожны, если MMU используется
WHDLoad: не делайте доступов из HrtMon
вне области BaseMem,
это вызовет ошибку,
потому что HrtMon не может обрабатывать Access Fault Exception.ThrillKill
Отсутствует какая-либо подпись в мониторе,
поэтому определение происходит путем сравнения с определенным
участком кода. Этот способ определения может не работать
с другими версиями.