
        Дисковая операционная система AO-DOS
           для БК0011,БК0011М. Версия 2.02

- Система  обслуживает  до  четырех  дисководов  с   настройкой
  параметров   40/80-дорожек,   магнитофон   (штатный   драйвер
  БК0010) и виртуальный диск емкостью  148  блоков  (занимающий
  неиспользуемые страницы ОЗУ);
- Формат каталога совместим  с  MicroDOS, NORTON, автоматически
  создается  дополнительная  копия   каталога,   что   повышает
  надежность системы;
- Автоматически определяется тип  дисковода  и  устанавливаются
  оптимальные значения параметров;
- Полностью  эмулируется  среда  монитора   БК0010,   обращения
  к магнитофону переадресуются на диск, производится автомати-
  ческая настройка на БК11 или БК11М при начальной загрузке;
- Система  использует  алгоритм   записи   файла,   позволяющий
  оптимально использовать дисковое пространство, не прибегая  к
  помощи утилит сжатия, и снимающий необходимость  контроля  за
  состоянием каталога диска;
- Режим  проверки записи (Verify On)  гарантирует  качественную
  запись при незначительном увеличении времени за счет  повтор-
  ного считывания информации;
- Система предоставляет  мощное  средство  копирования  файлов,
  значительно ускоряющее  передачу  данных  между  дисками  или
  диском и магнитофоном;
- Система  располагается  в  скрытой  странице  ОЗУ,   оставляя
  прикладным программам адреса 120000..137777;
- Система имеет развитый язык командных файлов;
- Система имеет  встроенные команды форматирования и тестирова-
  ния  дисков,  просмотра/коррекции  ячеек  памяти  и блоков на
  диске;
- Нортон-образная оболочка обеспечивает дополнительные удобства
  в  работе, поддерживается работа с мышью,  виртуальный  диск;
- Система   предоставляет   набор   универсальных   подпрограмм
  ввода/вывода,  обращения  к  которым   осуществляется   через
  диспетчер ЕМТ;
- Файл АUTOEXEC.BAT позволяет осуществить  начальные  установки
  системы во время начальной загрузки системы;
- Возможность  загрузки  драйвера  принтера,   пользовательских
  шрифтов для вывода на экран;

отличия версии 2.02:
~~~~~~~~~~~~~~~~~~~~
- поддерживается работа с подкаталогами любой вложенности
  (формат совместим с ОС NORD);
- функции работы с магнитофоном вынесены во внешние утилиты;
- допускается сокращенный формат команд ДОС;
- добавлены новые функции в перехватчике EMT 36;
- перед поиском утилит на текущем диске осуществляется
  поиск на виртуальном диске.

               Описание комад
               ~~~~~~~~~~~~~~

        Команды выполняемые в диалоговом режиме
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        - выбор текущего устройства d:
формат команды: d:
где d - имя  устройства:  А,B,C,D - дисководы,
F - виртуальный диск. В командной строке  отображается  текущее
устройство, например A:>
Командой ASSIGN можно переназначить имена дисков C:  и  D:  для
обращения к A:  и  B:  соответственно,  что  делает  возможными
например команды типа:  COPY1  A:*  C:  -  копируются  файлы  с
диска А: 80 дор. на диск А: 40 дор. на 80 дорожечном дисководе.

        - загрузка и запуск программы
формат команды: [d:]name [string]
    Позволяет запускать программы с нач.адресом  не  ниже  400.
Если имя файла совпадает со встроенной командой, то  необходимо
перед  именем  файла  поставить  имя  устройства,  с   которого
производится  загрузка.  Автозапуск  отрабатывается  аналогично
стандартной  загрузке.  Если   программе   необходимы   входные
параметры, их можно указать через  пробел  после  имени  файла.
После запуска регистр R2 содержит  адрес  первого  параметра  в
буфере (указатель на начало строки string ).

Если имя файла совпадает с одной из команд ДОС, то перед ним
необходимо указать имя дисковода;
  ПРИМЕР :
DISKCOPY A: B:
B:BACKUP A: 80
DUMP  1000

        - запись файла
