[an error occurred while processing this directive]

.нс0

.сс

.ми1

.ао1

.цв

.шп6

ПРОГРАМНЫЕ ПРОДУКТЫ
ФИРМЫ
ALV SOFTWARE

.шп14

СИСТЕМА ОТЛАДКИ ОБЪЕКТНЫХ ПРОГРАММ
"BEST TOOL KIT"
ДЛЯ ПЭВМ "АГАТ"
ВЕРСИЯ 89.2

ОПИСАНИЕ

.шп2

.цв

_______________________________________
Автор данной разработки и документа
Голов А.А.
Москва. (C) 1989

.нс1

.ми0

.ао0

.кт____________________________________________________________________________________________________________________________

.сс

.цв
.шп14
ОГЛАВЛЕНИЕ
.шп0

.ов
.кс0
Предисловие ______________________________________________________  2

Глава 1. Введение  в систему _____________________________________ 3
         1.1. Запуск системы _____________________________________ 3
         1.2. Диалог с системой __________________________________ 3
         1.3. Переопределяемые клавиши ___________________________ 4
         1.4. Вывод на бумагу ____________________________________ 4

Глава 2. Работа с отладчиком _____________________________________ 5
         2.1. Формат команд ______________________________________ 5
         2.2. Полный набор команд ________________________________ 5

Глава 3. Работа с файловой системой ______________________________ 11
         3.1. Набор команд файловой системы ______________________ 11
         3.2. Общий формат параметров обращения к диску __________ 12
         3.3. О командах поподробней _____________________________ 13
         3.4. Сообщения об ошибках _______________________________ 16

Глава 4. Редактор памяти _________________________________________ 17
         4.1. Вызов редактора памяти _____________________________ 17
         4.2. Работа с клавиатурой _______________________________ 17
         4.3. Управляющие клавиши ________________________________ 17

Глава 5. Секторный редактор ______________________________________ 19
         5.1. Вызов секторного редактора _________________________ 19
         5.2. Управляющие клавиши ________________________________ 19

Глава 6. Программа для копирования дисков ________________________ 20
         6.1. Вызов программы копирования ________________________ 20
         6.2. Копирование ________________________________________ 20

Глава 7. Трассировщик ____________________________________________ 21
         7.1. Вызов трассировщика ________________________________ 21
         7.2. Команды трасировщика _______________________________ 22

Глава 8. Устройство системы ______________________________________ 24
         8.1. Адресное пространство 'Best tool kit' ______________ 24
         8.2. Подробно о нулевой странице ________________________ 25
         8.3. Векторы подпрограмм системы ________________________ 27
         8.4. Описание подпрограмм _______________________________ 28
         8.5. Структура системного файла _________________________ 31
         8.6. Структура загрузочного диска системы _______________ 31
         8.7. Устройство диска для MFM накопителей _______________ 32
.сс
.кс3
.цв

.шп14

ПРЕДИСЛОВИЕ

.шп0

.ов

Предлагаемая система отладки представляет собой комплекс программ, объединенных в автономную систему, позволяющую загружать, просматривать, изменять, записывать и выводить на бумагу объектные программы, отлаживаемые или требующие адаптации.

Система предоставляет пользователю 42 Кбайт рабочей памяти, которую он может использовать по своему усмотрению.

"Best tool kit" имеет в своем составе программы-помощники, облегчающие труд программиста или пользователя ПЭВМ. Это и отладчик для непосредственной работы с памятью, и файловая система для дисков в формате DOS 3.3, экранный редактор памяти, экранный секторный редактор и программа для копирования дисков, а также резидентные загружаемые программы, список которых может произвольно пополняться. В них, в частности, входят: трассировщик объектных программ, экранный редактор матриц графических изображений, экранный дизассемблер- генератор исходных текстов. Система распологает специальными средствами для включения и обеспечения функционирования резидентных программ.

Отладчик - основной модуль системы - имеет множество полезных команд и директив, которые не были реализованы в отладчиках более раннего выпуска. Отладчик становится незаменимым инструментом при разборке и модификации адаптируемых программ.

В системе поддерживается удобный принцип доступа к диску как на уровне файлов, так и на физическом (секторном) уровне. Файловая система способна обслуживать как FM накопитель типа Shugart (ЕС-5088), так и MFM накопители с одинарной и двойной плотностью, одно- и двухсторонние.

