_2.4.5. Работа с внешними устройствами
Для отладки внешних устройств предназначены две команды:
IN addr
чтение байта из порта ввода/вывода. Принятый байт отображается в слу-
жебном окне. Полный 16-ти разрядный адрес задается параметром addr.
OUT addr, data
Запись байта данных data в порт ввода/вывода. Полный 16-ти разрядный
адрес задается параметром addr.
__2.4.6. Ловушки (точки останова)
При выполнении или трассировке программы монитор предоставляет
возможность использовать так называемые ловушки (точки останова). Ло-
вушка устанавливается на конкретный адрес в памяти компьютера. В случае
передачи управления на такой адрес ход выполнения программы прерыва-
ется и управление получает монитор. Продолжить выполнение прерванной
программы можно обычными способами (командой JUMP, см. стр. 22,
трассировкой и другими).
BREak number, type, addr, int_count[,bank]
установка ловушки на адрес addr.
Монитор позволяет установить до восьми ловушек (1 ...8), номер ловушки
задается параметром number. Если ловушка с таким номером уже установ-
лена, то информация ней будет просто переписана.
Параметр int_count задает количество проходов по ловушке до ее
активизации. Например, значение 1 (или 0) приведет к немедленному пре-
рыванию программы, а значение 2 - к прерыванию программы в тот момент,
когда ловушке управления будет передано второй раз.
Существует два ловушек: физические и логические. Физические ловушки
могут быть установлены только в оперативной памяти, при этом они изме-
няют содержимое той ячейки памяти, на которую они установлены. Вместо
записанного в ячейку кода монитор устанавливает байт Ocfh - код команды
RST 8. При этой команде монитор получит управление и прервет выполня-
емую программу. Изменение памяти происходит при выходе из монитора,
затем, при возврате в монитор, содержимое ячейки будет восстановлено.
Логические ловушки не модифицируют ячеек памяти и поэтому могут быть
установлены как в оперативной, так и в постоянной памяти. Эти ловушки
действуют только при трассировке программы средствами монитора (см. раз-
дел 2.4.8. «Трассировка программы на стр. 23).
Монитор поддерживает однократный и многократный режим работы ло-
вушек. При однократном режиме ловушка активна до момента ее срабаты-
вания и затем выключается. В многократном режиме ловушка остается
ак!ивной и после выполнения.
Определяет тип и режим ловушек параметр type (см. табл. 3).
Параметр bank задает номер банка оперативной памяти, в кагором будет установ-
лена ловушка, если этот параметр опущен, то установка происходит втекущем бшке.
BRK number, [on!off]
включение (on)/выключение (off) ловушки с номером number. Пред-
варительно ловушка должна быть определена командой BREAK.
Выключенная физическая ловушка не устанавливается в память.
DELBreak number
удаление информации о ловушке с номером number. Эта команда ана-
логична команде BRK number,OFF, с той лишь разницей, что информация
о ловушке полностью теряется. Пользоваться ей имеет смысл только в
профессиональной версии монитора.
LISTBreak I LBreak
вывод на экран информации о ловушках. Информация выдается в виде
таблицы (см. табл.4)
2.4.7. Выполнение программы
Jump [[addr],bank]
передача управления программе, параметр bank определяет номер банка
ОЗУ при выполнении команды, если он пропущен, то остается текущий
банк. Параметр addr задает адрес, куда будет передано управление, если он
опущен, берется значение PC.
CALJ [[addr],bank]
аналогично команде JUMP с той разницей, что в стек исполняемой програм-
мы записывается адрес программы возврата в монитор. Таким образом, испол-
няемая программа выполняется, как подпрограмма ошосикмьно ментора.
_2.4.8. Трассировка программы
Трассировка программы заключается в пошаговом выполнении команд
отлаживаемой программы полностью под управлением монитора. Таким
образом, монитор в режиме трассировки не выполняет команды программы
в прямом смысле слова, а эмулирует их выполнение. Все команды
трассировки выполняют инструкции указываемые регистром PC.
В режиме ручной трассировки Используются следующие «быстрые
клавиши»:
SS/3 выполнение одной команды отлаживаемой программы;
SS/4 выполнение одной команды отлаживаемой программы с бы-
стрым выполнением подпрограмм. Подпрограммы (команды ассем-
блера CALL и RST) не транслируются этой командой, а непосред-
ственно выполняются;
SS/9 пропуск одной команды.
SLOW type
автомагическая трассировка. Режимы трассировки, задаваемые пара-
метром type, определяются его отдельными битами (см. табл.5). Варьируя
значениями битов можно добиться оптимального соотношения время/инфор-
мация - пожертвовав не используемыми значениями, увеличив скорость
трассировки*.
Табл .5. Режимы трассировки
Необходимо отметить, что на скорость трассировки влияют еще несколь-
ко факторов. При выполнении каждой трассируемой команды область экра-
на (4000h...5affh) два раза переписывается в специальный буфер монитора.
На это тратится довольно значительное время, если содержимое экранной
области не играет роли для отлаживаемой программы, то имеет смысл
отключить его сохранение (см. команду SCREEN на стр.24). Другим спосо
бом увеличения скорости трассировки является прямое выполнение под-
программ, расположенной и постоянной памяти (см. команду OPTION на
стр.24). Эти подпрограммы практически не содержат ошибок и «поведение»
их заранее известно.
__2.4.9. Работа с экраном
SCReen |on I off 1517J
управление экраном. Команда Screen без параметров покажет сохранен-
ный экран, нажатие на любую клавишу вернет управление в режим монито-
ра. Команда Screen с параметром включает (on) или выключает (off) режим
сохранения экрана в специальном буфере монитора, точнее, сохраняются
первые 6912 байт из 5 банка ОЗУ. Параметры команды 5 и 7 устанавливают
соответственно в 5 или 7 банках ОЗУ.
К сожалению в компьютере Scorpion ZS 256 (как, впрочем, и ZX
Spectrum 128) не предусмотрено аппаратной проверки на номер используе-
мого экрана. Поэтому монитор устанавливает тот или иной экран, исходя из
содержимого ячейки BANKM, расположенной по адресу 23388 (копия
системного регистра, поддерживаемая интерпритатором Бейсик-128).
_2.4.10. Выход из монитора
Выход из монитора возможен по командам JUMP и CALL (см. раздел
2.4.7. «Выполнение программы» на стр.22).
EXit
возврат управления в систему меню теневого сервис-монитора.
_2.4.11. Режимы монитора
Часть режимов работы монитора устанавливается через меню (см. меню
«SetUp/Monitor» на стр.13). Кроме этого, используются следущие команды.
OPTion bit, on I off
задание некоторых режимов монитора. Включая (on) или отключая (off)
отдельные биты этой команды (bit), можно изменить те или иные режимы
работы монитора (см. табл.6).
WORKspace addr
задание адреса начала свободного буфера для команд трассировки.
Объем буфера 8 байт. Располагаться буфер может в любом месте опе-
ративной памяти в диапазоне адресов 23296...49143.
BASE 01218110116
установка основания системы счисления, используемой при вводе чисел
без префикса. По умолчанию (параметр 0) используется десятичная система.
SHow
вывод информации о состоянии монитора (см. табл.7).
2.4.12. Прочие команды
INT°rrupt onoff
управление прерываниями. Эта команда разрешает (on) или запрещаеп (off)
прерывание в программе, действуя аналогично командам микропроцессора
EI и DI.
EX AF
смена индикации регистров AF на альтернативные.
Команды EX AF и ЕХХ (см. ниже) влияют только на индикацию значений
регистров в мониторе, реального переключения наборов не происходит.
ЕХХ
смена индикации регистров ВС, DE и HL на альтернативные.
? data
вывод параметра data в различных командах счисления. Перед числами
ставятся соответствующие системам префиксы, см. таблЛ. Этой командой
удобно пользоваться, как калькулятором.
CATalogue [niim_drive]
вывод на экран информации из каталога дискеты, вставленной в диско-
вод по умолчанию (подробнее см. стр.9). Можно указать номер дисковода: О
для А, 1 для В.
LCATalogue [num_drivel
вывод информации из каталога дискеты на принтер, параметры ана-
логичны команде CATALOGUE.
Help
показ в служебном окне краткой сводки команд монитора. Число после
команды означает количество возможных параметров, знак - что параметром
может быть меньше. Слово complex указывает на сложный формат парамет-
ров.