формат команды: SAVE [d:]name addr len
Производится запись указанной области памяти в файл.
  ПРИМЕР :
SAVE B:DOS.TXT 1000 20000

        - чтение файла
формат команды: LOAD [d:]name [addr]
Загужает файл в память. При указании адреса после имени,
загрузка производится с этого адреса.
  ПРИМЕР :
LOAD A:DOS.TXT
LOAD T:TEST 42000

        - копирование файлов
формат команды: COPY[1][/] [d:]name1 [d:][name2]
значения ключей команды:
 1 -копирование на одном дисководе
 / -копирование с запросом
    Копирование файлов может осуществляться с одного  дисковода
на другой, на одном дисководе, с запросом  для  каждого  файла.
При копировании большого  количества  мелких  файлов  на  одном
дисководе удобно пользоваться виртуальным диском F:
  ПРИМЕР :
COPY * B:       - копирует все файлы с текущего накопителя
                на B:
COPY/ A:*       - копирует все файлы с A: на текущий накопитель
                с запросом
COPY1 DOS.TXT   - копирует файл "DOS.TXT" с ожиданием смены
                дисков на текущем накопителе

       - просмотр каталога
формат команды: DIR[/B|/A] [d:][name]
значения ключей команды:
 /A -вывод имен файлов в алфавитном порядке;
 /B -выдать информацию о расположении файлов на диске.
    Для  дисковых  устройств  выводится  имя  диска  и   список
имен  файлов,  их  стартового  адреса  и  длины.  При   задании
ключа  "/"  выводится  также  расположение  файлов  на   диске.
Eсли  задан  шаблон  имени,  выводится  информация  о   файлах,
соответствуещих  шаблону,  иначе   выводится   информация   обо
всех   файлах.   Вывод    осуществляется    постранично,    для
продолжения  вывода  надо  нажать  любую  клавишу,   или   <КТ>
для прекращения  вывода. Файлы,  имеющие  атрибут  "защищенный"
помечаются символом "P", а файлы с  атрибутом  "спрятанный"  не
выводятся.
  ПРИМЕР :
DIR         - вывод каталога диска в текущем накопителе
DIR/B A:        - вывод каталога А: с выводом номеров первых
                блоков всех файлов
DIR D*   - вывод всех имен файлов, начинающихся с "D"
DIR/А     - вывод всех имен файлов в алфавитном порядке

        - печать каталога
формат команды: LDIR[/A|/B] [d:][name]
Значения параметров аналогичны DIR. Если печатающее  устройство
не  готово,  выдается  соответствующее   сообщение.   Поддержка
альтернативных драйверов  печати  рассматривается  в  системном
разделе.
  ПРИМЕР :
LDIR
LDIR/А A:
LDIR/B D*

     - изменение имени файла
формат команды: REN [d:]name1 name2
Еслжи файл  с  указанным  вторым  именем  уже  существует,  что
может,  в  частности,  произойти  из-за  некорректного  исполь-
зования шаблона имени  для  переименования  группы  файлов,  то
выдается сообщение об ошибке.
  ПРИМЕР :
REN DOS.TXT DOS1.DOC -переименовать файл "DOS.TXT" в "DOS1.DOC"

        - просмотр текстового файла
формат команды: TYPE [d:]name или ТYPE addr
Нажатие клавиши <ШАГ> приостанавливает вывод текста, до тех пор
пока не будет нажата любая другая клавиша. Клавиша <KT>  преры-
вает просмотр.Если после TYPE стоит 8-адрес,то выводится содер-
жимое памяти, начиная с указанного  адреса.  Eсли  длина  файла
превышает 37200, то он подгружается по частям.
  ПРИМЕР :
TYPE B:DOS.TXT
TYPE 2000

        - печать текстового файла
формат команды: PRINT [d:]name
Действие  команды  аналогичго  TYPE,   вывод   дублируется   на
принтер. Если принтер не готов, выдается сообщение  об  ошибке.
  ПРИМЕР :
PRINT DOS.TXT

        - изменение параметров файла