Используемый драйвер вывода на бумагу работает с печатающими устройствами типа CPA-80 и EPSON FX-85 и обеспечивает как обычную рулонную, так и постраничную многоколоночную печать с начальной загрузкой принтера любыми требуемыми пользователю кодами.

Система отладки программ "Best tool kit" была разработана по заказу волгоградского НЦ ПТСиЭ фирмой ALV Software, и является непосредственным развитием системы "Агат-отладчик", первая версия которого быда выпущена в ноябре 1987 года. В "Best tool kit" учтено большое количество замечаний и предложений пользователей, а также личные соображения автора. В результате доработки произошла полная реорганизация системы, значительно увеличились размеры, претерпел большие изменния програмный интерфейс, хотя на первый взгляд хотя на первый взгляд может показаться, что система почти не изменилась.

В программах с такой сложной организацией очень трудно выявить все ошибки и проверить работу всех режимов, поэтому я не могу гарантировать стопроцентной надежности. Я буду очень рад принять от пользователей системы любые замечания по ее работе, ошибки в программах, сбои, неточности. Обо всем этом можно сообщить по адресу:

113546, г. Москва. Востряковский проезд, д.7, корп.2, кв.239

Домашний телефон 384-37-41.

Голов Александр Анатольевич. Год рождения 1969.

.пв

.шп14

Copyright (C) 1989, by ALV Software

.сс

.цв

1. ВВЕДЕНИЕ В СИСТЕМУ

.ов

.шп0

.шп3

1.1. Запуск системы.

.шп0

Система отладки программ "Best tool kit" (далее просто система), располагается на отдельном диске, и занимает на нем 36 Кбайт (9 треков). Вы можете смело вставить системный диск и перезапустить машину с него. Процесс запуска вряд ли вызовет у Вас затруднения, так как он не отличается от запуска других системных программ: Basic, Агат-Автор и т.п. Сразу же с началом загрузки на экране появляется заставка системы, занимающая верхнюю половину экрана. В правом нижнем углу заставки, можно увидеть сменяющиеся цифры от 1 до 8. Это номер считываемого в данный момент трека. Загрузчик системы не различает ошибки обмена с диском, и в случае сбоев он будет вновь и вновь пробовать читать трек, пока это ему не удастся, или пока Вы не нажмете клавишу 'СБРОС'. Логично, что по остановившейся цифре можно судить о том, на каком треке произошел сбой. Полная загрузка системы на НГМД типа Shugart (ЕС 5088) длится недолго, секунд 5-6, благодаря примененному в ней высокоскоростному загрузчику, а на MFM накопителях загрузка происходит еще быстрее.

.шп3

1.2. Диалог с системой.

.шп0

Если система удачно загрузилась, номер трека пропадет с экрана, а в левом нижнем углу должен появиться желтый квадратик - курсор. Наличие курсора одновременно с указанием места на экране является приглашением ко вводу. Никакого другого приглашения система не выдает, дабы не засорять излишне экран.

Когда система полностью загружена, мы оказываемся в диалоге с отладчиком - одной из составляющих систему программ, которая позволяет нам непосредственно работать с памятью, запускать программы, обращаться к ДОС. Отладчик напоминает системный монитор "Агата", но обладает значительно более широкими возможностями. Он является головной программой системы. Из отладчика запускаются другие составляющие систему модули, и по окончании работы с ними управление вновь передается отладчику.

Ведение диалога с отладчиком заключается в подаче пользователем команд и получение соответствующих результатов. Обычно, если ошибочной ситуации нет, система не делает никаких сообщений (кроме предусмотренных командой). При возникновении ошибочной ситуации, раздастся звуковой сигнал и может появиться появится уведомительное сообщение. Сообщения появляются при ошибках возникших во время отработки команды ДОС, а один звуковой сигнал при синтаксических ошибках.

В случае если в результате выполнения каких либо команд, на экран будет выдаваться слишком большое кол-во информации, не помещающееся на экране или выдаваемое слишком быстро, то приостановить вывод можно нажатием клавиши 'ПРОБЕЛ'. Нажатие в режиме приостановки клавиши 'F1', производит прерывание выполнения команды, и переход к диалогу с отладчиком. Это правило справедливо практически для всех команд.

При работе с отладчиком пользователь может добиться выполнения целого ряда действий, не подавая ни одной команды отладчика. Это команды, которые исполняются сразу после нажатия соответсвующей клавиши. Сюда входят команды управления переопределяемыми клавишами и команды управления выводом на бумагу.

