_Б. Технические подробности
Программа монитора полностью занимает банк 2 ПЗУ (Monitor),
частично 3 (TR-DOS) и использует несколько ячеек из 0 и 1 банков. Для
своей работы сервис-монитор использует 8 и 9 банки ОЗУ, а также 11 ячеек
из стека пользователя (см. табл.16).
Регистр SP в мониторе показывает реальное значение стека в прерванной
программе, однако 11 байт в стеке ниже SP будут утеряны.
Кроме перечисленных ячеек при трассировке в программе пользователя
используются 8 ячеек рабочего буфера. Расположение буфера в памяти мо-
жет быть различным (см. команду WORKSPACE на стр. 24), сразу после
включения буфер занимает ячейки между адресами 23719... 23726
включительно.
Необходимо отметить следующие обстоятельства, которые могут на-
рушить работу прерванной программы:
1. Если регистр SP указывает на область ПЗУ, то прерванную программу
не удастся запустить, так как значения, сохраняемые в стеке, будут утеряны.
Более того, отсутствие в стеке корректного номера функции приведет к не-
правильной работе самого монитора.
2. Если в вызываемой программе регистр SP используется не для сохра-
нения стека, а для адресации данных, то вызов монитора приведет к разру-
шению этих данных. Тем самым будет нарушен код программы, и, скорее
всего, нормальное продолжение ее выполнения невозможно. Например,
DI
LD (ADDRSP).SP
LD SP, DATA
POP ВС Вызов монитора при выпол-
РОР DE нении этого фрагмента, скорее
POP HL всего, испортит данные в
............области DATA
POP IX J
LD SP, (ADDRSP)
EI
3. Отсутствие аппаратных средств слежения за изменением содержимого
системных регистров не дает 100% гарантии правильного определения
конфигурации памяти в момент вызова монитора. К примеру, если програм-
ма не использует копию регистра 7ffdh в системной переменной BANKM
(23388) номер активного экрана будет определен неверно.
Все вышеприведенное также справедливо и для стандартной программы
обработки кнопки MAGIC из ПЗУ операционной системы TR-DOS, однако
теневой монитор в некоторых случаях может оказаться более «приве-
редливым».
4. Для своей работы сервис-монитор использует 8 и 9 страницы ОЗУ,
если информация, содержащаяся в них, будет изменена, то поведение прог-
раммы не предсказуемо. Для восстановления работоспособности в этом слу-
чае необходимо ВЫКЛЮЧИТЬ ПИТАНИЕ на 5... 10 секунд.
5. Отладчик неправильно работает с адресами 0c000h...0cl00h, когда в
третьей странице памяти микропроцессора установлен 2-й банк ОЗУ.
К сожалению, монитор не может самостоятельно отслеживать изменения
в используемых им страницах ОЗУ-это отняло бы слишком много времени.
Не представляется возможным и проверять всю память после включения
питания для определения ее состояния-в процессе работы слишком много
ячеек меняют свои значения. Поэтому монитор судит о достоверной инфор-
мации в памяти по специальному 256-и байтовому полю. Изменение зна-
чений ячеек памяти в этом поле приведет к реинсталяции (переустановке)
сервис-монитора после «сброса» компьютера.
Для явного задания реинсталяции монитора после «сброса» можно вы-
брать функцию Set Up/Reset (см. стр.14) в меню.