формат команды: SET [d:]name addr [len]
Команда позволяет  изменять  адрес  и  длину  дискового  файла.
Изменения производятся только в каталоге,  сам  файл  при  этом
не меняется.
  ПРИМЕР :
SET DOS.doc 2000 - задать адрес загрузки 2000 для файла DOS.doc
SET DOS.TXT 2000 20001 - задать адрес загрузки и длину

        - удаление файлов
формат команды: DEL[/] [d:][name]
значения ключей команды:
 / -отменить подтверждение удаления для каждого файла
При попытке удалить файл,  помеченный  в  каталоге  как  "защи-
щенный" выдается сообщение об ошибке.
  ПРИМЕР :
DEL DOS* - удалить все файлы, начинающмеся с "DOS"
DEL/ B:* - удалить все файлы на текущем накопителе, без запроса
          подверждения удаления.

        - установка/сброс атрибутов файла
формат команды: ATTRIB H|-|P [d:][name]
значения ключей команды:
 P - установка защиты от удаления
 H -установка атрибута HIDDEN
 - -сброс всех атрибутов
    Установка или снятие атрибутов "защищенный" и  "спрятанный"
Атрибут "защищенный" запрещает удаление файла  командой  DEL  и
запись в защищенный файл.
  Формат  битов  атрибутов  приводится  в  системном   разделе.
  ПРИМЕР :
ATTRIB - *       - снять атрибуты "защищенный" и "спрятанный"
                 со всех файлов на текущем накопителе.
ATTRIB P DOS.TXT -установить атрибут "защищенный" DOS.TXT
ATTRIB H DOS.TXT-установить атрибут "спрятанный" DOS.TXT

        - передача управления
формат команды:RUN addr
Передает управление на указанный адрес памяти.
Используется для запуска ранее загруженных, или резидентных
программ.
  ПРИМЕР :
RUN 100274 - выход в монитор БК.( Аналогично команде MON)

        - выход в монитор
формат команды: MON
Передает управление по адресу 100274.
  ПРИМЕР : MON

        - передача управления пользовательской программе
формат команды: USR
Передает управление по адресу 120000
  ПРИМЕР : USR

        - вывод номера версии ДОС
формат команды: VER
  ПРИМЕР : VER

        - просмотр/кoррекция указанной ячейки памяти
формат команды: @ addr [DATA]
Если после "@" указан только адрес, то выводится его
содержимое. Если задан также второй параметр, то он
записывается в ячейку, указанную первым параметром.

  ПРИМЕР :
@ 2000 123456   - записать число 123456 в ячейку 2000
@ 2000   - вывести содержимое ячейки 2000

        - просмотр/установка параметров устройства
формат команды: MODE [d:] [SKIP|NOSKIP|SSIDE|DSIDE|nnn]
значения ключей команды:
SKIP -установить пропуск дорожек (используется для работы с
40-дорожечными дискетами на 80-дорожечном дисководе )
NOSKIP - oтмена пропуска дорожек
SSIDE - установить режим работы с односторонними дискетами
DSIDE - установить режим работы с двухсторонними дискетами
nnn   - 8-число, определяющее задержку при перемещении
        головок дисковода в циклах команды SOB.

  ПРИМЕР :
MODE SKIP       - установить режим работы с 40-дорожечными
                дисками на текущем накопителе.
MODE B:NOSKIP   - отменить режим пропуска дорожек на B:
MODE A: 5000    - установить задержку 5000 на A:

        - форматирование диска
формат команды: FORMAT[/Q] [d:] [SKIP|NOSKIP|SSIDE|DSIDE]
   Перед выполнением команды выводятся имя и параметры диска.
Дополнительно  запрашивается  кол-во  дорожек   (40   или   80)
Нажатие других клавиш трактуется как отказ  от  форматирования.
Задание ключа /Q отменяет режим  проверки  при  форматировании,
что существенно  ускоряет  процесс  форматирования  на  хорошей
аппаратуре.
Во  время  форматирования  выводится   информация   о   сбойных
участках. После завершения форматирования на диске  формируется
пустой каталог (как по команде INIT).

  ПРИМЕР :