.сс

.шп3

1.3 Переопределяемые клавиши.

.шп0

Для организации удобства ведения диалога с отладчиком, в подпрограммы ввода/вывода введен драйвер обслуживания переопределяемых клавиш. Переопределяемыми называются клавиши, значение которых назначает сам пользователь. Значением клавиши может быть не только буква или управляющий код, но и любое слово и даже сложные многострочные команды.

Под переопределяемые клавиши выделены 15 клавиш расположенных на клавиатуре справа, и одна клавиша вызываемая нажатием 'УПР  ' (ее значение специализировано и будет расмотрено позже). В драйвере обслуживания клавиш имеется встроенный редактор значения присвоенного клавише. Для вызова редактора достаточно нажать 'УПР K'. Появится приглашение ко вводу клавиши которую требуется редактировать. После нажатия соответствующей клавиши на экран будет выдано ее содержимое. Для редактирования можно использовать ряд управляющих команд. Стрелки перемещают по тексту клавиши, 'F2' удаляет символ под курсором, 'F3' вставляет один пробел, '9' удаляет все содержимое клавиши от курсора до конца. В текст переопределяемой клавиши можно вводить управляющие коды, для чего сначала надо нажать 'УПР V', а затем соответствующую управляющую клавишу (это универсальное средство, которое в том числе работает и в диалоге). Вводить можно любые управляющие коды, в том числе и 'ВВОД'. Заканчивается процесс редактирования нажатием 'ВВОДа', после чего возобновляется диалог с отладчиком. Многие управляющие функции драйвера вывода на экран (например очистка до конца строки, вставка пробела в строку), имеют коды, совпадающие с кодами функциональных клавиш, поэтому можно назначить соответсвующей клавише ее же код, или переназначить любой другой более удобной для Вашей работы.

При работе с переопределяемыми клавишами важно знать еще одну вещь - размеры буфера под клавиши четко определены и равны 256 байт, поэтому сумарное число символов во всех клавишах не должно превышать 256, в противном случае ввод еще хотя бы одного символа будет не возможен.

.шп3

1.4 Вывод на бумагу.

.шп0

Как говорилось в предисловии система распологает довольно мощным средством вывода на бумагу. Прежде всего можно вывести на бумагу все, что в данный момент находится на экране, для чего достаточно нажать клавишу 'УПР O'. Можно подключить к потоку экранного вывода одновременно и вывод на бумагу, нажав клавишу 'УПР I'. При этом вся выводимая на экран информация будет передаваться и на печатающее устройство. Для того чтобы переключить вывод только на экран нужно нажать клавишу 'УПР W'.

У команд вывода на бумагу есть модификации. Например, при подаче одной из комад включения вывода на бумагу, происходит инициализация принтера, завершающаяся передачей на него кодов, заданных пользователем. Для ввода этих кодов существует команда отладчика, которая будет рассмотрена при изучении работы с отладчиком.

Команда 'УПР I' может выводить как на рулонную бумагу (обычный вывод), так и по страницам (с остановкой в конце каждой страницы), причем в этом режиме дополнительно задается число строк на странице, число колонок, ширина колонки и т.д. Для этого тоже существует команда отладчика, которую мы расмотрим ниже.

.сс

.шп14

.цв

РАБОТА С ОТЛАДЧИКОМ

.ов

.шп0

.шп3

2.1 Формат команд.

.шп0

Подробно рассказывать о синтаксисе команд отладчика наверное не имеет смысла, это будет повторением известного. В общем случае синтаксис не отличается от команд системного монитора (имеется ввиду формат операндов команд). Имя команды также записывается после операндов, число которых также может быть от одного до трех, а для разделения операндов используются символы '<' и '.'. Но есть и отличия или, лучше сказать, расширения. При вводе данные можно предствалять не только в шестнадцатиричном, но и в двоичном и символьном виде. Перед двоичным числом следует ввести символ '*', а перед символом - "'". Для ввода в одной строке команды типа ':' и любой другой, для указания окончания выполнения команды типа ':' используется знак ';'. Все остальные отличия касаются более широкого набора команд, который мы рассмотрим ниже.

.шп3

2.2. Полный набор команд.

.шп0

Полностью список команд и краткую расшифровку их действий можно увидеть в таблице на следуюшей странице. Ниже мы более детально рассмотрим каждую команду.

