1. ОСНОВНЫЕ ПОНЯТИЯ И СТРУКТУРА МикроДОС
1.1 Компоненты системы
{Происхождение СР/М-2.2, МикроДОС, СП-ДОС}
Для удобства постановки на компьютере произвольной конфигурации
операционная система (ОС) МикроДОС разделена на две части:
Базовую Систему Ввода/Вывода и Базовую Дисковую Операционную
Систему (БДОС).
БСВВ - модуль, определяющий низкоуровневый интерфейс
МикроДОС с конкретной ЭВМ. Для постановки МикроДОС следует
создать БСВВ. Однако при создании или модификации существующей
БСВВ необходимо сохранить ее входные точки (векторов переходов),
обеспечивающие связь БСВВ и БДОС.
{АЗМ. Концепция загружаемых драйверов.Дать ссылку на отд.
документ по БСВВ}
БДОС - аппаратно независимый модуль, обеспечивающий вместе с
БСВВ взаимодействие оператора с системой и управление ресурсами
системы, прежде всего дисковыми файлами. БДОС - логическое ядро
МикроДОС которое с помощью механизма вызова системных функций
создает стандартную среду для транзитных программ.
Прикладные программы исползуют возможности МикроДОС вызовом
операций БДОС, обеспечивающих создание, удаление и исправление
дисковых файлов, посимвольный ввод/вывод с "медленными"
устройствами (клавиатура, дисплей, телетайп, устройство
ввода/вывода с перфоленты ит.д.), а также ряд других операций.
1.2 Организация памяти
БДОС и БСВВ занимают верхнюю часть памяти. Область памяти с
адреса ОН по 0FFH называется базовой страницей памяти. Она
включает несколько сегментов кодов и данных, обеспечивающих вход в
БДОС и содержащих некоторые системные параметры.
Область с адреса 100Н до нижнего адреса БДОС называется областью
транзитных программ (ОТП). Именно в эту область интерпретатор
команд загружает прикладные программы для исполнения.
В верхнюю часть памяти, область дополнительных команд (ОДК), под
БДОС могут загружатся дополнительные системные программы:
отладчик, интерпретатор командного языка JINN, процессор файловых
утилит и др.
На рис. 1 показана организация памяти МикроДОС.
1.3 Организация диска
МикроДОС обеспечивает работу от 1 до 4 накопителей на гибких
магнитных дисках (НГМД) емкостью по 800К байт каждый и
электронный диск емкостью до 896К байт - в зависимости от объема
установленного в компьютере ОЗУ. НГМД обозначаются латинскими
буквами от А до D, электронный диск всегда обозначается латинской
буквой Б.
Первые 2 дорожки на диске являются системными. На них записана
система: Б ДОС, БСВВ и минимальный дисковый драйвер. Системные
дорожки нужны только на диске, с которого осуществляется
первоначальная загрузка системы, поэтому рабочий диск может не
содержать системных дорожек вообще - смещение дорожек равно
нулю (рис. 2). Остальные дорожки содержат данные и разделены на
две области: область оглавленияи область данных.
В области оглавления определены файлы, существующие на диске и
области данных, занятые этими файлами.
Область данных содержит сами эти файлы.
На рис. 2 показана организация диска МикроДОС.
Величина К определяет число системных дорожек диска, которые
неиспользуются, если диск является рабочим. Число используемых
системных дорожек (смещение) для каждого дисковода может
задаватся с помощью резидентной команды О (OFFSET). По
умолчанию для всех дисков задана величина смещения, равная 2
(стандартная для СП-ДОС). Можно задать смещение равным 0, что
позволяет полностью использовать всю дисковую память для рабочих
файлов.
1.4 Рабата системы
Работу системы можно разделить на три этапа: начальная загрузка,
работа интерпретатора команд и исполнение транзитных программ.
1.4.1 Начальная загрузка
Процедура начальной загрузки обычно исполняется сразу после
включения машины. Она осуществляет загрузку ОС с дисков в
оперативную память и передает ей управление. Процедура начальной
загрузки исполняется за несколько шагов.
Вначале, с помощью аппаратных средств или программы,
находящемся в постоянном запоминающем устройстве (ПЗУ),
загружается небольшая программа, называемая начальным
загрузчиком, имеющем обычно длинну 128 или 256 байт и занимающем
начальные сектора первой системной дорожки. Начальный загрузчик, в
зависимости от конфигурации системного диска, загружает с
оставшейся части системных дорожек ОС или загрузчик системы. Если
система находится на диске в виде файла, то системные дорожки
содержат загрузчик системы, который, получая управление
отначального загрузчика, загружает ОС. Если система записана на
системных дорожках, она загружается непосредственно начальным
загрузчиком. В обоих случаях после загрузки управление передается
ОС.
При получении управления после начальной загрузки система
осуществляет инициализацию устройств, устанавливает в базовой
странице команды переходов на "горячий старт" (по адресу ООООН) и
в БДОС (по адресу 0005Н), осуществляет поиск на диске файла
CONFIG.SYS. Этот файл - текстовый, он содержит последовательность
команд загрузки драйверов. {Ссылка на БСВВ). Если такой фр"г,т есть,
то он назначается для консоли ввода. Если этот файл отсутствует -
система не сможет правильно загрузиться. После этого управление
передается в точку, осуществляющую "горячий старт" системы.
"Горячий старт" - это операция, которая производит установку
системных параметров в исходное состояние и передает управление
интерпретатору команд.
Ш. РАБОТА ИНТЕРПРЕТАТОРА КОМАНД
Интерпретатор команд является частью БДОС и обеспечивает
взаимодействие оператора с системой. Он осуществляет прием команд
от оператора, загрузку программ, подготовку параметров для программ
и запуск зарубежных программ.
Когда интерпретатор команд получает управление после начальной
загрузки системы или после "горячего старта" он выводит на консоль
сообщение-подсказку, в которой указываются код пользователя, если
он не нулевой, и код текущего диска. Например, после начальной
загрузки на консоль выводится: А>. После вывода подсказки
интерпертатор ожидает ввод команды с консоли. Простейшая команда
- смена текущего диска. Следующий пример показывает замену
текущего диска А на В:
А>В:
В>
Команда смены текущего диска - резидентная команда и является
частью интерпретатора команд.
В общем виде синтаксис командной строки может быть следующим:
<командная строка> => [<признак>]<команда> [параметры]
[указание
переназначения консоли
ввода/вывода]
<признак> => ;|:|-|:-
<указание переназначения консоли ввода/вывода> => <указатель
переназначения консоли ввода/вывода> <имя файла[.тип файла]>
<указатель переназначения консоли ввода/вывода> => >|<
<команда> => <транзитная команда>|<резидентная команда>
<транзитная команда> => [<указатель дискса>]<имя исполняемого
файла (типа com или spr)>
<указатель диска> => А:,... ,Р: (см. 1.3)
<параметры> => <указатель файла>[<ограничитель><указатель
файла>]
<указатель файла> => [<укаэатель диска><имя файла><тип файла>
<имя файла> => от одного до восьми символов, не являющихся
ограничителями
<ограничитель> => один или более символов пробела или табуляции,
а
также один из следующих символов: Н,|:|[|]
<тип файла> ~> от нуля до трех символов не являющихся
ограничителями
<резидентная команда> => A|D|E|K|0|U|S|0|... |9
Признак определяет условие исполнения команды следующим
образом:
; комментарий: данная строка рассматривается как комментарий.
: условное исполнение команды. Команда не исполняется, если
предыдущая команда установила неуспешный код возврата.
- отмена переназначения консоли. Если указан этот признак, то
символы переназначения консоли в данном командном предложении
воспринимаются интерпретатором команд как обычные символы
команды, при этом переназначение консоли не производится. Этот
признак может использоватся для запуска программ, у которых
символы < и > используются для указания параметров. Признак
отмены переназначения консоли может использоваться вместе с
признаком условного исполнения, при этом он должен следовать за
признаком условного исполнения. После окончания данного командногго
предложения восстанавливается исходный режим интерпретатора
команд.
Поля указанные в квадратных скобках, необязательны. Прием
команды от оператора завершается при вводе символа возврата
каретки или перевода строки.
1.4.3 Исполнение транзитных и резидентных команд
Транзитные команды могут иметь параметры, синтаксис которых
отличается от описанного выше. Интерпретатор команд производит
обработку параметров в командной строке, если они введены в
указанном формате, в остальных случаях транзитная программа
должна сама обрабатывать введенные параметры.
Поле команды должно указывать на резидентную утилиту или
транзитную программу.
Ниже приведен список резидентных команд МикроДОС с кратким
описанием их назначения.
КОМАНДА НАЗНАЧЕНИЕ
D (DIR) выводит на консоль список имен файлов, находящихся
воглавлении диска с текущим кодом пользователя^
указанием атрибутов R (только для чтения) и S
(системный),
см. раздел 2.3.2
Е (ERA) удаляет имена указанных файлов из оглавления и
таким образом освобождает занимаемое ими место в
области данных
О (OFFSET) изменяет количество системных дорожек на указанном
диске
S (SYSTEM) назначает системный дисковод
U (USER) изменяет текущий код пользователя см. раздел 3,
операция 32
О ~ 6, 9 определяются программистом в БСВВ при постановке
системы
7 переход консоли в режим КОИ-7
8 переход консоли в режим КОИ-8
Более подробно назначение и синтаксис каждой из этих команд
описаны в ч. 2 "Руководство оператора".
Интерпретатор команд МикроДОС может осуществлять
переназначение консоли ввода/вывода на указанные файлы.
Указателем переназначения являются символы > (вывод) и < (ввод), за
которыми должны следовать имена файлов.
При переназначении консоли вывода все символы, которые
выводятся на консоль, записываются в файл с указанным именем.
Файл консоли вывода закрывается при "горячем старте", при
обнаружении ошибки обмена с диском (нет места на диске или в
оглавлении) или при выводе символа CTL-F, во время приостановки
вывода на консоль вводом CTL-S.
При переназначении консоли ввода символы вместо консоли вводятся
из указанного файла. Ввод из файла осуществляется до конца файла,
до ошибки обмена или при вводе символа CTL-F во время
приостановки вывода на консоль из программы пользователя. Во всех
случаях осуществляется переход на ввод с консоли.
Ниже приведены примеры переназначения консоли:
A>ASM PRIMER >OUT.TXT
B>SYSGEN<A:SYSG.SUB
A>DIREC.SUB >B:OUTl.TXT
ВНИМАНИЕ: Указание на переназначение консоли ввода или
вывода должно вводиться в конце командного предложения,так как
остаток предложения после указания переназначения консоли вывода
интерпретатор команд игнорирует и не передает транзитной
программе.
ВНИМАНИЕ: Для указания параметров транзитных команд в
командном предложении не должны использоваться символы > и <,
так как они перехватываются интерпретатором и используются для
переназначения консоли. Для исполнения программ, применяющих эти
символы с целью указать параметры, используются признаки отмены
переназначения консоли
После гголучиния командного предложения интерпретатор команд
исполняет следующие шаги:
ШАГ1 - проверяет наличие признаков команды. При наличии
признака комментария ";" команда не исполняется. Это позволяет
комментировать команды вводимые из файла. Если указан признак
условного исполнения, то проверяется код возврата, установленный
после выполнения предидущей команды. Если она завершилась
неуспешно, текущая команда неисполняется.
При наличии признака отмены переназначения консоли
переназначение консоли не происходит (см. шаг 2), и последующая
информация используется при передаче параметров команды
транзитной программе. После проверки признаков интерпретатор
переходит к шагу 2.
ШАГ2 - выделяет поле команды в командном предложении. Если в
поле команды присутствует указатель диска, интерпретатор сразу
переходит к шагу 3. Если диск не указан, то производится поиск
команды среди резидентных команд. Если встроенная команда найдена,
интерпретатор осуществляет переназначение кфнсоли (если оно
указано и не отменено), исполняеет встроенную команду и выходит на
"горячий старт".
ШАГЗ - пытается открыть файл типа .сом с именем указанной
команды. Операция открытия файла осуществляет поиск файла на
текущем диске с текущим кодом пользователя. При отсутствии файла
в текущей области пользователя поиск файла ведется в области с
кодом пользователя 0 сначала на текущем диске, а потом на системном
(по умолчанию, диск А). В обоих последних случаях файл открывается
только тогда, когда у него установлен системный атрибут SYS. Если
файл типа .СОМ не открыт, интерпретатор команд пытается открыть
файл типа .SPR с именем указанной команды и, если он не открыт, на
консоль выводится командное предложение со знаком вопроса и
осуществляется переход на "горячий старт". Если файл типа .СОМ или
.SPR открыт, интерпретатор команд загружает файл типа .СОМ с
адреса 100Н, а файл типа .SPR в верхнюю область памяти под БДОС и
переходит к шагу 4.
ШАГ4 - просматривает параметры команды и, если в параметрах
команды указаны имена файлов, осуществляет подготовку блоков
управления файлами (БУФ), а затем переписывает параметры
команды в буфер прямого доступа к памяти (ПДП) (с адреса 0080Н).
После инициализации базовой страницы интерпретатор ocyir ^i яет
переназначение консоли, если оно указано и не отменено, и рыдает
управление загруженной программе.
Интерпретатор команд обеспечивает работу встроенных команд в
фоновом режиме. Переход в фоновый режим производится вводом
символа CTL-D во время вызова транзитной программой операции 1
(ввод с консоли) или 10 (прием в буфер консоли). При переходе в
фоновый режим интерпретатор выводит системное сообщение с
предшествующим символом ">" и ожидает ввода встроенной команды.
После исполнения команды управление возвращается транзитной
программе.
Ниже приведен пример, когда после загрузки программы RENA
осуществляется переход в фоновый режим и выводится оглавление
диска:
A>RENA
* => признак готовности RENA к приему команды
оператор вводит CTL-D
>A>D выводится оглавление диска А
> => после вывода символа ">" производится возврат к
прерваной программе.
1.5 Блок управления системой
БУС - это структура данных, которая является компонентом БДОС и
содержит внутренние флажки и переменные БДОС, а также другую
системную информацию. Информация имеющаяся в полях БУС может
быть получена или изменена вызовом операции 49 БДОС
(получение/установка полей БУС). Описание полей БУС приведено в
приложении А.
ВНИМАНИЕ: Используйте с осторожностью операцию 49 для
установки полей БУС. Блок содержит многие критические системные
переменные. Если программа изменит эти параметры, система может
выйти из строя.