FORMAT  - форматирование диска в текущем накопителе
FORMAT A:      - форматирование диска в накопителе A:
FORMAT A: SKIP - форматирование диска под 40-дорожек на
                80-дорожечном дисководе А:
FORMAT/Q       - форматирование без последующей проверки
        - инициализация диска
формат команды: INIT[/B] [d:]
значения ключей команды:
/ -инициализация с проверкой BAD-блоков
Перед выполнением команды  выводятся  имя  и  параметры  диска.
Дополнительно  запрашивается  кол-во  дорожек   (40   или   80)
Нажатие других клавиш трактуется как  отказ  от  инициализации.
При инициализации с проверкой информация о плохих блоках  зано-
сится в каталог. При инициализации  виртуального  диска  запрос
не выдается.
  ПРИМЕР :
INIT     - создание пустого каталога на диске
INIT/B A: - инициализация с проверкой наличия сбойных секторов.

        - установка палитры
формат команды: PALET nn
устанавливает цвета палитры, nn - восьмеричное число от 0 до
15;
  ПРИМЕР :
PALET 0 - стандартная палитра БК0010;
PALET 5 - рекомендуется при работе с цветным монитором.

        - установка сообщения в ком.строке
формат команды: PROMPT string
Устанавливает/сбрасывает  сообщение,  выводимое   в   командной
строке
  ПРИМЕР :
PROMPT AO-DOS - устанавливает сообщение "AO-DOS"
PROMPT        - сбрасывает установленное сообщение

        - просмотр текущей настройки ДОС
формат команды: SH
Выводится текущие значения VERIFY и параметры дисковых
устройств, изменяемых командой MODE.
  ПРИМЕР : SH

      - переназначение дисковых устройств;
формат команды: ASSIGN d: d:
Переназначает имена  устройств,  если  указаны  два  одинаковых
имени,  то  устройство  назначается  само  на   себя.   Текущие
назначения можно проконтролировать командой SH.
  ПРИМЕР :
ASSIGN C: A: - переназначить обращение к C: на A:
ASSIGN C: C: - отменить переназначение C:

      - записать массив  на диск
формат команды: WRITE blk addr len
blk - номер блока
addr - aдрес массива
len - длина массива в байтах

      - загрузить массив с диска
формат команды: READ blk addr len
blk - номер блока (все числа восьмеричные)
addr - aдрес массива
len - длина массива в байтах
  ПРИМЕР :
READ 0 7000 12000 ;WRITE 12 7000 12000 - сделать страховочную
        копию каталога (ДОС делает это автоматически при каж-
        дой операции записи с каталог)


        Для работы с подкаталогами в системе, начиная с
версии 2.02, введены следующие команды:

     - создать подкаталог
формат команды: MD name
Создается пустой подкаталог с именем  name  на  текущем  диске.
  ПРИМЕР :
MD FONTS - создать подкаталог FONTS в текущем каталоге

     - удалить подкаталог
формат команды: RD name
Удалить  с  текущего  диска  подкаталог  с  именем  name.  Если
подкаталог содержит файлы, удаление не производится и  выдается
соответствующее сообщение.
  ПРИМЕР :
RD TMP - удалить подкаталог TMP в текущем каталоге

     - сменить подкаталог
формат команды: CD name или CD \
Команда CD name позволяет перейти в подкаталог с  именем  name,
Если подкаталог с именем name не  найден  в  текущем  каталоге,
выдается сообщение об ошибке.
Команда CD  \  используется  для  возврата  из  подкаталогов  в
корневой каталог диска.
  ПРИМЕР :
CD \
CD FONTS

        При  указании  перед  именем  файла  имени   дисковода,
например A:BACKUP производится обращение к  корневому  каталогу
указанного диска. Перед работой с  файлами  подкаталога,  необ-
ходимо сначала перейтив этот подкаталог команды CD.




        Командные файлы
        ~~~~~~~~~~~~~~~
   Командный файл ДОС представляет собой обычный текстовый файл