Существуют две функции отладчика, для выполнения которых не требуется ввода какой-либо команды. Это просмотр содержимого ячейки и области памяти. Первая функция вызывается набором нужного адреса и нажатием 'ВВОДа', вторая набором адреса начала и конца области через точку и также заканчивается нажатием 'ВВОДа'.

.шп2

Команда 'P'

.шп0; выдает на экран адрес последнего останова по команде 'BRK', и содержимое всех регистров процессора при останове. Все регистры выводятся в шестнадцатиричном виде, регистр признаков дополнительно выводится еще и по флагам, причем подсветка буквы флага означает его единичное состояние, обычный вид буквы - нулевое.

После выполнения команды адресный счетчик функции ':' устанавливается на ячейки хранящие выведенную информацию. Поэтому возможен ввод желаемых значений регистров командой ': 1 2 3 ...' в том порядке в котором регистры были выведены на экран.

.шп2

Команды 'R' и 'W'

.шп0; позволяют производить обмен с диском на уровне секторов. Различаются только выполняемым действием 'R' - читает с диска, 'W' - записывает на диск, группу секторов. Форматы их полностью идентичены. Фактически он выглядит так: ADDR1<ADDR2.ADDR3R(W). При этом ADDR1 означает адрес начала для чтения (записи) группы секторов. ADDR2 указывает на начало группы секторов, ADDR3 на ее конец например: 2000<1100.130FR(W). Операнды ADDR2 и ADDR3 содержат в себе так называемый трек-секторный адрес. Этот адрес указывает в первых двух цифрах номер трека, во вторых двух номер сектора. При задании трек-секторного адреса можно опускать незначащие нули. Возможны и сокращенные записи операндов команд. Например, если требуется обработать только один сектор, достаточно указать один адрес - 2000<1100R(W). Если последний сектор группы находится на том же треке где и первый, то в ADDR3 можно опустить номер трека - 2000<1100.FR(W).

При работе с данными директивами следует учитывать, что количество секторов на дисках к НГМД типа Shugart и MFM разное. Системой этот факт учитывается автоматически, а вот пользователь делает на нем ошибки регулярно.

.сс

===========================================================
     Список команд отладчика системы 'Best tool kit'
===========================================================
 1. 'P' - Выдать содержимое регистров.
 2. 'R' - Считать группу секторов с диска.
 3. 'W' - Записать группу секторов на диск.
 4. '/' - Команда входа в микроассемблер.
 5. 'V' - Сравнить области памяти.
 6. 'S' - Найти группу байт.
 7. '!' - Логическая операция ИЛИ.
 8. '&' - Логическая операция И.
 9. '%' - Логическая операция ИСКЛЮЧАЮЩЕЕ ИЛИ.
10. '-' - Операция вычитания.
11. '+' - Операция сложения.
12. 'M' - Пересылка области памяти.
13. 'L' - Дизассемблирование содержимого памяти.
14. 'G' - Запуск программы находящейся в памяти.
15. ':' - Ввод данных в память.
16. 'X' - Вывод содержимого памяти в символьном виде.
17. 'Z' - Переключение режима работы экрана.
18. 'H' - Определение поискового критерия.
19. 'J' - Определение масок поискового критерия.
20. '\' - "Отражение" байтов области памяти.
21. '^' - Флаг оконного вывода.
22. 'T' - Активизация резидентной программы.
23. 'O' - Перезагрузка ПЭВМ.
24. 'U' - Вызов экранного редактора памяти.
25. 'I' - Вызов экранного секторного редактора.
26. '[' - Обращение к командам ДОС.
27. 'Q' - Вывод системной информации ДОС.
28. 'K' - Вызов программы копирования дисков.
29. ',' - Ассемблирование оператора.
30. 'N' - Определение смещения адреса дизассемблирования.
31. 'Y' - Вывод области в формате редактора памяти.
32. ' ' - Вывод в двоичном виде.
33. '#' - Определение кодов инициализации принтера.
34. '"' - Определение формата вывода информации на принтер.
===========================================================

.шп2

Команда '/'

.шп0; - вход в микроассемблер. Что такое микроассемблер? Это ассемблер, работающий только с константными адресами и данными, т.е не умеющий обрабатывать метки. Обычно он применяется для ввода не более десятка команд при модификации кода отлаживаемой программы.

