[an error occurred while processing this directive]

.цв

6. НЕКОТОРЫЕ ПОЛЕЗНЫЕ КОМАНДЫ СИСТЕМЫ.

.ов

6.1. Встроенный калькулятор.

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

Считается, что человек произошел от обезьяны. В этом смысле "The Best" произошел от Системного Монитора Apple ][. Именно поэтому система так "любит" непривычную простому пользователю шестнадцатеричную систему счисления.

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

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

6.2. Прямое обращение к диску.

Команды 'R' и 'W' позволяют производить обмен с диском на уровне секторов. Различаются они только выполняемым действием 'R' - читает с диска, а 'W' - записывает на диск группу секторов. Формат их полностью идентичен. Он выглядит так: 'addr1<addr2.addr3R'(W). При этом addr1 означает адрес в памяти области для чтения (записи) группы секторов. addr2 указывает на начало группы секторов на диске, а addr3 - на ее конец. Операнды addr2 и addr3 содержат в себе так называемый трек-секторный адрес. Этот адрес указывает в первых двух цифрах номер трека, во вторых двух - номер сектора, например '2000<1100.130FR'. При задании трек-секторного адреса можно опускать незначащие нули. Возможны и сокращенные записи операндов команд. Например, если требуется обработать только один сектор, достаточно указать один адрес, напимер '2000<1100W'. Если последний сектор группы находится на том же треке где и первый, то в addr3 можно опустить номер трека, например '4000<1100.FR'. При работе с командами следует учитывать, что количество секторов на треке диска Teac и Shugart различно.

Данные команды позволят Вам, например, скопировать систему (например, "The Best"). Для этого необходимо считать с системного диска в память командой 'R' те треки, на которых лежит система (в несколько приемов, если система длинная), а потом сохранить их на предварительно размеченном диске командой 'W'.

6.3. Еще две полезные команды Отладчика.

Для того, чтобы передать управление на адрес addr, служит команда 'addrG'. Эта команда позволит Вам многократно запускать многие В-программы и исполнить некоторые программы, записанные в К-файлах (предварительно загруженные в память командой '[READ' на требуемый адрес).

Для просмотра Т-файла, считанного в память командой '[READ name,m', в текстовом виде, скомандуйте 'm?'. Для прекращения вывода нажмите 'F1'. Это более быстрая и удобная по сравнению с командой '[TYPE' возможность распечатать файл.

.сс

.цв

7. СЕКТОРНЫЙ РЕДАКТОР.

.ов

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

Вызывается Секторный Редактор командой 'I'. При этом на экране в режиме 64*32 отображается таблица, содержащая информацию из определенного сектора диска:

.кс0

===============================================================
  Трек - 00     Сектор - 0     Позиция - 00    ДЗУ - 3
===============================================================
  00: 0000 0000 0000 0000 0000 0000 0000 0000  ................
  10: 0000 0000 0000 0000 0000 0000 0000 0000  ................
  20: 0000 0000 0000 0000 0000 0000 0000 0000  ................
  30: 0000 0000 0000 0000 0000 0000 0000 0000  ................
  40: 0000 0000 0000 0000 0000 0000 0000 0000  ................
  50: 0000 0000 0000 0000 0000 0000 0000 0000  ................
  60: 0000 0000 0000 0000 0000 0000 0000 0000  ................
  70: 0000 0000 0000 0000 0000 0000 0000 0000  ................
  80: 0000 0000 0000 0000 0000 0000 0000 0000  ................
  90: 0000 0000 0000 0000 0000 0000 0000 0000  ................
  A0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
  B0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
  C0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
  D0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
  E0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
  F0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
================================================================

.нф

Слева отображается адрес первой ячейки ряда, далее следуют 16 байт в шестнадцатеричном виде, попарно соединенные друг с другом - числовое поле, следующее поле - эти же 16 байт, представленные в символьном виде (при этом байты с кодами 0, 80-9F отображаются точками). Всего на экране отображается 16 таких строк. Курсор имеет вид '__' или '^^' ('_' или '^' в символьном поле), в зависимости от режима работы.

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

Символьные данные вводятся нажатием соответствующих алфавитно-цифровых клавиш в четырех регистрах клавиатуры. Возможен ввод и управляющих символов, для чего перед управляющим символом следует нажать клавишу 'УПР Ж'. Для ввода символов с кодами 0-3F (псевдографических) служит клавиша '6', расположенная на клавиатуре справа. Она меняет вид курсора с '_' на '^' и обратно. При этом в режиме '_' старший бит вводимых цифровых, символьных и управляющих клавиш установлен, а в режиме '^' - сброшен, что и позволяет вводить псевдографику.

Все управляющие клавиши Секторного Редактора (кроме 'УПР О', обнуляющей текущий трек, сектор и очищающей содержимое буфера) распологаются на клавиатуре справа.

Клавиша '0' меняет текущее поле: символьное на числовое и наоборот, при этом курсор по-прежнему указывает на тот же байт. Клавиша 'F1' перемещает курсор в левую (при однократном нажатии) или правую (при двухкратном нажатии) колонку поля.

Клавиша '1' предназаначена для изменения текущего трека и сектора. Они вводятся в шестнадцатеричном виде. Ввод трека и сектора завершается нажатием на 'ВВОД', возможно использование стрелки 'влево' для забоя ошибочного символа. Ввод пустого трека (сектора) не изменяет текущее значение.

Клавиша '2' позволяет сменить текущий дисковод (ДЗУ). Ввод осуществляется аналогично вводу трека и сектора.

Клавиша '3' включает битовый редактор текущего байта, полезный при редактировании таблиц свободного места. Стрелки перемещают курсор по битам байта, 'ПРОБЕЛ' меняет состояние бита, 'ВВОД' - выход с сохранением внесенных изменений, а 'РЕД' - без сохранения.

С помощью клавиш '4' и '5' производится чтение сектора с диска или запись содержимого буфера на диск. После нажатия система запрашивает "Читать?" ("Писать?"). Для утвердительного ответа следует нажать 'ВВОД', а если нужно отказаться - любую другую клавишу.

Клавиши '7' и '8' позволяют переходить соответственно на один сектор назад и вперед, читая его в буфер.

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

Нажатие клавиши '=' показывает на экране образец для поиска, если таковой был введен. В этом режиме можно пользоваться клавишей '←' для удаления одного байта из образца, или вводить сами байты в шестнадцатеричном или символьном (сначала апостроф ('), а потом сам символ) виде. Можно ввести до 8 байт, причем в них можно использовать символ 'X', вместо шестнадцатеричной цифры. Этот символ означает, что на этом месте может стоять любая цифра. Заканчивается ввод или исправление образца нажатием '↵'.

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

Нажатие стрелок во время поиска меняет его направление, а 'F1' - прерывает поиск.

Для выхода из Редактора нужно в основном режиме работы нажать клавишу 'РЕД'.

.сс

.цв

8. РЕДАКТОР ПАМЯТИ.

.ов

Редактор Памяти предназначен для просмотра и изменения содержимого оперативной памяти, изображаемой на экране в виде дампа. Он вызывается из диалога с системой командой 'U'. Редактор пригодится, прежде всего, людям, отлаживающим или адаптирующим программы в машинном коде.

Вход в Редактор сопровождается незамедлительным отображением на экране текущей области памяти в режиме 64*32. Изображаемая на экране картина выглядит приблизительно так:

0000: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0010: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0020: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0030: 0000 0000 0000 0000 0000 0000 0000 0000  ................

. . . . .

Экран Редактора Памяти весьма напоминает экран Секторного Редактора. Информация отображается в таком же виде (но занимает все 32 строки экрана). Перемещение курсора также осуществляется стрелками. Ввод информации происходит так же, как и в Секторном Редакторе.

Для управления Редактором Памяти выделены несколько клавиш на клавиатуре справа. '4' - перемещает курсор по памяти назад на одну экранную страницу, '5' - делает обратное действие (перемещает курсор на страницу вперед). Клавиша '6' сменяет тип курсора с '_' на '^' и наоборот,

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

Клавиши 'F1', '0', '3' и '=' работают так же, как и в Секторном Редакторе. Поиск активизируется также клавишей 'F3'. Если с определенного адреса и до конца адресного пространства последовательность найдена не будет, поиск продолжится с адреса 0000. При поиске во внимание не принимается содержимое области ввода/вывода C000-CFFF, которая просто пропускается, дабы избежать неприятностей. Требуется учитывать также и то, что система хранит образец поиска в непосредственно доступной области ОЗУ машины, поэтому это может привести к нахождению в памяти самого образца (он распологается где-то между адресами 400-4FF).

Чтобы выйти из Редактора Памяти, нажмите в основном режиме клавишу 'РЕД'.

При работе с Редактором Вы можете непосредственным обращением к нужным ячейкам из области C100-C1FF (C100-C2FF, если у Вас есть доп-память) произвести замену банков, установленных на сегменты 1..5. Банки, установленные на другие сегменты, лучше не трогать.

.сс

.стSYSTEM.DOC.5

[an error occurred while processing this directive]