и может быть набран в любом текстовом  редакторе.  Первым  сим-
волом командного файла д.б. "*". В командных  файлах  допустимы
все команды диалогового режима, а также описанные ниже команды,
применяемые только в командных файлах. Если программа  запущена
из командного файла и заканчивается HALT,  то  выполнение  ком.
файла после выхода из программы  продолжится  со  следующей  за
вызовом строки.

        Команды используемые в командных файлах
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       - признак командного файла
*
символ "*" должен быть единственным символом  в  первой  строке
командного файла

       - выдача восьмеричных кодов в драйвер экрана
формат команды: CHR nn1[,nn2[,..]]
осуществляет ввод последовательностей управляющих кодов.

       - позиционирование курсора
формат команды: LOCATE nn1,nn2
nn1 - координата X, nn2 - координата Y

       - задержка
формат команды: PAUSE [nn]
nn - величина задержки - восьмеричное число

       - ввод символа с клавиатуры
формат команды: INPUT
Выполнение  ком.  файла  приостанавливается  и  ожидается  ввод
символа с клавиатуры.

       - условный оператор
форматы команды:
IF nn string или IF "char" string
IF addr=nn string
nn  и  char  -  представление  кода  символа  для  сравнения  с
введенным командой INPUT соответственно в восьмеричном  виде  и
в виде символа, заключенного  в  кавычки.  Если  код  введенный
по  INPUT  совпадает  с  указанным  в  виде  nn  или  char,  то
производится  переход  к  строке,  помеченной  меткой  :string,
иначе исполняется следующая за IF строка.
IF addr=nn  string  -  сравливается  слово  по  адресу  addr  с
заданным nn, если  addr=nn  управление  передается  на  строку,
помеченную меткой :string,  иначе исполняется следующая  за  IF
строка.

     - безусловный переход
формат команды: GOTO string
управление передается на  строку,  помеченную  меткой  :string.

     - метка
формат команды: :string
помечает строку командного файла для последующего использования
в операторах IF и GOTO.

     - строка-комментарий
формат команды: REM string
отменяет выполнение строки ком. файла

     - очистка экрана
формат команды: CLS
действие аналогично команде CHR 14

     - вывод строки на экран
формат команды: ? string или ? "string"
Для сохранения табуляции строка string заключается  в  кавычки.

     - управление выводом на экран
формат команды: ECHO ON|OFF|string или ECHO "string"
ECHO ON - разрешает вывод на экран сообщений ДОС
ECHO ОFF - запрещает вывод на экран
действие ECHO string  или  ECHO  "string"  аналогично  командам
? string или ? "string" соответственно.

     - прекращение выполнения ком.файла
формат команды: END
Завершает выполнение ком. файла и передает управление ДОС.

        Пример командного файла
        ~~~~~~~~~~~~~~~~~~~~~~~
*
ASSIGN C: A:
ASSIGN D: B:
VERIFY OFF
INIT F:
LABEL F: VDISK
SH
? НАЖМИТЕ "Т" ДЛЯ ЗАПУСКА TURBO
INPUT
IF "T" CONT
END
:CONT
B:
A:TURBO

        Стартовый командный файл
        ~~~~~~~~~~~~~~~~~~~~~~~~

При загрузке системы с диска производится поиск файла с  именем
AUTOEXEC.BAT и , если он найден, исполняются содержащиеся в нем
команды.
  В файл AUTOEXEC.BAT рекомендуется включать следующие команды:

MODE A: 500  -установить задержку при переходе с дорожки на
MODE B: 500   дорожку.

ASSIGN C: C: -разрешить работу с третьим дисководом (в штатном
             режиме обращение к C: переадресуется на A:)
MODE C: NOskip
            -oтменить режим  пропуска  дорожек  при  работе  с
             третьим дисководом (в штатном режиме  C:  обраба-
             тывается с пропуском дорожек SKIP)

PALET 5      -установка палитры для цветного монитора.
Возможен  другой  вариант  -  загрузить  шрифт  для  работы  на
цветном мониторе (FONT1 или FONT2) и установить палитру  БК-10:
PALET 0

VERIFY OFF   -отменить проверку правильности  записи.  Рекомен-
             дуется  для  ускорения   работы   на   нормальной
             аппаратуре.