Чтобы войти в микроассемблер, надо ввести адрес и символ '/', после чего нажать 'ВВОД'. Если адрес не вводить, то будет использоваться текущий, или сказать точнее тот адрес, который был текущим перед последним выходом из микроассемблера. Вход в микроассемблер сопровождается выдачей на экран текущего адреса и двоеточия, после которого будет стоять курсор, приглашающий Вас ввести команду процессора. Команды вводятся в стандартном формате процессора 6502, с небольшими исключениями. При вводе операндов не надо вводить знак '¤', они сразу подразумеваются шестнадцатиричными (при вводе констант можно вводить двоичные и символьные операнды, используя апостроф и '*'), а также нельзя в командах сдвига аккумулятора ставить операнд 'A'. Этот операнд воспримется микроассемблером как сдвиг ячейки с адресом 000A. Заканчивается ввод каждой команды нажатием клавиши 'ВВОД', после чего предлагается ввести еще одну команду. Чтобы выйти из микроассемблера в диалог с отладчиком, надо нажать клавишу 'ВВОД' сразу после приглашения. Если во введенной строке обнаружатся какие-либо ошибки, то будет выдан звуковой сигнал, и повторится приглашение ко вводу этой же команды.

.шп2

Команда 'V'

.шп0; позволяет сравнить две области памяти. Ее формат таков: ADDR1<ADDR2.ADDR3V. ADDR1 - начальный адрес первой из сравниваемых областей, ADDR2 - начальный адрес второй сравниваемой области, ADDR3 - конечный адрес второй сравниваемой области.

Если обнаружатся какие-либо различия в областях, то будет выдана соответствующая информация, если нет, то на экран не будет выдано ничего. Отличающиеся в областях байты выдаются в два столбика, в каждом из которых указан адрес и содержащийся по этому адресу байт, соответственно для первой и второй областей. Процесс поиска можно прервать нажатием клавиши 'F1'.

.шп2

Команда 'S'

.шп0; производит поиск группы байт, предварительно определенных командами 'H' и 'J', начиная с адреса, указанного перед командой. Если адрес не указан, то поиск продолжается с текущего адреса. Каждый байт памяти перед сравнением с байтом определенным командой 'H', предварительно обрабатывается логической операцией 'И' с соответствующей маской, определенной командой 'J'. В случае совпадения всей определенной последовательности будет выдано шестнадцать строк дизассемблированного кода. Первый байт найденной последовательности будет выделен красным цветом, после чего поиск автоматически продолжается. Чтобы прервать поиск надо нажать клавишу 'F1'.

.шп2

Существуют пять команд отладчика

.шп0;, производящие арифметические и логические операции с шестнадцатиричными числами. Две первые: '+' и '-' - производят, соответственно, сложение и вычитание шестнадцатиразрядных операндов. Три остальные: '!', '&', '%' - логические операции 'ИЛИ', 'И', 'ИСКЛЮЧАЮЩЕЕ ИЛИ' с восьмиразрядыми операндами. Команды записываются в формате: первый операнд, знак операции, второй операнд. После нажатия клавиши 'ВВОД' на следующей сроке будет выдан ответ. Эти команды являются справочными и оказываются очень полезными при разборе чужих программ, когда смещены адреса или производятся сложные операции с данными.

.шп2

Команда 'M'

.шп0; предназначена для пересылки области памяти. Чтобы выполнить пересылку требуется указать начальный адрес области назначения (ADDR1), начальный адрес пересылаемой области (ADDR2), конечный адрес пересылаемой области (ADDR3): ADDR1<ADDR2.ADDR3M.

С помощю этой же команды можно заполнить какую-либо область одним байтом. Например если требуется заполнить область ¤4000-¤5FFF байтом ¤00, то нужно сначала записать байт ¤00 по адресу ¤4000, и произвести следующую операцию: ¤4001<¤4000.¤5FFEM. Обратите внимание не то, что конечный адрес указан на единицу меньше чем требуется. Это не ошибка. Для точного заполнения области нужно всегда указывать конечный адрес на единицу меньше требуемого.

.шп2

Команда 'L'