*.DRV        -загрузка необходимого драйвера принтера, например
R6313.DRV     (в штатном режиме установлен драйвер, аналогичный
             драйверу БЕЙСИКа БК-10)

S11      -запуск программы-оболочки DOS-SHELL

Блокировка вывода сообщений на экран  (аналог  ECHO  OFF)  м.б.
установлена командой "@ 50 377", разрешение вывода - "@  50  0"


   Команды выполняемые из прикладных программ
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(вводятся вместо имени файла при обращениях EMT 36)

S:[D]     - вывод/смена текущего устройства
Команда задает имя диска или магитофон,  к  которым  произойдет
обращение, если перед именем файла явно не указано  имя  устро-
йства.
S:D\NAME        - сменить текущий подкаталог;
Команда S:D\\   - перейти в корневой каталог.

K:[D:][NAME]    - просмотр каталога диска
Применяется для вывода каталога диска из  прикладных  программ.

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

М:[SKIP|NOSKIP|SSIDE|DSIDE]   -   просмотр/задание   параметров
настройки ДОС. Действие команды аналогично МОDE, что  позволяет
перенастроить параметры  дисководов  не  выходя  из  прикладной
программы.

        Диагностические сообщения и ошибки
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Коды  ошибок,  возвращаемые  драйвером  КНГМД, выводятся в виде
сообщения I/O error NN in drive D:, где NN принимаяет значения:

1       защита записи или ошибка CRC
2       ошибка CRC заголовка
3       нет 0 дорожки (вырабатывается также если дисковод
        не подключен)
4       ошибка позиционирования
5       сектор не найден
6       диск не вращается
7       прерывание по вектору 4
10      не найден маркер заголовка
11      не найден маркер данных
12      нестандартная разметка

  Эти ошибки  возникают на физическом уровне.  Также ДОС выдает
сообщения о логических  ошибках, на уровне файловой структуры .
Указанные в  скобках  коды  ошибок  возвращаются в байте  301 :

 Bad command or filename -введенная строка не является командой
ДОС или отсутствует указaнный файл.
 File not found - файл с  заданным  именем  не  найден  (ош.14)
 Invalid parameters - в команде неверно указаны  параметры.(54)
 Non-DOS disk - формат каталога не соответствует АО-DOS.(ош.74)
 Disk full - при записи файла на диске не хватает места.(ош.34)
 Dir full - переполнении каталога.(ош.44)
 Protected  file  -  предупреждение,  что  файл  имеет  атрибут
 "защищенный", и  не  может  быть  изменех  или  удален.(ош.24)
 Для перезаписи необходимо снять атрибут командой :
 "ATTRIB - name".
 Not ready - печатающее устройство не готово.
 Directory error - ошибка при работе с каталогом и
подкаталогами ДОС.

        Редактирование командной строки
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
В диалоговом режиме поддерживаются команды редактирования:
<-,-> - перемещения по строке;
K== - удаление символа
╞=> - вставка пробела
<== - удаление символа справа от курсора
╪=> - очистка строки справа от курсора
<ВС> - вывод предыдущих строк
<ВВОД> - конец ввода строки
<КТ> - отказ от ввода текущей строки

В буфере  запоминаются строки, в  том порядке, как они вводятся
с  клавиатуры.  Строка  запоминается, если ее длина больше двух
символов.  Эти строки м.б.  выведены  нажатиями  кл. <ВС>,  при
необходимости  отредактированы  и  снова  исполнены.  Допустимо
использование  нескольких  команд  в  строке  разделенных  ";".
При вводе поддерживается автоповтор нажатия клавиш.

---------------------------------------------------------------

               Системнaя информация
               ~~~~~~~~~~~~~~~~~~~~

        Oбслуживание принтера
        ~~~~~~~~~~~~~~~~~~~~~
        Ячейка 240 указывает на начальный адрес драйвера прин-
тера в 7-й странице. Драйвер оформляется в виде подпрограммы  и
должен сохранять используемые  регистры.  Перед  инициализацией
загрузчик  драйвера  должен  подключить  7-ю  страницу  ОЗУ  по
адресам 40000..77777, прочитать адрес  из  яч.240  и  переслать
резидентную часть драйвера. Резидентная часть должна быть пере-
местимой, код печатаемого символа поступает в R0:

        MOV #56200,@#177716
        MOV @#240,R1
        MOV #DRV,R2
        MOV (R2)+,(R1)+
        CMP R2,#END
        BLO .-6
        HALT
DRV:    MOV #177715,R5
        BIS #177400,R0
        TSTB @R5
        BEQ .-2
        MOV R0,@R5
        TSTB @R5
        BNE .-2
        CLR @R5
        RET
END:    .END

        Передача параметров через командную строку
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
При запуске программы регистр R2 указывает на первый символ  не
являющийся пробелом, после имени файла.  Например  в  командной
строке:
 A:>FORM  T:80   S:9
После успешного запуска программы с именем  "FORM"  регистр  R2
будет указывать на первый символ строки  "Т:80  S:9".  Соседние
пробелы удаляются.


        Вызов функций ДОС
        ~~~~~~~~~~~~~~~~~
Доступ к функциям ДОС осуществляется через ЕМТ диспетчер.
Из прикладных программ доступны следующие обращения:

EMT  1- Вывод 8-числа из регистра R2, регистры R0,R1,R2 не
        сохраняются.
ЕМТ  3- Вывод 8-числа из R2, R1 указывает количество
        выводимых знакомест.
EMT 11- Исполнение командноЙ строки ДОС.
        R2 содержит адрес начала строки команды
        R3 - конечный адрес строки команды
        ошибочные  ситуации   обрабатываются   по   4   вектору
        регистры не сохраняются.
ЕМТ 17- Вывод символа по коду в R0, коды 1..11,13,37  выводятся
        в виде соответствующего количества пробелов
EMT 21- вывод строки символов, адрес начала - в  R1,  ограничи-
        тель - нулевой байт,  управляющие  коды  обрабатываются
        стандартно.
EMT 31- Вывод кода в R0 на печать.  Поддерживаются  загружаемые
        драйверы печати.
EMT 41- Вывод десятичного числа в диапазоне 0..9999.
        Число в R2, регистры R0,R1,R2 не сохраняются.
ЕМТ 43- Выдача служебной информации ДОС.
        На выходе  в  мл.байте  R0  номер  версии,  в  старшем-
        признак ДОС - байт 32(8), указывающий  на  то  что  ЕМТ
        перехватчик  обслуживается  ДОС.  Перед  использованием
        дополнительных  возможностей  ДОС  необходимо   проана-
        лизировать  содержимое  R0  после  обращения  ЕМТ   43.

               Команды ЕМТ 36
               ~~~~~~~~~~~~~~
Значения байта-команды в блоке параметров ЕМТ 36:

бит 7 = 1-разрешить вывод текстовых сообщений ДОС
бит 6 = 1-запретить остановку двигателя дисковода
бит 5 = 1-работать с  копией  каталога  в  памяти  (при  чтении
        или записи каталога обращение к диску не  производится)
Остальные биты (0..4) кодируют команды:
2-запись файла
3-чтение файла
4-вывод каталога
10-запись файла с измененным адресом загрузки
        В каталог заносится адрес из поля адреса  (яч.  2(R1)),
        а фактический адрес берется из яч.316
11-создать новый файл (аналог CREATE)
12-удалить файл (DELETE)
13-файловый фильтр
        Вход:
        поле адреса в блоке параметров содержит адрес
        буфера для 30-байтовых записей.
        поле имени содержит маску имени файла
        Выход:
        яч. 312 количество найденных файлов
        яч. 314 количество блоков в этих файлах
        яч. 316 общее количество блоков на диске
        смещение 52..65 в блоке параметров содержит
        имя диска, указанный блок памяти заполняется
        30-байтовыми записями о найденных файлах
14-файловый фильтр с сортировкой по имени
        обращение аналогично предыдущей команде, записи
        упорядочиваются поименам файлов


        Фиксированные ячейки ДОС:
        ~~~~~~~~~~~~~~~~~~~~~~~~~