.шп0; позволяет дизассемблировать объектный код, находящийся в памяти. Для ее вызова требуется ввести адрес, с которого начнется дизассмблирование и 'L', если адрес не указать, то дизассемблирование продолжится с текущего адреса. Выдаваемый на экран листинг состоит из трех полей, каждое из которых для удобства имеет свой цвет. Первое (желтое) поле содержит текущий адрес и объектный код дизассемблируемой команды, второе (голубое) - этот же объектный код, представленный в символьном виде, третье (зеленое) - мнемоническое представление команды процессора. В случае если дизассемблируемый код не соответствует ни одной команде, вместо мнемоники будут выведены три знака вопроса '???'. После команд 'JMP', 'JMP ()', 'RTS' и 'RTI' выдается пустая срока, что несколько структурирует выводимый листинг. Информация выдается бесконечным списком и прервать выдачу можно нажатием клавиши 'F1'.

.шп2

Команда 'G'

.шп0; производит запуск программы, находящейся в памяти, с адреса указанного перед командой. Если не указать адрес, то произойдет запуск с адреса по которому была выполнена последняя команда BRK. При запуске программы регистры процессора заполняются данными, которые можно просмотреть и изменить, используя команду 'P'.

.шп2

С помощью команды ':'

.шп0; можно ввести в память любую последовательность байт. Для этого задается начальный адрес последовательности, ':' и далее вводятся байты, разделяемые 'ПРОБЕЛом'. Если адрес не вводить, то последовательность продолжится с текущего адреса, получившегося после использования последней команды ':'.

.шп2

Команда 'X'

.шп0; распечатывает содержимое памяти в символьном виде, начиная с адреса, указанного перед командой. По умолчанию вывод продолжается с текущего адреса. Есть различия между выводимой информацией в цветном и черно-белом режимах экрана. В цветном в строку выводится 16 символов, причем управляющие коды выводятся в инверсном виде. В черно-белом режиме в строке помещается 32 символа, а вместо управляющих кодов выводится точка. Кстати, это относится и к выводу байт в символьном виде при дизассемблировании.

.шп2

Команда 'Z'

.шп0; не имеет операндов и служит для переключения режима экрана с цветного на черно-белый и наоборот.

.шп2

С помощью команд 'H' и 'J'

.шп0; можно задать поисковый критерий для использования команды поиска 'S'. 'H' задает константы сравнения, 'J' - маски для обработки сравниваемых байтов. Если не задано ни одного байта команды 'J', то обработка по маске производиться не будет. Формат команд аналогичен формату ':', тольке без задания адреса. Если используются маски, то их количество должно быть равно количеству констант сравнения, в противном случае возможны реакции на ошибочные вхождения. При использовании команды 'H' без операнда на экран будет выдан текущий поисковый критерий.

.шп2

Команда '\'

.шп0; делает так называемое "отражение" байт, т.е. перевертывает байт делая его 0-й бит 7-м, 1-й бит 6-м, 2-й бит 5-м и т.д. (получая как бы его зеркальное отражение). Эта операция оказывается полезной при переработке программ для ПЭВМ Apple II, использующих графику. В команде надо задать границы области памяти байты которой требуется перевернуть. Адрес начала (ADDR1) и адрес конца (ADDR2) задаются через точку перед командой. ADDR1.ADDR2\.

.шп2

Флаг оконного вывода '^'

.шп0; может понадобиться при выполнении команд, выводящих на экран много информации. Если в начале строки употребить знак '^', а уже затем команду, то вывод информации будет приостанавливаться после вывода одной экранной страницы, и возобновляться при нажатии любой клавиши. Эта команда следит за размером экранного окна, и в случае его уменьшения, будет учитывать этот новый размер.

.шп2

Команда 'T'

.шп0; производит запуск внешней системной программы, загруженной в качестве резидентной. Если такая программа отсутствует, то будет выдано сообщение "Резидент не загружен".

.шп2

Командой 'O'

.шп0; производится перезагрузка машины с требуемого разъема. Номер разъема указывается перед командой, при этом производится проверка возможности загрузки с указанного разъема и в случае неудачи выдается звуковой сигнал.

.шп2

Команды 'U', 'I', 'K', '['

.шп0; позволяют обратиться к входящим в систему программам. Командой 'U' вызывается редактор памяти, 'I' - секторный редактор, 'K' - программа копирования дисков. С помощью команды '[' происходит обращение к командам файловой системы, которые следуют сразу за знаком '['. Подробно эти подсистемы будут описаны ниже.

.шп2

Команда 'Q'

.шп0; выводит на экран информацию, хранимую файловой системой. Информация выдается в следующем виде:

M 2000    M 3000
A 1000    L 10
L 1000    T 'S'

В первом столбике содержится информация о загруженном файле типа 'B'. Переменная 'M' хранит адрес начала файла в памяти, 'A' - логический адрес начала файла, т.е. адрес используемый файловыми системами для загрузки по умочанию, 'L' - его физическую длинну в байтах. Во втором столбике содержится информация о загруженном файле произвольного типа. Переменная 'M' также хранит адрес начала файла в памяти, 'L' - его длинну в дисковых секторах, 'T' - тип загруженного файла.

Эта информация является одновременно и справочной, для определения параметров файла, и системной, служащей для записи файла с параметрами по умолчанию.

.шп2

Используя команду ','

.шп0;, можно проассемблировать (по правилам микроассемблера) одну команду, не входя в диалог с микроассемблером. Мнемоническое представление команды процессора записывается сразу после ','. В одной строке можно разместить несколько таких команд, разделяемых ','. Если в команде обнаружится ошибка, управление будет передано диалоговому микроассемблеру.

.шп2

Команда 'N'

.шп0; даст Вам возможность производить дизассемблирование со смещением относительно физических адресов. Это смещение задается для старшей цифры шестнадцатиричного адреса и указывается перед командой. При выполненении дизассемблирования к старшей цифре зависящих от физического расположения программы адресов, будет прибавляться указанная в команде 'N' цифра. При этом, если, например, Ваша программа распологается в памяти с адреса 2000, а Вам нужно дизассемблировать ее с адреса 0000, то Вы должны ввести команду E

.шп1;N

.шп0;.

.шп2

Команда 'Y'

.шп0; выводит на экран содержимое памяти в специальном формате - одновременно шестнадцатиричные байты и соответствующие им символы. В таком виде выдает распечатку редактор памяти, и во многих случаях он представляется очень удобным. Листинг выводится, начиная с адреса, указанного перед командой или с текущего, на котором предыдущий вывод был закончен. Прекращается выдача нажатием любой клавиши. Команда 'Y' работает только в черно-белом режиме экрана.

.шп2

Команда ' '

.шп0; выводит на экран содержимое памяти в двоичном виде. В поле операнда команды указывается адрес, с которого начинается вывод, и, через точку, сколько байт выводить на одной строке. При выводе в одну строку нескольких двоичных чисел, каждое из них будет отделяться от другого пробелом. Вывод прекращается после нажатия любой клавиши.

.шп2

Команды '#' и '"'

.шп0; предназначены для управления выводом на принтер. Ввод любой из этих команд без операнда, приводит к выводу на экран текущего содержимого буфера. Командой '#' задается последовательность байт, которая будет выдана на печатающее устройство при его инициализации (как было указано выше, инициализация принтера производится при переходе к работе с ним).

Команда '"' предназначена для задания формата выводимой страницы и имеет несколько более сложную структуру чем '#'. Прежде всего в ней предусмотрено два режима работы: рулонный и страничный. Рулонный режим задается буквой 'R' и более не требует параметров, страничный обозначается буквой 'S' и содержит шесть байт параметров:

.сс

=====================================================
1 - Число колонок в странице.
2 - Ширина колонки.
3 - Число строк на странице.
4 - Число пробелов между колонками, до разделителя.
5 - Символ используемый в качестве разделителя.
6 - Число пробелов между колонками, после разделителя.
=====================================================

Все параметры следуют непосредственно за командой, цифровые отделяются друг от друга пробелом. При печати в постраничном режиме начинает работать специальный драйвер колоночной печати. Его главное отличие от обычного в том, что приходится буферизировать всю информацию (кроме последней колонки) и только в конце выдавать сразу всю страницу. Буфер, отведенный для этой цели, имеет размер 16 Кбайт. Поэтому при входе в режим печати проверяется, возможна ли буферизация заданной Вами страницы. Если нет, то режим печати включен не будет. Вообще то, при печати реальных листингов на принтере EPSON FX-85, даже самым мелким шрифтом (160 знаков на строке) при минимальном размере символов по высоте (Subskript) и расстоянием между строками шесть точек (стандартное 12), 16 Кбайт памяти хватает. Если конечно использовать какой-то неверояный супер принтер с 300-500-ми знаками на строке, печать может не получиться, ну что ж все программы не лишены недостатков

.стBest tool kit 1

[an error occurred while processing this directive]