117464(2)  - страницы ОЗУ, подключаемые  при  работе  с  диском
  номера страниц указываются в том виде, как  они  записываются
  в регистр 177716. В стандартном  режиме  яч  117464  содержит
  число 16200, что соответствует подключению  4-й  страницы  на
  100000..137777 и 5-й страницы  (0-буфера  экрана)  на  адреса
  40000..77777, 11-й разряд установлен в 1.
  Изменить страницу, подключаемую на 40000..77777 бывает  необ-
  ходимо, например, при  работе  в  редакторе  текста,  который
  имеет непрерывный буфер текста 1000..77777 в страницах 0 и 6,
  а на экран выводит страницу 5. Обращение из редактора  должно
  иметь такой вид:
        ...
        MOV #76200,@#117464 ;будет подключена 6-я страница
                         ;по адресам 40000..77777
        INCB @#50         ;запрещение вывода на экран
                         ;сообщений ДОС
        EMT 36       ;обращение к ДОС
        MOV #16200,@#117464 ;восстановление 5-Й страницы
        CLRB @#50         ;разрешение вывода на экран
        ...

117707(1)  - признак программы-оболочки
  При значении этого байта равном 32, ДОС  проверяет  загружена
  ли программа-оболочка. Оболочка считается  загруженной,  если
  по адресу 120000 находится код 240 (NOP), при этом ДОС вместо
  выхода в диалоговый режим передает управление на адр  120000.
  Подгрузки оболочки с диска не происходит.

117710(1)  - активное устройство
117711(1)  - устройство, выбираемое по умолчанию
 активное устройство может не совпадать с выбираемым  по  умол-
 чанию, например при исполнении команды:
              B:>A:MIRAGE←┘
, ячейки содержат: 117710=0 (A:) ,117711=1 (B:)

117712(64) - адреса, используемые драйвером дисковода


        Используемый формат каталога:
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(смещения даются от начала нулевого блока)

0   - код 240 (смещения 0 и 2 используются в  случае  загрузоч-
      ного диска )
2   - код инструкции BR nnn для обхода форматной области
4*  - признак расширенного формата 32
5*  - байт описатель диска:
      12  - 10 секторов на дорожку, две стороны
      212 - 10 секторов на дорожку, одна сторона
      11  - 9 секторов на дорожку, две стороны
      211 - 9 секторов на дорожку, одна сторона
6*  - размер сектора в байтах
10* - количество дорожек
12* - зарезервировано

14  - метка диска (14 символов)
30  - количество записей в каталоге
32  - номер блока, указываемого последнней записью
400 - код 123456 - признак данного формата
500 - начало области данных

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

Oбласть данных содержит 30-байтные  записи.  Структура  записи:
(смещения даются от начала записи)

0..1   - слово признаков:
        бит 15 - признак удаленный
        бит 7  - признак сбойный блок
        бит 1  - признак спрятанный
        бит 0  - признак защищенный
        биты 8..14 номер родительского подкаталога
        для записи, содержащей имя подкаталога, биты
        0..6 содержат номер этого подкаталога.
2..17  - имя файла ( коды 0..40, 200..240 допустимы, но не
        рекомендуются )
20..21 - номер первого блока, занимаемого файлом
22..23 - количество блоков, отведенных файлу,
        если это поле содержит ноль, то запись трактуется
        как имя подкаталога.
24..25 - адрес загрузки (уменьшается до четного)
26..27 - длина в байтах (должна быть меньше 77777)

   При инициализации 40-дорожечного диска под данные  отводится
1414 блоков ,80-дорожечного  -  3054  блока.  Каталог  занимает
блоки 0..11 на нулево дорожке,  страховочная  копия,  обновляе-
мая при каждом изменении каталога -  блоку  12..23  на  нулевой
дорожке.

        Подготовка системного диска
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~
Для подготовки диска,  с  которого  может  загружаться  система
необходимо:
        - отформатировать (или инициализировать) диск
        - скопировать на чистый диск файм ROM11
        - скопировать файл AO-DOS (сразу после ROM11)
        - запустить утилиту BOOT11 для проверки файлов  и  фор-
         мирования загрузчика.


