IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> ANDOS, Самая удобная ОС на БК
SuperMax
сообщение 11.2.2021, 20:35
Сообщение #1


Администратор
*****

Группа: Root Admin
Сообщений: 6 046
Регистрация: 7.1.2006
Из: Красноярск
Пользователь №: 1



Код

   Дисковая операционная система для БК0010, БК0011, БК0011М


     ##┐      ###┐   ###┐ ########┐     ######┐     ######┐
    ####┐     ###│   ###│ ###┌──####┐ ####┌─####┐ ####┌─####┐
   ######┐    ####┐  ###│ ###│   ###│ ###┌┘  ###│ ###┌┘  ###│
  ###┌─###┐   #####┐ ###│ ###│   ###│ ###│   ###│ ####┐  └──┘
###┌┘  ###┐  ###│##┐###│ ###│   ###│ ###│   ###│ └─######┐
###│   ###│  ###│ #####│ ###│   ###│ ###│   ###│   └───####┐
##########│  ###│  ####│ ###│   ###│ ###│   ###│ ###┐   ###│
###┌───###│  ###│   ###│ ###│  ####│ ####┐ ####│ ####┐ ####│
###│   ###│  ###│   ###│ ########┌─┘ └─######┌─┘ └─######┌─┘
└──┘   └──┘  └──┘   └──┘ └───────┘     └─────┘     └─────┘

                          Версия 3.30


                   Инструкция пользователя.



==================== (C) 1997 А.М.Надежин =====================



     Дисковая операционная система ANDOS V3.30 обеспечивает ра-
боту компьютеров БК0010, БК0011, БК0011М с дисководами.
     ANDOS поддерживает два формата диска: "ANDOS" и "MicroDOS"
Основным является формат "ANDOS",  совместимый с применяемым на
PC форматом  дисков MS-DOS.  Формат "MicroDOS" поддерживается с
помощью специального эмулятора.  Это позволяет читать  в  ANDOS
диски,  записанные в операционных системах MicroDOS, Norton-БК,
NORD,  AO-DOS, MKDOS, PascalDOS, однако запись на эти диски не-
возможна.
     В ANDOS V3.30 имеется возможность работы  с  подкаталогами
неограниченной вложенности.
     Для повышения удобства работы в прикладных  программах,  в
ANDOS имеется  встроенный  файлер,  позволяющий  задавать имена
файлов в режиме меню.


                       1. Загрузка ANDOS
                       ~~~~~~~~~~~~~~~~~
     В начале  каждого сеанса работы необходимо загрузить ANDOS
с системного диска. На БК0011М и БК0010 с контроллером "АЛЬТЕК"
или  "АЛЬТПРО"  загрузка происходит автоматически при включении
питания (у БК0011М необходимо отключить блок КМ !),  БК0011 при
включении  выходит  в  монитор и для загрузки необходимо ввести
латинскую букву "B",  БК0010 с обычным контроллером также выхо-
дит  в  монитор,  но для загрузки необходимо ввести букву "Т" и
нажать "ВВОД" для "новых" контроллеров (ANCO K16/Turbo, АЛЬТЕК)
или ввести команду "S160000" и нажать "ВВОД" для "старых" (если
Вы не знаете, какой у Вас контроллер, попробуйте сначала "T", а
если не получится - "S160000").
     Как только Вы запустите загрузку (или это сделает сама ма-
шина) загорится индикатор и включится двигатель дисковода,  эк-
ран очистится и появится сообщение "Идет загрузка ANDOS". Через
несколько секунд дисковод остановится и на экране появится зас-
тавка. Если Вы, наслаждаясь заставкой, не будете притрагиваться
к клавиатуре в течении 10-15 секунд внизу  экрана  начнет  дви-
гаться бегущая строка-подсказка, которую можно прервать в любой
момент, нажав одну из управляющих клавиш.
     Пока заставка находится на экране Вы можете установить те-
кущую дату и перейти к одному из режимов работы ANDOS, для это-
го предусмотрены следующие управляющие клавиши:

     "стрелка вверх" - увеличение даты на 1 день;
     "стрелка вниз"  - уменьшение даты на 1 день;
     "ВВОД"          - запуск оболочки Disk MASTER;
     "ПРОБЕЛ"        - сброс даты и запуск оболочки;
     "КТ"            - выход в монитор БК0010;
     "0"-"9"         - запуск программируемого ключа;
     другие клавиши  - запуск  стартовой  функции (пока что эта
                       функция зарезервирована).

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

     В случае,  если дата была изменена, при выходе из заставки
произойдет сохранение ее на системном диске.

     Обычно работа  с системой осуществляется с помощью сервис-
ной оболочки Disk MASTER,  описание которой Вы найдете в файлах
MASTER.EDP.

                        2. Имена файлов
                        ~~~~~~~~~~~~~~~
     Имя в ANDOS так же,  как и в MS-DOS,  состоит из двух час-
тей:  собственно имени и расширения, разделяемых знаком "точка"
(при отсутствии расширения точка необязательна). Имя может сос-
тоять из 1-8 букв,  цифр и знаков, расположенных в произвольном
порядке.  Расширение может состоять из 1-3 символов или же  от-
сутствовать  вообще.  В  имени и расширении могут употребляться
заглавные и строчные буквы русского или латинского алфавита,  а
также псевдографика.  Однако на имя накладываются некоторые ог-
раничения:  имя не может быть пустым (т.е.  состоящим из точки,
одних пробелов или нулей),  а также начинаться со знака "-" или
иметь символ ":" во второй позиции. Кроме того в имени не может
использоваться символ "точка".

     Если Вы планируете работать с дисками ANDOS на PC, необхо-
димо принять во внимание дополнительные ограничения, накладыва-
емые на имя файла:  в имени не должны  использоваться  строчные
буквы, а также некоторые спецсимволы: " * + , . / :; < = > ? [
\ ] | .  Для исправления на PC некорректных имен удобно исполь-
зовать программу "Norton Disk Editor" (DE,  DISKEDIT), при этом
некорректные имена в режиме  редактирования  выделятся  красным
цветом.


                      3. Устройства ANDOS
                      ~~~~~~~~~~~~~~~~~~~
ANDOS V3.1 может обслуживать до 63 устройств:

               @: - Магнитофон
               А: - Первый дисковод (привод 0)
               B: - Второй дисковод (привод 1)

                     Дя БК без винчестера:

               С: - Третий дисковод (привод 2)
               D: - Четвертый дисковод (привод 3)

                     Для БК с винчестером:

               C: и далее - разделы винчестера

     На БК0011М  возможна работа с дополнительным устройством -
виртуальным диском "E".


                    4. Команды перехватчика
                    ~~~~~~~~~~~~~~~~~~~~~~~
     Управление работой ANDOS возможно не  только  из  оболочки
Disk  Master,  но и из любой программы,  имеющей функции чтения
или записи, или из монитора БК0010. Для этого используются спе-
циальные имена файлов. Например, чтобы просмотреть каталог дис-
ка из любой программы,  достаточно запустить функцию чтения или
записи  и вместо имени ввести символ ":".  Эта же команда может
быть подана из монитора БК0010. Для этого необходимо в ответ на
знак вопроса ввести команду "M", нажать клавишу возврата карет-
ки (ВВОД) и в ответ на запрос "ИМЯ ?" ввести  команду  и  снова
нажать ВК. В нашем примере это будет выглядеть так:

? М ←┘                       Эта команда выведет на экран ката-
ИМЯ? : ←┘                    лог текущего устройства.

     После выполнения команд ANDOS в мониторе и некоторых прог-
раммах может выводится сообщение "ОШИБКА",  на которое не стоит
обращать внимания.

     Для удобства в ANDOS имеется текущее устройство  (устройс-
тво  по  умолчанию).  При запуске файла из оболочки Disk MASTER
устройство (например дисковод),  с которого  был  запущен  этот
файл, объявляется текущим, и все операции чтения или записи бу-
дут производится с этим устройством.

     Назначение текущего  устройства можно изменить в любой мо-
мент вводом имени устройства (на любом регистре)  вместо  имени
файла. Расширение при этом значения не имеет.

? М ←┘                       Эта   команда   назначит   текущим
ИМЯ? B: ←┘                   устройством дисковод B:.

     Если перед именем файла явно указано устройство,  происхо-
дит обращение к нему без  изменения  текущего  устройства  (для
магнитофона эта команда недопустима):


? М ←┘                       Эта  команда загрузит файл EDASP с
ИМЯ? A:EDASP ←┘              диска "A", несмотря на  назначение
                             текущего устройства.

     Для просмотра каталога текущего  устройства  вместо  имени
вводится  символ "двоеточие".  Расширение также не имеет значе-
ния.

? М ←┘
ИМЯ? : ←┘

     Для того,  чтобы  просмотреть  каталог другого устройства,
перед двоеточием укажите его имя:

? М ←┘                       Эта команда выведет на  экран  ка-
ИМЯ? B:: ←┘                  талог диска  B:  независимо от на-
                             значения текущего устройства.

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


     Удаляется файл в случае, когда перед его именем стоит знак
"минус".  При этом ANDOS требует подтверждения удаления. Если в
ответ на появившийся вопрос "{имя файла}, delete?" нажать любую
клавишу произойдет удаление файла.  Для отказа от удаления наж-
мите клавишу СТОП.

? M ←┘                       Эта команда удалит с текущего  ус-
ИМЯ? -HELP.BAK ←┘            тройства файл HELP.BAK

ANDOS - HELP    .BAK, delete? ←┘

      Если после знака "-" не указывать имени файла  произойдет
вызов файлера (см. следующий раздел) для выбора удаляемого фай-
ла в режиме меню.

      При записи файла ANDOS анализирует диск,  и если на диске
уже есть файл с таким же именем, обычно на экран выводится зап-
рос "{имя файла} exist P/D:",  в ответ на который можно  ввести
на любом регистре букву "P", "D", или нажать клавишу СТОП. Если
была нажата клавиша СТОП,  - запись файла не производится; если
введена буква "P",  - файл перезаписывается на место старого и,
наконец, если введена буква "D",  - у старого файла  расширение
заменяется на ".BAK" (при этом если на диске уже был такой файл
с расширением .BAK,  он будет автоматически удален) и записыва-
ется новый файл. Таким образом в режиме дублирования появляется
возможность всегда хранить на диске две копии файла - текущую и
предыдущую (страховочную).

     Иногда удобнее, чтобы один из вышеописанных режимов запи-
си срабатывал автоматически,  без  запроса.  Для  этого  нужно
вместо  имени  ввести  соответствующую букву (P или D на любом
регистре) и знак вопроса.

? М ←┘                       Эта команда установит режим  пере-
ИМЯ? P? ←┘                   записи для всех файлов.

? М ←┘                       Эта команда установит режим дубли-
ИМЯ? D? ←┘                   рования для всех файлов.

     При вводе перед знаком вопроса любого другого символа  бу-
дет  восстановлен режим,  при котором ANDOS будет запрашивать о
необходимом режиме записи. Например:

? М ←┘                       Эта команда восстановит режим  за-
ИМЯ? ?? ←┘                   проса на перезапись/дублирование.

     Точно так же,  как и при указании имени устройства,  можно
указать режим для текущей операции записи:

P?TEXT.VXT ←┘                Эта команда установит режим  пере-
                             записи для текущего файла.


     Команды перехватчика могут подаваться совместно,  при этом
необходимо располагать их друг за другом в соответствии с прио-
ритетами:

режим записи → устройство → удаление → вывод каталога → файлер


                           5. Файлер
                           ~~~~~~~~~
     Для повышения  удобства в работе с прикладными программами
в ANDOS имеется встроенный файлер,  позволяющий выбирать  файлы
для чтения,  записи или удаления в режиме меню. Для вызова фай-
лера достаточно запустить операцию чтения или записи в програм-
ме  или  мониторе  БК и задать пустое имя (обычно это означает,
что после появления запроса имени нужно сразу  нажать  "ВВОД").
Кроме  того  файлер  может  быть запущен при вводе вместо имени
символа "точка" (это может понадобится в некоторых  программах,
блокирующих ввод пустого имени).  Например вызов файлера из мо-
нитора БК0010 будет выглядеть так:

? М ←┘  или  ? М ←┘          Любая из этих команд запустит фай-
ИМЯ? ←┘      ИМЯ? . ←┘       лер на текущем устройстве.

     Если Вы хотите с помощью файлера обратится к другому  уст-
ройству перейдите на него и запустите файлер:

? М ←┘                       Эта  команда  сделает текущим дис-
ИМЯ? B: ←┘                   ковод "B".

? М ←┘                       Эта  команда  запустит  файлер  на
ИМЯ? ←┘                      текущем дисководе "B".

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

? М ←┘                       При таком вызове файлера включится
ИМЯ? .VXT ←┘                 фильтр по расширению "VXT".

     При запуске  файлера на экране появляется окно с каталогом
текущего или указанного устройства.  По умолчанию каталог выво-
дится в 3 столбца по 10 имен в каждом,  в режиме  "РП"  каталог
выводится в 5 столбцов по 4 имени.  Файлер показывает все файлы
всех подкаталогов вместе.  Для управления работой  файлера  ис-
пользуются следующие клавиши:

     стрелки ↑↓←→ - перемещение курсора по каталогу;

     ВВОД         - выбор файла;

     ШАГ          - переход на другое устройство. После нажатия
                    этой клавиши нужно ввести  имя  устройства.
                    Например: ШАГ A - переход на диск "A";

     СБР          - перечитывание  каталога  (используется  при
                    смене диска в дисководе);

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

     ПРОБЕЛ       - сброс фильтра;

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

     КТ, СТОП     - аварийный выход из файлера.

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

             6. Некоторые особенности работы ANDOS
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     В случае возникновения ошибки обращения к диску ANDOS пов-
торяет операцию,  перепозиционировав  головку  дисковода.  Если
ошибку при этом устранить не удается,  на экран выводится сооб-
щение "Disk error #{код ошибки контроллера}". При нажатии любой
клавиши происходит новая попытка обращения к диску, при нажатии
СТОП операция прерывается.

     ВНИМАНИЕ! После  появления сообщения об ошибке диск в дис-
ководе заменять нельзя до завершения операции или нажатия  кла-
виши СТОП. При несоблюдении этого условия вся информация, запи-
санная на диске может быть уничтожена!

     Расшифровку кодов ошибок Вы  можете  найти  в  техническом
описании ANDOS, здесь приводятся лишь комментарии:

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

      При записи - диск защищен (заклеено защитное отверстие).

  2 - Ошибка в зоне заголовка (ошибка возникает редко,  по  тем
      же причинам,  что и #1, однако устранить ее, как правило,
      не удается).

  3 - Нет позиционирования на нулевую дорожку (обычно это озна-
      чает, что дисковод отключен,  или на него не подано пита-
      ние).

  4 - Ошибка позиционирования (может возникать при попытке чте-
      ния на  80-дорожечном  дисководе  40-дорожечных  дисков в
      формате MicroDOS).

  5 - Не найден сектор (обычно возникает на БК0010  при  записи
      на старых  моделях контроллеров.  Как правило устраняется
      при повторной попытке).

  6 - Открыт дисковод, нет диска или диск не вращается

  7 - Прерывание по клавише СТОП (при работе ANDOS  эта  ошибка
      возникнуть не может).

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

  9 - Не найден маркер данных (аналогично ошибке #2).

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

; - Попытка  чтения  меченого  сектора (очень редко возникает
      после неудачного форматирования диска).


     Любую дисковую операцию можно прервать клавишей СТОП,  од-
нако пользоваться этой клавишей во время записи на диск  крайне
нежелательно.

     Для того,  чтобы работая в ANDOS можно было бы автоматизи-
ровать процесс переноса программ с кассеты на диск и  использо-
вать  программы  с защитой имени,  в ANDOS применена логическая
обработка имени:  если имя превышает восемь символов, ANDOS ис-
пользует первые семь символов и последний. Допустим Вы захотели
скопировать с магнитофона на диск игру "ДЕСАНТНИК". Она состоит
из шести файлов:  ДЕСАНТНИК, ДЕСАНТНИК1 ... ДЕСАНТНИК5. Если бы
операционная система использовала просто первые восемь символов
имени  все  шесть файлов стали бы называться ДЕСАНТНИ и естест-
венно затерли друг друга на диске.  При копировании этих файлов
в  ANDOS  с  логической  обработкой имени они получат имена ДЕ-
САНТНК,  ДЕСАНТН1 ...  ДЕСАНТН5.  При запуске игры можно  будет
вводить как имя в каталоге (ДЕСАНТНК) так и полное имя (ДЕСАНТ-
НИК).  То же будет происходить и при чтении первой частью  игры
остальных пяти.

     Для двух  типов дисководов в памяти раздельно хранятся две
таблицы параметров (первая - для дисковода "A",  вторая  -  для
остальных), что дает возможность подключать к БК два совершенно
различных типа дисководов (например:  один 80-дорожечный однос-
торонний  с  быстрым  приводом головки,  а другой 40-дорожечный
двухсторонний с медленным приводом).  Настройка параметров дис-
ководов осуществляется программой ANSETUP,  описание которой Вы
найдете в файле ANUTILS1.EDP

     ANDOS  позволяет  обрабатывать  40-дорожечные   диски   на
80-дорожечных дисководах, а также односторонние диски на  двус-
торонних дисководах. При этом вся настройка параметров произво-
дится автоматически, необходимо лишь, чтобы в системе были пра-
вильно установлены параметры дисководов (для их  установки  ис-
пользуется утилита ANSETUP).

     Для работы в ANDOS может  быть  полезна  команда  монитора
БК0010, перезапускающая ЭВМ:

? @←┘                        Эта  команда  перезапустит  ANDOS.

     Команда  может  использоваться для очистки и инициализации
экрана. На БК0010 эта команда  используется  для восстановления
работы ANDOS после выхода из некоторых программ.

     При записи файлы всегда помещаются в корневой каталог, од-
нако при перезаписи или дублировании и новый и .BAK файлы поме-
щаются в тот каталог, в котором был старый файл.


                  7. Подготовка новых дисков
                  ~~~~~~~~~~~~~~~~~~~~~~~~~~
     Для того, чтобы создать чистый диск, на который можно было
бы записывать файлы  в  ANDOS, необходимо отформатировать его с
помощью программы ANFORMAT (если диск  был отформатирован зара-
нее другой  программой,  достаточно  лишь  инициализировать его
программой ANFORMAT или оболочкой  Disk  MASTER  на  БК0011(М).
После  форматирования (инициализации) каталог при просмотре бу-
дет пустым. Объем диска определяется типом дисковода и парамет-
рами,  установленными в ANFORMAT.  Диск отформатированный на 80
дорожек имеет размер 397 кластеров.  Если увеличить  количество
дорожек до 82, объем диска станет равным 407 кластерам. Подроб-
нее работа с программой ANFORMAT описана в файле ANUTILS1.EDP.


             8. Подготовка системного диска ANDOS
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     Для того  чтобы  подготовить  загружаемый  системный  диск
ANDOS, необходимо  сначала  создать  чистый диск так,  как было
описано в предыдущем разделе,  затем скопировать на  него  файл
ANDOS.SYS  с  дистрибутивного  (фирменного)  диска ANDOS (или с
другого загружаемого диска) с  помощью  оболочки  Disk  MASTER,
после чего программой ANFORMAT (функция "MakeBoot") скопировать
загрузчик.
     При создании системы количество сторон и дорожек для обоих
дисководов  устанавливаются в соответствии с параметрами диска,
на который устанавливается система. Таким образом для того что-
бы создать, к примеру, односторонний сорокадорожечный системный
диск, нужно с помощью функции "Set" задать в программе ANFORMAT
количество дорожек - 40,  количество сторон - 1, и отформатиро-
вать диск.  После этого скопировать на этот диск файл ANDOS.SYS
и загрузчик (функцией "MakeBoot" программы ANFORMAT). Параметры
системы  на  этом диске автоматически будут установлены в соот-
ветствии с типом диска (1 сторона, 40 дорожек).
     Необходимо иметь ввиду, что,  если  Вы  пользуетесь  двумя
дисководами разных типов (например 80- и  40-дорожечным), после
установки  системы  придется  задать  параметры   для   второго
(несистемного) дисковода заново.
     При установке системы времена задержек дисководов в  ANDOS
не изменяются, поэтому после создания системы можно  установить
эти  времена  утилитой  ANSETUP  (обычно  это   требуется   для
40-дорожечных дисководов, где эти времена существенно больше).


                9. Файловая совместимость с PC
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     Для успешного  чтения на PC диски ANDOS должны быть отфор-
матированы на БК.  (Диски,  отформатированные на PC не читаются
на  БК  по  различным причинам).  К сожалению у БК0010 и у PC -
совместимых компьютеров несколько разные требования к загрузчи-
ку,  поэтому  на PC будут читаться только несистемные диски AN-
DOS. Чтобы прочитать системный диск придется запустить ANFORMAT
и выполнить функцию преобразования загрузчика (ConBoot),  а за-
тем после работы на PC восстановить его той же функцией.
     При попытке чтения на PC системного диска выдается сообще-
ние о невозможности чтения этого диска, либо некорректно считы-
вается каталог (он оказывается пустым, или содержащим несколько
последних файлов).

     На PC диски ANDOS могут обрабатываться на верхнем дисково-
де (A:),  если же верхний дисковод трехдюймовый,  то на  нижнем
дисководе  (B:).  При этом должен быть запущен какой-либо драй-
вер,  позволяющий читать диски с плотностью записи 10  секторов
на дорожку (800,  900,  PU_1700, FDREAD, DCE). На некоторых эк-
земплярах PC,  можно обойтись и без  дополнительного  драйвера.
В комплект  поставки ANDOS включен драйвер 900.com,  который Вы
можете перенести на PC следующим образом:
     1. Отформатируйте в ANDOS дискету
     2. Запишите на нее 900.com (если Вы хотите записать на эту
дискету еще что-нибуть,  проследите,  чтобы 900.com был записан
первым).
     3. На PC скопируйте 900.com с этой дискеты (этот файл нас-
только маленький, что скопируется без запуска драйвера).
     4. Запустите 900.com.

     Дисковод с плотностью 1,2 Мбайт может читать восьмидесяти-
дорожечные  диски ANDOS (а на некоторых экземплярах PC и 40-до-
рожечные).  Если же дисковод имеет плотность 360 Кбайт  на  нем
могут обрабатываться только 40-дорожечные диски ANDOS.  Если Вы
пользуетесь 80-дорожечным дисководом,  для переноса  информации
на  PC  с  дисководом 360 Кбайт необходимо отформатировать диск
сначала на PC,  а затем на БК  программой  ANFORMAT,  указав  в
функции  Set количество дорожек - 40 (если диск ни разу не фор-
матировался или был размагничен, предварительное форматирование
на PC необязательно).

     К сожалению  в  последнее время большинство PC-совместимых
компьютеров оснащается BIOS'ом фирмы Award (его легко узнать по
появляющейся  в  правом  верхнем  углу экрана и плавно гаснущей
картинке "Energy Star") имеющем еще с незапамятных времен ошиб-
ку,  приводящую к невозможности чтения дисков ANDOS. Эта ошибка
именуется "Drive Not Ready" (в отличии от  ошибки  "Sector  Not
Found",  когда не запущен 800 или 900).  Для того, чтобы заста-
вить компьютер с таким BIOS'ом работать с ANDOS'овскими дисками
нужно  любым  способом  "затормозить" работу компьютера (кнопка
"Turbo" тут не поможет).  Для этого  можно  использовать  любую
программу-замедлитель, например  простейшую программу slow.com,
включенную в комплект ANDOS.  Возможно  ее  придется  запустить
несколько раз  подряд  прежде,  чем диск ANDOS начнет нормально
читаться. В качестве замедлителя можно также использовать  Win-
dows 3.1.
     Программа  "Norton  Disk  Doctor", обрабатывая диски ANDOS
будет  выдавать  сообщение  о неправильном загрузчике  (Invalid
Boot Record). При этом корректировать загрузчик этой программой
недопустимо.
     Следует иметь ввиду,  что ANDOS записывает адреса файлов в
поле времени, поэтому при просмотре каталога диска ANDOS на PC
времена создания у всех файлов будут произвольные (могут быть и
несуществующие).
     Для общения с  PC  рекомендуется  пользоваться  отдельными
дисками, так как есть опасность, что Вы испортите информацию на
своем рабочем диске, при попытке что-нибуть делать с ним на PC.


       10. Особенности работы ANDOS на БК0011 и БК0011М
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                    Загрузка и перезагрузка

     Загрузка ANDOS на БК0011М происходит  автоматически  после
включения питания. Для ускорения  загрузки  с  нижнего  привода
можно порекомендовать при обращении к верхнему дисководу быстро
нажать "СТОП" - начнется загрузка с нижнего привода.
     Кроме того загрузка может быть  произведена  из  монитора.
Для выхода в монитор после включения  ЭВМ  нужно  нажать  любую
клавишу, и держать ее до появления подсказки  монитора  -  "@".
Для загрузки ОС необходимо набрать команду:

B  - Автоматическая загрузка (как и при включении питания)
0B - Загрузка с верхнего привода
1B - Загрузка с нижнего привода

     Эти же команды применяются и для загрузки на БК0011.
     Для перезагрузки  ANDOS на БК0011М из операционной системы
ОСБК11,  встроенного Бейсика и некоторых других программ  можно
применять последовательность клавиш АР2+ЛАТ АР2+СБР.

                     Перезапуск компьютера

     Для перезапуска  БК0011 (БК0011М) из монитора БК0010 может
быть выполнена команда:

? P ←┘                       Эта команда перезапустит БК0011(М)

     Если Вы пользуетесь кнопкой Reset,  подключенной к контак-
там А1 и А2 разъема МПИ, при ее нажатии происходит перезапуск и
выход в монитор БК0011(М).  Если Вы не хотите загружать ANDOS с
диска можно перезапустить ANDOS в памяти, для этого после выхо-
да в монитор БК0011(М) необходимо подключить  к  верхнему  окну
четвертую страницу ОЗУ:

@4;1C                      Эта команда подключит 4 страницу ОЗУ

После подключения страницы нужно перезапустить монитор БК0010:

@100000G                   Эта  команда  перезапустит монитор и
                           ANDOS


        12. Сообщения операционной системы ANDOS V3.30
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     В этом  разделе  приведены все сообщения ANDOS.  Многие из
них уже были описаны в предыдущих разделах, однако для удобства
пользования  описанием  здесь  приведены  краткие объяснения по
всем сообщениям ANDOS.


ANDOS V3.30
~~~~~~~~~~~
     Сообщение выдается при  работе  без  оболочки  в  мониторе
БК0010  после  инициализации  ANDOS при успешном подсчете конт-
рольной суммы.


ANDOS - Non-DOS disk
~~~~~~~~~~~~~~~~~~~~
     Сообщение  выдается  при любом обращении к диску в случае,
если диск имеет формат, несовместимый с  ANDOS.  Кроме того это
сообщение  может  выдаваться  в том случае, если на диске ANDOS
был испорчен  BOOT-сектор.


ANDOS - {имя файла} not found
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     Сообщение  выдается в случае, если при чтении или удалении
файла в каталоге не обнаружен файл с указанным именем.


ANDOS - {имя файла} exist P/D:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     Сообщение  выдается при записи, когда в каталоге обнаружен
файл с указанным именем. При нажатии СТОП операция прерывается.
При нажатии клавиши "P" файл перезаписывается на место старого.
В случае нажатия клавиши "D" расширение у файла, хранящегося на
диске заменяется на .BAK (при этом  если  на  диске уже был та-
кой же файл с расширением .BAK он сотрется) и новый файл  запи-
сывается на диск под своим именем.


ANDOS - {имя файла}, delete?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     Сообщение  появляется  при удалении файла. Нажатие клавиши
СТОП прерывает операцию. При нажатии  любой другой клавиши файл
удаляется.


ANDOS - Disk error #n
~~~~~~~~~~~~~~~~~~~~~
     Сообщение  выдается  при  возникновении ошибки обращения к
диску. При этом вместо n выводится код ошибки контроллера КНГМД
(Коды ошибок приведены в разделе 6 данного описания). При нажа-
тии любой клавиши обращение к диску повторяется. Нажатие клави-
ши СТОП вызывает прекращение операции.


ANDOS - Disk full
~~~~~~~~~~~~~~~~~
     Сообщение  выдается  при записи, если на диске не осталось
свободного места.


ANDOS - DIR full
~~~~~~~~~~~~~~~~
     Сообщение выдается  при записи,  если в каталоге нет места
(на диске уже есть 112 файлов и подкаталогов).

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

         В заключении хочется выразить благодарность:
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Сергею Камневу            за  героическое создание новой версии
~~~~~~~~~~~~~~            оболочки Disk MASTER,  являющейся ос-
                          новой ANDOS, а также за за TRANSIT  и
                          эмулятор БК на PC.

Дмитрию Крылову           за героическое доведение до ума того,
~~~~~~~~~~~~~~~           что было героически сделано  С.Камне-
                          вым перед тем,  как  он  окончательно
                          перешел на PC.

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

Дмитрию Пугачеву (JOKER)  за  динамическую трехмерную заставку,
~~~~~~~~~~~~~~~~~~~~~~~~  созданную специально для ANDOS.
и SSD Group
~~~~~~~~~~~

Дмитрию Романову          за программу установки даты, написан-
~~~~~~~~~~~~~~~~          ную специально для заставки ANDOS, за
                          VorteX! и ценные советы.

Денису Сотченко (RDC)     за ценные советы и идеи.
~~~~~~~~~~~~~~~~~~~~~

С.Авдюшину        за создание основы файловой системы  ANDOS  и
~~~~~~~~~~        последующие ценные советы.

фирмам Altec      за поддержку,
и Альтпро         а также их основателям:
~~~~~~~~~
- В.Новаку        за EDALT3, идею сортировки каталога  и  алго-
  ~~~~~~~~        ритмы печати и автозапуска;

- Н.Подкопаеву    за EDALT3, ценные советы и пожелания.
  ~~~~~~~~~~~~

М.Королеву (MKT)  за Reader.14, DESS, TURBO6M и кое-какие идеи.
~~~~~~~~~~~~~~~~

Д.Бутырскому (BD) за пару мелких, но ценных  идей,  почерпнутых
~~~~~~~~~~~~~~~~~ из его MCommander'а.

А.Ходулеву        за BKPACK.
~~~~~~~~~~

Всем пользователям ANDOS, оценившим труды авторов.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
   Телефон:        (095)180-3002, Алексей
                   ВТ,ЧТ 19:00-23:00 СБ,ВС 12:00-23:00

   Почтовый адрес: 129329, Москва, а/я 103,
                   Надежину Алексею Михайловичу

   FidoNet:        2:5020/754.9, 2:5020/189.32

   E-Mail:         andos@p9.f754.n5020.z2.fidonet.org
                   andos@dataforce.net

   WWW:            http://www.dataforce.net/~andos
                   (Эта страничка World Wide Web (WWW)
                   сети Интернет откроется в ближайшее время)

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

                                     (C) 1.5.1997 А.М.Надежин

---------------------------------------------------------------
    Желаю Вам успешной и плодотворной работы с ANDOS V3.30
---------------------------------------------------------------



--------------------
Живы будем - Не помрем !
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SuperMax
сообщение 11.2.2021, 20:37
Сообщение #2


Администратор
*****

Группа: Root Admin
Сообщений: 6 046
Регистрация: 7.1.2006
Из: Красноярск
Пользователь №: 1



Код
  Дисковая операционная система для БК0010, БК0011, БК0011М


     ##┐      ###┐   ###┐ ########┐     ######┐     ######┐
    ####┐     ###│   ###│ ###┌──####┐ ####┌─####┐ ####┌─####┐
   ######┐    ####┐  ###│ ###│   ###│ ###┌┘  ###│ ###┌┘  ###│
  ###┌─###┐   #####┐ ###│ ###│   ###│ ###│   ###│ ####┐  └──┘
###┌┘  ###┐  ###│##┐###│ ###│   ###│ ###│   ###│ └─######┐
###│   ###│  ###│ #####│ ###│   ###│ ###│   ###│   └───####┐
##########│  ###│  ####│ ###│   ###│ ###│   ###│ ###┐   ###│
###┌───###│  ###│   ###│ ###│  ####│ ####┐ ####│ ####┐ ####│
###│   ###│  ###│   ###│ ########┌─┘ └─######┌─┘ └─######┌─┘
└──┘   └──┘  └──┘   └──┘ └───────┘     └─────┘     └─────┘



                         ВЕРСИЯ 3.30

       (C) 1993-97 А.М.Надежин, С.Е.Камнев, Д.К.Крылов



==================== (C) 1997 А.М.Надежин =====================

     Я рад  представить продукт,  которого Вы так долго ждали:
ANDOS V 3.30. В этой версии реализованы:

- Работа с 63-мя устройствами (разделами винчестера)
- "Объединение" нескольких разделов винчестера в один
    и удобный переход с диска на диск с помощью ссылок
- Поиск файла по маске на всех доступных разделах винчестера
- Графическое дерево подкаталогов
- Редактирование текстовых файлов
- Режим сохранения экрана (звездочки)
- Калькулятор
- Настройка системы из оболочки (многие М-файлы встроены)
- Восстановление оболочки при ее уничтожении без перезагрузки
- Значительно увеличена скорость работы файлера

     Возможно, Вы ожидали большего, но, к сожалению, я практи-
чески не имею сейчас возможности заниматься БКшкой, и эта вер-
сия почти целиком создавалась без моего участия:  сам  "перех-
ватчик EMT36" или "ДОС" (как кому больше нравится) остался без
изменений (новая версия 4.0 в принципе существует -  она  была
написана мной летом 1995 года,  но ее Вы уже вряд ли когда ни-
буть увидите). Весной 1995 года Сергей Камнев усовершенствовал
свою оболочку Disk Master, добавив в нее функции работы с вин-
честером. В таком виде ANDOS V3.11 получил небольшое несанкци-
онированное распространение. Затем летом-осенью 1995 года Кам-
нев внес в Master существенные  изменения,  добавив  множество
новых функций и введя почти все .M-файлы в состав оболочки.  В
таком виде это все провалялось еще  год,  пока  Д.К.Крылов  не
взялся за создание версии, описание которой Вы сейчас читаете,
за что ему ОГРОМНОЕ СПАСИБО.
     Я предполагаю,  что 99% пользователей прекрасно знакомы с
ANDOS V3.1, поэтому в этом документе описаны лишь изменения по
сравнению с этой версией.

             Совместимость с предыдущими версиями
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ANDOS V3.30 полностью совместима с версией 3.1, на  уровне
системных запросов, поэтому любые программы и утилиты, исполь-
зующие эти запросы, будут работать в ANDOS V3.30.
    Основным отличием от предыдущих версий является новая вер-
сия сервисной оболочки - Disk MASTER ]I[.

                        ANDOS и файлер
                        ~~~~~~~~~~~~~~
     Вдвое увеличено количество устройств (добавлены маленькие
буквы).
     В ANDOS при выводе каталога убран фильтр пo расширению.

                      Эмулятор MicroDOS

     Эмулятор MicroDOS выведен из состава ANDOS.  Теперь диски
MicroDOS можно  просматривать  в  Master'е  и  запускать с них
программы, но эти программы не смогут работать с диском,  если
предварительно не был запущен эмулятор (он запускается пунктом
"Mdosem" из меню "Command" (СУ+M). Эмулятор является стандарт-
ной подгрузкой Master'а и размещается с адреса 137000, поэтому
при запуске любой другой подгрузки он будет уничтожен.

                            Файлер

     В файлере  удалена  обработка подкаталогов:  показываются
все файлы, имеющиеся на диске. Файлер может быть вызван только
на текущем устройстве. За счет этого удалось значительно уско-
рить работу файлера.


                       DISK MASTER ]I[
                       ~~~~~~~~~~~~~~~
     В отличие от предыдущих версий не вся оболочка при запус-
ке загружается в память компьютера.  Часть функций выполняются
модулями,  размешенными в подгружаемом оверлее оболочки. Такой
способ  работы  позволил отказаться от большого количества М -
файлов,  которые переведены в файл ANDOS.SYS и запускаются  из
меню  (КТ,  АР2+9).  Всвязи  с этим для нормальной работы Disk
MASTER необходимо,  чтобы файл ANDOS.SYS всегда  был  доступен
системе. Этого можно добиться одним из следующих способов:

    - оснастить Вашу БК винчестером
    - иметь два дисковода с системным диском в одном из них
    - если у Вас БК0011М давать команду "OVL" в начале каждого
      сеанса работы для установки оверлея на виртуальный диск
    - скопировать на все рабочие диски  файл  ANDOS.SYS  таким
      образом, чтобы этот файл обязательно был  последователь-
      ным и находился в начале диска. Проще всего это сделать,
      скопировав ANDOS.SYS на чистый диск, и уже потом записав
      на него рабочие файлы.  Более сложный вариант:  скопиро-
      вать на какой-нибуть другой диск файлы  из  первых  23-х
      кластеров, записать  ANDOS.SYS и переписать файлы назад.
      Проверить правильность установки ANDOS.SYS можно, сделав
      диск системным (командой "MakeBoot" программы ANFORM).


     ВНИМАНИЕ! При  установке  оверлея на виртуальный диск все
старое содержимое виртуального диска уничтожается, поэтому эту
операцию рекомендуется  производить сразу после загрузки.  При
этом на виртуальном диске создается файл MASTER.OVL,  содержа-
щий часть файла ANDOS.SYS.
     Если после установки оверлея программой OVL.M виртуальный
диск  был  отключен или испорчен,  MASTER вновь начинает обра-
щаться к системному диску.
     Помимо установки  на виртуальный диск оверлея,  программа
OVL.M позволяет также переписать  на  виртуальный  диск  любые
файлы, перечисленные в текстовом файле MLIST.TXT,  находящемся
на системном диске.

                            * * *

     Несмотря на то,  что многие функции теперь вызываются  из
меню, они все равно остаются подгрузками,  и некоторые из них,
как и раньше,  акивизируются по нажатию СУ+F.  Так,  например,
если вызвать из меню "Command" функцию "PrintDIR",  произойдет
запуск соответствующией подгрузки и для повторной печати ката-
лога можно просто нажимать СУ+F.

                            * * *

     Две функции,  вызывающиеся из меню: сравнение каталогов и
создание ссылки не требуюет подгрузки оверлея.  Поэтому Вы мо-
жете использовать  сочетания  клавиш  СУ+Q  и СУ+] даже тогда,
когда файл ANDOS.SYS недоступен системе.

                            * * *

     При уничтожении MASTER'а в памяти его можно восстановить,
запустив программу MASTER:

    ? М<-┘         Эта комнда монитора БК восстановит в памяти
    ИМЯ? MASTER<-┘ Disk MASTER, если он был уничтожен

По умолчанию запуск  этой  программы  запрограммирован  на  9й
ключ, поэтому  для  восстановления  MASTER'а достаточно нажать
АР2+9.

                       Хранитель экрана

     Если в течение некоторого времени при работе с  Master'ом
ничего не  делать,  запустится  программа  сохранения экрана -
"звездное небо".  Время запуска хранителя экрана можно устано-
вить,  выбрав пункт "savEscr" меню "Setup" (КТ E). Единица со-
ответствует приблизительно 100-секундной задержке.  При  уста-
новке времени задержки 0, звездочки не появятся никогда.

                       Выбор устройств

     Окно выбора  устройств  теперь  не  содержит меню:  в нем
отображается лишь буква текущего для данной панели устройства.
Стрелками <--  и  -->  Вы можете выбрать нужное устройство,  а
клавишей <-┘ запустить чтение каталога. Удобнее просто ввести
букву нужного  устройства (РУС или ЛАТ регистр не имеет значе-
ния).

                       Запуск программ

     В Disk  MASTER ]I[ появилась возможность запуска программ
с системного диска: если в командной строке набрать имя нужной
программы,  MASTER попробует найти ее на текущем диске, а если
ее там нет, запустит с системного диска.

XEROX2  Эта команда запустит XEROX2 с текущего или системного
        диска.

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

OVL     Эта команда запустит OVL.M

                       Виртуальный диск

     Виртуальный диск на БК0011М может быть подключен или отк-
лючен командой "vDisk" меню "Setup".  Когда  виртуальный  диск
подключен, в конце командной строки отображается "VD".
     Режим виртуального диска сохраняется вместе с другими па-
раметрами оболочки по команде "Save" того же меню.
     ВНИМАНИЕ! При  установке оверлея Disk MASTER на виртуаль-
ный диск старое содержимое виртуального диска уничтожается.
     При наличии винчестера лучше не пользоваться  виртуальным
диском, так как винчестер все равно работает быстрее.

                            Ссылки

     Для удобства  работы  с  винчестером  можно  использовать
ссылки. С помощью них можно легко и удобно переходить с одного
диска на другой,  и даже "объединять" несколько дисков в один.
     На любом  диске можно создать ссылку для перехода на дру-
гой диск.  Для этого вызовите на пассивную панель каталог дис-
ка,  НА который нужно ссылаться,  а на активную панель каталог
диска,  где будет создаваться ссылка.  Вызовите команду "Make-
dev" меню "Disk" (Или просто нажмите СУ+]) и введите имя ссыл-
ки.
     Поясню на примере, как "объединить в один" два диска. До-
пустим Вы хотите  объединить диски C: и F:.
     1. Прочитайте каталог C: на левую панель  ( K== C)
     2. Прочитайте каталог F: на правую панель ( |==> F)
     3. Встаньте на левую панель
     4. Нажмите СУ+] и введите имя ссылки, например "Диск F"
     5. Перейдите на правую панель
     6. Нажмите СУ+] и введите имя ссылки, например "__"
Теперь Вы можете использовать диск F:  как подкаталог на диске
C:, т.е.  когда Вы установите курсор на ссылку "Диск F" и наж-
мете ВВОД,  Вы окажетесь на диске F:,  причем курсор автомати-
чески установится на обратную ссылку "__" (если,  конечно,  Вы
ее создали).
     В поле адреса у ссылок показывается  имя  устройства,  на
которое они ссылаются.
     Ссылки могут создаваться только в коневом каталоге диска.
     Ссылки, создаваемые  программой  MAKEDEV на дисках MKDOS,
также поддерживаются Disk Master'ом.
     Ссылки можно  переименовывать,  удалять и даже копировать
(разумеется удаляться и копироваться будет только сама ссылка,
а не весь диск),  однако следует иметь ввиду, что если при ко-
пировании на целевом диске обнаруживается ссылка  с  таким  же
именем, копирование не производится.
     Также, как и подкаталоги, ссылки занимают место в катало-
ге диска,  который,  как Вы помните,  может содержать не более
112 элементов.

                            Дерево

     В Disk  MASTER  ]I[  появилась  возможность просматривать
структуру и содержимое подкаталогов в виде "дерева".  Для  за-
пуска этого  режима  вызовите пункт "Tree" меню "Command".  На
пассивной панели появляется "дерево" текущего диска. Клавишами
'вверх' 'вниз' можно перемещаться по подкаталогам, при этом их
содержимое будет отображаться на  активной  панели.  Клавишами
'влево'  'вправо' можно переходить на соседние разделы винчес-
тера. Переход на другие устройства происходит также при нажати
буквенных клавиш, соответствующих именам этих устройств. В ре-
жиме "дерево" могут просматриваться диски в формате "ANDOS"  и
"MicroDOS".
     По нажатию ВВОД происходит переход в тот каталог, на име-
ни которого стоял курсор "дерева".
     По КТ  происходит  выход из режима с переходом в корневой
каталог того устройства, которое было на панели до запуска ре-
жима.

                         Поиск файлов

       Disk MASTER  ]I[  позволяет  вести поиск файлов на всех
доступных разделах винчестера. Для запуска режима поиска вызо-
вите пункт "Find" меню "Command". В появившемся меню "Find mo-
del" вводится модель поиска аналогично тому,  как она вводится
в режиме фильтра. По завершению ввода модели начинается поиск:
на экране появляется окно, в которое выводятся имена найденных
файлов с  полным путем.  Кроме того,  вверху окна индицируется
имя раздела,  на котором в данный момент идет поиск  и  модель
поиска, а внизу окна общее количество файлов и количество най-
деных файлов.
     После завершения поиска в окне появляется курсор, который
можно перемещать по  построенному  списку  с  помощью  стрелок
вверх и вниз и выбирать конкретный файл, который вас интересу-
ет. Длина списка не ограничена.
     Выбрав какой-либо файл и нажав ВВОД  вы  оказываетесь  на
соответствующем разделе и в соответствующем каталоге.   Курсор
автоматически устанавливается на заданный файл,  так  что  его
можно сразу же запустить, просмотреть и т.д.
     Повторный вызов Find с пустой моделью сразу выдаст список
ранее  найденых  файлов,  причем предыдущее положение курсора-
указателя будет восстановлено и выбор файлов можно продолжить.
Результаты последнего поиска сохраняются в файле  FINDLIST.DAT
на системном диске).
     Если по заданной модели ни одного файла  не  найдено,  то
будет выдана соответствующее сообщение.
     Поиск ведется  на  всех  доступных  разделах  винчестера,
включая MicroDOS-овские.

                            Вьювер

     В связи с появлением редактора шаг горизонтального  пере-
мещения теперь устанавливается клавишей ШАГ (вместо S).
     Стандартный вьювер  воспринимает тексты в форматах EDASP,
Vortex,  Micro.  По команде "Viewers" меню "Setup" или по СУ+A
подгружается дополнительный вьювер указанной кодировки,  после
загрузки которого по СУ+F  можно  переключаться  между  ним  и
обычным вьювером.
     При запуске какой-либо функции-подгрузки  (например  Mdo-
sem, Address, Date и т.д.) дополнительный вьювер отключается.
     В меню выбора вьювера альтернативная кодировка теперь на-
зывается "IBM", а основная "ГОСТ".

                      Текстовый редактор

     В Disk MASTER  ]I[  появилась  возможность  редактировать
текстовые файлы,  размером до 32000(8) в форматах EDASP, TURBO
и VorteX. Запустить редактор можно двумя способами:
1 способ: Нажатием клавиши "Е" в режиме просмотра по АР2+3
2 способ: Выбором пункта "Edit" из меню "Сommand".
     Для создания и редактирования нового файла можно  исполь-
зовать только второй способ:  при выборе пункта "Edit" появля-
ется окно с запросом имени файла для редактирования, в которое
выводится имя файла, на котором стоял курсор. Для создания но-
вого файла просто введите его имя и нажмите "<─┘".
     При входе  в режим редактирования в нижней строке появля-
ется имя редактируемого файла,  список клавиш редактирования и
индикаторы языка и свободного объема памяти. В режиме редакти-
рования работают следующие клавиши:
Стрелки  - перемещение курсора в пределах набранного текста
АР2+<- ->- в начало/в конец строки
АР2+/\ \/- на страницу вверх/вниз
<─┘      - ввод/разбиение строки на две
<══      - забой/соединение двух строк в одну
K══ ╞══> - сдвижка/раздвижка в строке
╪═>      - сброс части строки справа от курсора
АР2+K══  - удаление строки в буфер
АР2+╞══> - восстановление строки из буфера
СБР      - переход к началу текста
ШАГ      - переход к концу текста
КТ       - выход из режима редактирования
     При выходе   из  редактора  появляется  меню  "Save  file
Yes/No" (Сохранить файл Да/Нет).  При выборе "No", все измене-
ния файла отменяются, а новый файл просто не создается.

                         Калькулятор

     В Disk MASTER III встроен модуль калькулятора,  созданный
Terra Software Inc. Калькулятор позволяет производить простей-
шие операции  с  целыми положительными числами в трех системах
счисления и будет полезен,  скорее, программистам. Калькулятор
не имеет функции "=" и работает, аналогично советским програм-
мируемым калькуляторам:  сначала вводится первое число,  потом
второе, а затем указывается знак.  Например,  чтобы к 2 приба-
вить 3 нужно ввести 2, нажать <─┘, ввести 3, нажать "+". Каль-
кулятор имеет следующие управляющие клавиши:

СБР - сброс числа
0-9 - ввод цифр
<══ - забой
<─┘ - ввод первого числа операции
+   - сложить
-   - вычесть
*   - умножить
/   - разделить
D   - десятичная система
O   - восьмиричная система
B   - двоичная система
КТ  - выход

     Теущая система счисления калькулятора может быть сохранена
командой "Save" меню "Setup".

                          Имя диска

     Вы можете  присвоить имя любому диску или разделу винчес-
тера. Для этого вызовите пункт "Disk  name"  меню  "Disk"  или
просто нажмите СУ+^.  Посмотреть имя диска в этой версии ANDOS
можно только через этот же пункт меню.  Возможно  в  следующих
версиях имя диска будет индицироваться на панели.

                     Инициализация дисков

     Инициализация дисков,  вызываемая  пунктом  "Init"   меню
"Disk" теперь возможна и на БК0010.  При инициализации автома-
тически определяется размер диска или раздела винчестера.

                       Печать каталога

     Печать каталога  (пункт  "Printdir"  меню "Command") пра-
вильно печатает имена подкаталогов, печатает 'DIR', 'DEV'.

                Другие изменения и исправления

     При копировании и перемещении для ввода пути теперь вмес-
то клавиши "\" используется клавиша ТАБ.
     Некоторые подпрограммы перемещены, и оболочка будет рабо-
тать, даже если файлер и драйвер печати уничтожены.
     Исправлены замеченные ошибки (например в MKDIR), и запре-
щен ввод пустых имен и адресов в некоторых функциях.
     Драйверы печати  переделаны,  так как КОИ7 вместо русских
букв на некоторых принтерах печатал курсив,  а IBM и  ГОСТ  не
печатали Ъ и ■, хотя и могли это делать.
     Теперь в  заставке можно устанавливать дату до 2079г. :)
     При сохранении параметров оболочки ("Setup"->"Save") сох-
раняется также загруженный шрифт.

                       Горячие клавиши

     Многие функции меню могут быть вызваны с помощью  сочета-
ний клавиш:
СУ+A - Установка адреса файла ("Command" -> "Address")
СУ+B - Установка разных View'eров ("Setup" -> "Viewers")
СУ+D - Установка даты ("Command" -> "Date")
СУ+E - Активизация хранителя экрана (звездочек)
СУ+F - Активизация функции подгрузки
СУ+K - Калькулятор ("Command" -> "caLc")
СУ+M - Эмулятор MicroDOS ("Command" -> "Mdosem")
СУ+P - Поиск ("Command" -> "Find")
СУ+R - Редактирование текста ("Command" -> "Edit")
СУ+T - Дерево ("Command" -> "Tree")
СУ+U - Переключение вирт.диск/магнитофон ("Setup" -> "vDisk")
СУ+Q - Сравнение панелей ("Command" -> "Compare")
СУ+] - Создание ссылки на диск ("Disk" -> "Makedev")
СУ+^ - Ввод имени диска ("Disk" -> "Disk Name")

     Из-за особенностей БК многие управляющие клавиши дублиру-
ются СУ- сочетаниями, знать которые иногда может оказаться по-
лезным:

СУ+С = КТ   - вызов меню, отмена операций
СУ+H = <--  - в начало экрана
СУ+I = ТАБ  - переход на другую панель
СУ+L = СБР  - перечитывание каталога текущей панели
СУ+N = РУС  - переход на русский язык
CУ/O = ЛАТ  - переход на нерусский язык :)
СУ+S = ВС   - выделение/отмена выделения файла
СУ+V = K==  - чтение каталога на левую панель
СУ+W = |=>  - чтение каталога на правую панель
СУ+Y = -->  - в конец экрана
СУ+Z =вверх - на строку вверх
СУ+[ = вниз - на строку вниз

                        Утилиты ANDOS
                        ~~~~~~~~~~~~~
     ANFORMAT теперь работает с устройствами от A: до ■:, поз-
воляя инициализировать  разделы винчестера (разделы винчестера
обычно имеют размер 1700 блоков, поэтому не забывайте устанав-
ливать командой "Set" количество дорожек равным 85).

                 Информация для программистов
                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     Добавлены ячейки:
┌──────┬──┬──────┬─┬──────────────────────────────────────────┐
│120156│ 1│DEVSYS│P│Устройство с которого произведена загрузка│
│      │  │      │ │ANDOS (0 - A, 1 - B ...)                  │
├──────┼──┼──────┼─┼──────────────────────────────────────────┤
│120157│ 1│DEVMAS│P│Устройство, с которого Disk MASTER подгру-│
│      │  │      │ │жает необходимые модули оболочки. Совпада-│
│      │  │      │ │ет с системным до запуска OVL.M, после ко-│
│      │  │      │ │торого становится виртуальным диском "E"  │
│      │  │      │ │При повреждении или отключении V-diska    │
│      │  │      │ │снова становится системным.               │
└──────┴──┴──────┴─┴──────────────────────────────────────────┘

     В техническом описании ANDOS была допушена ошибка:  подп-
рограмма RUNNER завускается не командой CALL @120312, а коман-
дой JSR R5,@120312.

     Добавлены ячейки:

┌──────┬──┬──────┬─┬──────────────────────────────────────────┐
│126604│ 2│IMAST │P│Вход в оболочку. Сделать JSR R5,@RUNNER   │
│      │  │      │ │.WORD IMAST, установить свой вектор 4.    │
│      │  │      │ │После этого можно пользоваться подпрограм-│
│      │  │      │ │мами оболочки (как в М - файлах).         │
├──────┼──┼──────┼─┼──────────────────────────────────────────┤
│126606│ 2│MASTI │P│Выход из оболочки. Сделать CALL @MASTI.   │
│      │  │      │ │Восстанавливаются вектора, установленные  │
│      │  │      │ │до входа в оболочку.                      │
└──────┴──┴──────┴─┴──────────────────────────────────────────┘

     Используя эти  ячейки  можно во время работы программы по
мере необходимости входить в оболочку и выходить  из  нее,  но
надо  помнить,  на  какие  адреса загружает оболочка каталог и
FAT,  и что подпрограммы с кодом вызова 107200 и выше загружа-
ются  на  23200 и не использовать такие подпрограммы,  которые
погубят Вашу программу. Некоторые испортят Вам стек.
    Подпрограммы чтения кода с клавиатуры (INPUT,  INPC) имеют
таймер включения "звездочек",  выдающий код 5 (СУ+E),  который
надо как-то перехватывать и не использовать для других целей.

                            * * *

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

         В заключении хочется выразить благодарность:
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Сергею Камневу            за  героическое создание новой версии
~~~~~~~~~~~~~~            оболочки Disk MASTER,  являющейся ос-
                          новой ANDOS, а также за за TRANSIT  и
                          эмулятор БК на PC.

Дмитрию Крылову           за героическое доведение до ума того,
~~~~~~~~~~~~~~~           что было героически сделано  С.Камне-
                          вым перед тем,  как  он  окончательно
                          перешел на PC.

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

Дмитрию Пугачеву (JOKER)  за  динамическую трехмерную заставку,
~~~~~~~~~~~~~~~~~~~~~~~~  созданную специально для ANDOS.
и SSD Group
~~~~~~~~~~~

Дмитрию Романову          за программу установки даты, написан-
~~~~~~~~~~~~~~~~          ную специально для заставки ANDOS, за
                          VorteX! и ценные советы.

Денису Сотченко (RDC)     за ценные советы и идеи.
~~~~~~~~~~~~~~~~~~~~~

С.Авдюшину        за создание основы файловой системы  ANDOS  и
~~~~~~~~~~        последующие ценные советы.

фирмам Altec      за поддержку,
и Альтпро         а также их основателям:
~~~~~~~~~
- В.Новаку        за EDALT3, идею сортировки каталога  и  алго-
  ~~~~~~~~        ритмы печати и автозапуска;

- Н.Подкопаеву    за EDALT3, ценные советы и пожелания.
  ~~~~~~~~~~~~

М.Королеву (MKT)  за Reader.14, DESS, TURBO6M и кое-какие идеи.
~~~~~~~~~~~~~~~~

Д.Бутырскому (BD) за пару мелких, но ценных  идей,  почерпнутых
~~~~~~~~~~~~~~~~~ из его MCommander'а.

А.Ходулеву        за BKPACK.
~~~~~~~~~~

Всем пользователям ANDOS, оценившим труды авторов.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


                            * * *

   Телефон:        (095)180-3002, Алексей
                   ВТ,ЧТ 19:00-23:00 СБ,ВС 12:00-23:00

   Почтовый адрес: 129329, Москва, а/я 103,
                   Надежину Алексею Михайловичу

   FidoNet:        2:5020/754.9, 2:5020/189.32

   E-Mail:         andos@p9.f754.n5020.z2.fidonet.org
                   andos@dataforce.net

   WWW:            http://www.dataforce.net/~andos
                   (Эта страничка World Wide Web (WWW)
                   сети Интернет откроется в ближайшее время)




                                     (C) 24.5.1997 А.М.Надежин

--------------------------------------------------------------
    Желаю Вам успешной и плодотворной работы с ANDOS V3.30
--------------------------------------------------------------



--------------------
Живы будем - Не помрем !
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SuperMax
сообщение 11.2.2021, 20:37
Сообщение #3


Администратор
*****

Группа: Root Admin
Сообщений: 6 046
Регистрация: 7.1.2006
Из: Красноярск
Пользователь №: 1



Код


  Дисковая операционная система для БК0010, БК0011, БК0011М


     ##м      ###м   ###м ########м     ######м     ######м
    ####м     ###|   ###| ###---####м ####--####м ####--####м
   ######м    ####м  ###| ###|   ###| ###--  ###| ###--  ###|
  ###--###м   #####м ###| ###|   ###| ###|   ###| ####м  L---
###--  ###м  ###|##м###| ###|   ###| ###|   ###| L-######м
###|   ###|  ###| #####| ###|   ###| ###|   ###|   L---####м
##########|  ###|  ####| ###|   ###| ###|   ###| ###м   ###|
###----###|  ###|   ###| ###|  ####| ####м ####| ####м ####|
###|   ###|  ###|   ###| ########--- L-######--- L-######---
L---   L---  L---   L--- L--------     L------     L------

                         Версия 3.30

                   Техническое руководство




=====================(C) 1997 А.М.Надежин =====================



                           Введение

     В этом документе описывается структура операционной систе-
мы ANDOS V3.30, ее программный интерфейс, формат диска, а также
программный интерфейс контроллера дисководов.
    Эта информация может использоваться  для  разработки  прог-
рамм, работающих в среде ANDOS (за исключением вирусов и  прог-
рамм, назначение которых - причинять какой-либо вред кому-либо)
и не должна использоваться в других целях.
     Использование в  программах пользователя фрагментов ANDOS,
ее утилит и оболочки возможно только с согласия авторов.


                       1. Загрузка ANDOS

     Первоначальная загрузка производится программой  начальной
загрузки, размещенной в ПЗУ контроллера дисковода, и вызываемой
обращением по адресу 160000.  На БК0010 вызов осуществляется из
монитора  вводом команды S160000; на БК0011М монитор обращается
к этому адресу автоматически,  на БК0011 из монитора дается ко-
манда 160000G или команда B, при которой монитор читает с диска
нулевой блок, не пользуясь драйвером дисковода.
     В программе начальной загрузки ПЗУ 1801РЕ2-253, использую-
щейся в контроллере от БК0011 (БЛОК КНГМД 3.059.001)  применена
команда  EMT112,  поэтому  для запуска начального загрузчика на
БК0010 необходимо предварительно поместить код команды возврата
из  подпрограммы  207  по  адресу 10546 (по случайному стечению
обстоятельств команда EMT112 на БК0010 приводит к обращению  по
этому адресу).
     Программа начальной загрузки считывает нулевой блок  нуле-
вого  диска  с  адреса 1000,  после чего проверяет соответствие
первого слова считанного блока коду 240 (команда NOP),  несоот-
ветствие второго слова коду 5 (команда RESET) и запускает прог-
рамму загрузки с адреса 1000.  Если по каким-либо причинам счи-
тать 0 блок с нулевого привода не удалось,  первое слово в счи-
танном блоке отличается от 240 или второе слово равно 5,  - на-
чальный  загрузчик  пытается  считать  0 блок с первого привода
(загрузчик в ПЗУ 1801РЕ2-253 производит также чтение со 2  и  3
привода).  Если  и  в этом случае загрузка оказалась неудачной,
начальный загрузчик возвращает управление в вызвавшую его прог-
рамму  (монитор БК).  Загрузчик из ПЗУ 1801РЕ2-253 при возврате
после неудачной  загрузки  дает  команду  EMT0,  приводящую  на
БК0010 и БК0011М к зависанию.
     В нулевом  блоке  системного  диска  размещается  програм-
ма-загрузчик,  позволяющая  производить загрузку на компьютерах
БК0011, БК0011М и БК0010 с дополнительным ОЗУ 4-16Кбайт.
     Первые 100  байт  загрузчика  занимает  таблица параметров
диска,  описанная в разделе "Таблица параметров диска" приложе-
ния  "Структура  диска ANDOS".  С сотого байта начинается собс-
твенно загрузчик.
    Загрузчик ANDOS работает следующим образом: проверяется тип
компьютера (на БК0011 и БК0011М устанавливается 4 страница  ОЗУ
в нижнее окно и 6 страница в верхнее окно, выключается и  сбра-
сывается таймер, устанавливается пятая палитра), очищается  эк-
ран и выводится сообщение "Идет загрузка ANDOS". Далее происхо-
дит определение области, читаемой из файла ANDOS.SYS (на  самом
деле чтение происходит по физическим номерам блоков,  при  этом
предполагается, что файл ANDOS.SYS последователен, и записан  в
начале диска). На БК0011 и БК0011М файл ANDOS.SYS читается  це-
ликом с самого начала (первые  16.  блоков  файла  ANDOS.SYS  -
стандартный монитор БК), на БК0010 начиная с шестнадцатого бло-
ка, при этом размер  читаемой  области  определяется  доступным
ОЗУ: при отсутствии ОЗУ по адресу 120000 в основное ОЗУ  загру-
жаются 48-63 блоки ANDOS.SYS (60-75  блоки  диска),  содержащие
модуль заставки, после чего ему передается управление. При  на-
личии ОЗУ 4Кбайт читается ядро ANDOS  (10000  байт)  по  адресу
120000 и заставка в основное ОЗУ. При наличии ОЗУ 8Кбайт  чита-
ется ядро ANDOS, файлер, эмулятор MicroDOS (20000 байт) и  зас-
тавка. При ОЗУ 16Кбайт (только с таким ОЗУ возможна полноценная
работа на БК0010) читается  ядро,  файлер,  эмулятор,  оболочка
Disk MASTER и заставка (40000 байт).
     При ошибке чтения на  экран  выводится  сообщение  "Ошибка
загрузки #n, повторить" (n - номер ошибки контроллера) и разда-
ется звуковой сигнал. При нажатии любой клавиши происходит пов-
торная попытка чтения.
     Когда чтение успешно завершено: на БК0010 управление сразу
передается заставке;  на БК0011 и БК0011М оверлейная часть обо-
лочки из первой половины шестой страницы пересылается во вторую
половину  седьмой  страницы,  а заставка из второй части шестой
страницы пересылается в основное ОЗУ; кроме того на БК0011 про-
исходит модификация монитора для обеспечения работы звука нажа-
той клавиши, затем управление передается заставке.
     Модуль заставки, находящийся в основном ОЗУ определяет на-
личие ДОЗУ, и если его нет, блокирует клавиатуру и выводит зас-
тавку  с бегущей строкой,  содержащей сообщение о невозможности
работы ANDOS на БК0010 без дополнительного ОЗУ.  Если  дополни-
тельное ОЗУ обнаружено, происходит обращение к модулю начальной
инициализации, находящемуся в буфере ANDOS по адресу 125000.
     Модуль начальной инициализации подключает файлер, эмулятор
MicroDOS,  и оболочку Disk MASTER при наличии ОЗУ, необходимого
для работы каждого из них.  На БК0011(М) подключается виртуаль-
ный  диск (если ячейка VD$ON содержит не 0) и анализируется его
содержимое: если таблица параметров в нулевом блоке виртуально-
го  диска не отвечает требованиям ANDOS происходит форматирова-
ние и инициализация виртуального диска.
     Затем управление возвращается в модуль заставки и на экран
выводится динамическая заставка ANDOS,  при этом модуль началь-
ной инициализации ожидает нажатия управляющих клавиш для  изме-
нения даты, выхода в ANDOS или запуска ключа.
     При нажатии клавиши ПРОБЕЛ  устанавливается  нулевая  дата
(00.00.80),  которая в оболочке индицируется,  как пустая.  При
выходе в монитор по клавише КТ,  запуске ключей по клавишам 0-9
или  вызове стартовой функции по алфавитным клавишам вызов обо-
лочки отключается (очищается ячейка  MASTER).  Вызов  стартовой
функции представляет собой запуск программы,  размещенной с ад-
реса 137000 (первой командой подпрограммы должен быть NOP). Эта
возможность  предусмотрена для реализации стартового командного
файла.
     Если дата была изменена (за исключением  сброса  даты  по
ПРОБЕЛу)  при  любом  выходе из заставки происходит сохранение
даты на диске, при этом анализируется диск, и, если он был за-
менен, дата не сохраняется. При сохранении даты дисковые ошиб-
ки не анализируются.  Это позволяет отказаться  от  сохранения
даты,  открыв дисковод,  а также решает проблемы с заклеенными
дисками.


           2. Распределение памяти, структура ANDOS

     ANDOS практически   не   использует  память  пользователя
(0-77777),  и все свои переменные,  буфер и стек хранит в ОЗУ,
расположенном по адресу 120000. Это позволяет повысить качест-
во перехвата EMT36 и соответственно повысить процент  магнито-
фонных программ, нормально работающих с диском (именно поэтому
невозможна работа ANDOS в ПЗУ).  Единственные ячейки ОЗУ поль-
зователя,  изменяемые  ANDOS - это стандартные ячейки драйвера
магнитофона 264 ,  266, 301 и ячейки блока параметров магнито-
фона  (обычно  320-371).  Кроме  того  ANDOS использует ячейки
126-151 для установки ключей при инициализации или EMT14, байт
105  для  сброса  клавиатуры после нажатия клавиш,  вектора 30
(только на БК0010) и 4.  Кроме того драйвер дисковода  заносит
код ошибки в байт с адресом 52.
     Функционально ANDOS состоит из модуля инициализации, дис-
петчера  EMT,  модуля дисковой эмуляции EMT36 и модуля связи с
программой   пользователя.   Эти   модули   занимают    адреса
120000-124777. Далее в адресах 125000-126177 располагается бу-
фер. Адреса 126200-126352 занимают тексты программируемых клю-
чей.  Адреса 126352-126477 занимает внутренний стек ANDOS. Ад-
реса 126500-136777  занимает  резидентный модуль оболочки Disk
MASTER,  и входящие в него файлер, эмулятор MicroDOS и драйвер
принтера. Адреса  140000-147777  на  БК0010  и вторую половину
седьмой страницы на БК0011(М) занимает вторая часть оболочки.
     Система и  оболочка  (а также файлер,  эмулятор MicroDOS и
драйвер принтера) полностью независимы, поэтому наличие оболоч-
ки  и остальных модулей необязательно (вместо них на этих адре-
сах может, к примеру, находиться ассемблер).

                   Структура файла ANDOS.SYS

    На рисунке показана структура ANDOS.SYS. Цифры слева -  фи-
зические номера блоков диска, с которых начинаются соответству-
ющие области. Справа от таблицы показывается, какие части файла
загружаются на каких компьютерах, а также адреса их загрузки.

                    БК10+0 10+4 10+8 10+16 11,11M
           ANDOS.SYS                     
  14/12.---------------м- - - - - - - - - - -м 100000
        |Монитор БК0010|                     |
  34/28.+--------------+- - - м - -м- - м    | 120000
        |ANDOS,буф,стек|      |    |    |    |
        +--------------+- - - -    |    |    | 126500
        |MASTER (резид)|           |    |    |
  53/43.+--------------+           |    |    | 137000
        |Функкц. польз.|           |    |    |
  54/44.+--------------+- - - - - --    |    | 40000/140000
        |MASTER (оверл)|                |    |
  74/60.+--------------+-м- - м - -м- - |    |
        |Заставка ANDOS| |    |    |    |    |
114/76.+--------------+--- - - - --- - - - --
        |Подгр. MASTERa|
150/104.L---------------

      3. Назначение и содержание модулей и областей ANDOS

                   3.1. Модуль инициализации

     Модуль инициализации запускается при обращении  по  адресу
120000  (например  при  перезапуске  БК)  и выполняет следующие
функции: сбрасывает  регистр  состояния  контроллера  дисковода
(останавливает дисководы); очищает ячейки SCREEN и USRERR (опи-
сание этих ячеек см. далее); проверяет контрольную сумму ANDOS,
и если она не совпадает с эталоном выходит в монитор БК; прове-
ряет ячейку монитора 100036 - если ее содержимое отличается  от
120002 (монитор в ПЗУ) происходит перехват вектора 30; проверя-
ет ячейку CONFIG,  и, если значение в ней положительно, (компь-
ютер  БК0011(М)  устанавливается  палитра,  указанная  в ячейке
PALET.  Затем происходит установка ячеек пользователя (см.  да-
лее) и  ключей  клавиатуры,  после  чего  анализируется  ячейка
MASTER: если в ней не 0,  ее содержимое воспринимается, как ад-
рес оболочки Disk MASTER, запускаемой со следующего адреса, ес-
ли первым ее словом идет 104130.  Если оболочка отключена (0  в
ячейке SCREEN) или испорчена (первое слово оболочки не 104130),
происходит вывод на экран приглашения "ANDOS V3.30" и  выход  в
монитор БК0010 по команде HALT.


                      3.2. Диспетчер EMT

     Диспетчер EMT обрабатывает EMT-прерывания. При возникнове-
нии прерывания происходит сохранение значения 30 вектора.  Если
возникло прерывание EMT36,  диспетчер запускает модуль дисковой
эмуляции EMT36,  при любом другом EMT происходит вызов из мони-
тора БК0010 подпрограммы,  выполняющей соответствующее EMT (при
этом после каждого EMT14 происходит установка ячеек пользовате-
ля (см. далее) и ключей клавиатуры), после чего в 30 вектор за-
писывается сохраненное значение.


              3.3. Модуль дисковой эмуляции EMT36

     Модуль эмулирует работу  EMT-прерывания  чтения/записи  на
магнитофон для работы с диском и позволяет: считывать и записы-
вать файлы на диске и магнитофоне,  удалять файлы и  просматри-
вать  на экране каталог диска,  переходить с устройства на уст-
ройство.  Основной стек при работе  эмулятора  не  используется
(эмулятор использует стековую область ANDOS).

     Обращение к  эмулятору  осуществляется  командой EMT36 или
CALL @#120002 (в последнем случае работа с диском возможна даже
в  том случае,  когда вектор 30 испорчен программой пользовате-
ля). При любом обращении эмулятор выполняет следующие действия:


                    3.3.1. Обработка имени.

     При обработке  имени происходит отслеживание команд в име-
ни,  а также преобразование шестнадцатисимвольного имени  БК  в
восьмисимвольное  имя  с трехсимвольным расширением в стандарте
MS-DOS (IBM).
     Перепаковка имени осуществляется по  следующим  принципам:
первая точка имени является границей между именем и расширением
(если точки в имени  нет,  расширение  отсутствует),  остальные
точки являются обычными символами расширения. Если имя превыша-
ет 8 символов берутся первые семь символов и последний,  то  же
происходит,  когда расширение превышает 3 символа (берутся пер-
вые 2 и последний). Такой механизм упаковки позволяет в автома-
тическом режиме копировать на диски ANDOS файлы с магнитофона и
из других дисковых систем,  не заботясь о переименовании файлов
с длинными именами. Необходимо понимать, что все преобразования
имени осуществляются внутри ANDOS,  имя-же в  блоке  параметров
магнитофона  остается  без изменений.  Таким образом программа,
пытающаяся считать файл с длинным именем получает после  считы-
вания  в  блоке  параметров то имя,  которое сама там и указала
(хотя на диске имя перепаковано).


                 3.3.2. Настройка на тип диска

     После перепаковки имени осуществляется инициализация драй-
вера дисковода и считывание таблицы параметров диска из его ну-
левого блока.
     В случае, если формат используемого диска не соответствует
формату ANDOS, происходит определение наличия в памяти эмулято-
ра формата "MicroDOS" и передача ему управления. Для этого про-
веряется ячейка MDOSEM, содержащая адрес эмулятора (определение
наличия и целостности эмулятора происходит также, как и при за-
пуске оболочки).  Если эмулятор неработоспособен выдается сооб-
щение "ANDOS - Non-DOS disk".  Это же сообщение  выводится  при
выходе из эмулятора "MicroDOS" по команде "RET" (RTS PC).
     Если диск соответствует формату ANDOS происходит установка
размера диска, количества сторон, и определение состояния режи-
ма пропуска дорожек. Более подробно настройка параметров описа-
на далее (см. п.3.4.2. описание функции INIDRV).


                  3.3.3. Выполнение операции

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

                   Формат блока параметров:
            -------T----------------------------м
            | Смещ.|         Параметр.          |
            +------+----------------------------+
            |  0   |.BYTE Команда               |
            |  1   |.BYTE Ответ                 |
            |  2   |.WORD Адрес                 |
            |  4   |.WORD Длина                 |
            |  6   |.ASCII /Имя (16. символов)/ |
            |  26  |.WORD Адрес текущего файла  |
            |  30  |.WORD Длина текущего файла  |
            |  32  |.ASCII /Имя текущего файла/ |
            L------+-----------------------------

     В байт команды помещается один из кодов команд:

                         Коды команд
------------T-----------------------T-------------------------м
|Код команды| Стандартное назначение|    Назначение в ANDOS   |
+-----------+-----------------------+-------------------------+
|     0     | Выкл. двигателя магн. |мПерепаковка имени,  вы- |
|     1     | Вкл. двигателя магн.  |-кл. двигателя дисковода |
|     2     | Запись файла          | Запись файла            |
|     3     | Чтение файла          | Чтение файла            |
|     4     | Фиктивное чтение      | Не отрабатывается       |
|    200    |         -             | Удаление файла          |
|    203    |         -             | Быстрое чтение файла    |
|    202    |         -             | Запись по друг. адресу  |
|    204    |         -             | Вывод каталога на экран |
L-----------+-----------------------+--------------------------

     Как видно из таблицы,  ANDOS имеет  четыре  дополнительных
кода  команд.
     По коду  200  происходит  удаление файла с запросом (как и
при использовании команды ANDOS "-").
     По коду  202 происходит запись по другому адресу,  т.е.  в
блоке параметров магнитофона указывается реальный адрес  файла,
а в ячейку ADRDIR (120152), описанную в разделе "Модуль связи с
программой пользователя",  помещается адрес для занесения в ка-
талог.
     Код 203 используется  оболочкой  (и  может  использоваться
другими программами) для быстрого чтения файла в случаях:  если
драйвер дисковода настроен, дисковод включен, нужный блок ката-
лога загружен в память,  и уже известно, где находится запись о
нужном файле (ее адрес должен быть помещен в R2). Если при этом
блок  каталога  находится вне буфера ANDOS,  а в буфер загружен
FAT,  и номер блока FAT на диске (1) помещен в  ячейку  TEKBLK,
чтение FAT также не будет производиться.
     По коду 204 на экран выводится каталог (как и при  исполь-
зовании команды ANDOS ":".

     Через год  после  выпуска  в свет первой версии ANDOS была
обнаружена новая возможность,  связанная с тем, что коды опера-
ций 0 или 1 могут использоваться для перепаковки имени. При вы-
полнении этих операций происходит  перепаковка  имени  в  буфер
NAMBUF с логической обработкой. При этом команды смены устройс-
тва и режима записи будут отрабатываться сразу,  а при командах
удаления файла и вывода каталога их коды будут помещены в ячей-
ку COMAND.  Эти операции могут использоваться в программах, са-
мостоятельно  (не  пользуясь  EMT 36) читающих или записывающих
файлы.

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

     При выполнении большинства операций происходит поиск файла
в каталоге,  при этом по пустому имени вызывается файлер (вызов
файлера происходит по ячейке FILER аналогично вызову оболочки и
эмулятора MicroDOS  по  ячейкам MASTER и MDOSEM).  После выбора
файла с помощью файлера имя выбранного файла заносится в  буфер
имени NAMBUF и в поле имени блока параметров EMT36.

                  3.3.4. Завершение операции

     После выполнения  операции в байт ответа (а также в ячейку
301) помещается код ошибки.  При работе с  диском  используются
только два кода: "0" - операция завершена без ошибок, и "4" при
любых ошибках и выполнении нестандартных операций (например та-
ких как удаление или вывод каталога на экран). Именно из-за ко-
да ошибки "4" после просмотра каталога и других дисковых опера-
ций, вызываемых из монитора БК0010, выдается сообщение "ОШИБКА"
(выход из нестандартных операций  без  ошибки  недопустим,  так
как,  например,  в  этом  случае во многих текстовых редакторах
после чтения каталога уничтожался-бы текст, находящийся в памя-
ти).
     После чтения файла в поле имени текущего массива переписы-
вается имя из поля имени,  в поля адреса и длины  текущего мас-
сива помещаются соответствующие данные, взятые из каталога дис-
ка (т.е.  даже, когда явно указан адрес, в поле адреса текущего
массива помещается адрес из каталога),  в ячейку 264 помещается
реальный  адрес  загрузки  файла,  а  в ячейку 266 - его длина.

          3.4. Модуль связи с программой пользователя

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

                  3.4.1. Рабочие ячейки ANDOS

-------T--T------T-T------------------------------------------м
|Адрес |Дл|Метка |Т|       Назначение ячейки или массива      |
+------+--+------+-+------------------------------------------+
|120004|6 |DRV$A |S|Таблица параметров дисковода A:           |
|      |  |      | | .WORD Задержка опускания головки         |
|      |  |      | | .WORD Задержка шага                      |
|      |  |      | | .BYTE Дорожка прекоррекции               |
|      |  |      | | .BYTE Тип дисковода.  Единица  в  старшем|
|      |  |      | | бите - 80 дорожек, в 7 бите - 1 сторона).|
+------+--+------+-+------------------------------------------+
|120012|6 |DRV$B |S|Таблица параметров остальных дисководов.  |
+------+--+------+-+------------------------------------------+
|120020|66|DRVTAB|S|Рабочая  область  драйвера  НГМД (описание|
|      |  |      | |см. в приложении "Контроллер дисковода"). |
+------+--+------+-+------------------------------------------+
|120106| 2|DRIVER|S|Адрес входа "чтение/запись блока " драйве-|
|      |  |      | |ра НГМД (160004). Может использоваться для|
|      |  |      | |обслуживания нестандартных  устройств, на-|
|      |  |      | |пример виртуального диска).               |
+------+--+------+-+------------------------------------------+
|120110| 2|IOBUFF|S|Адрес буфера ANDOS (125000).              |
+------+--+------+-+------------------------------------------+
|120112| 2|E36STK|S|Адрес вершины стека ANDOS  (126476).      |
+------+--+------+-+------------------------------------------+
|120114|11|NAMBUF|B|Буфер имени.                              |
+------+--+------+-+------------------------------------------+
|120150| 2|SCREEN|I|Ячейка перехвата вывода на экран сообщений|
|      |  |      | |ANDOS (Значение по умолчанию 0). При нену-|
|      |  |      | |левом значении  этой ячейки при выводе со-|
|      |  |      | |общений вместо  EMT 16  выполняется  вызов|
|      |  |      | |подпрограммы, адрес  которой  находится  в|
|      |  |      | |этой ячейке. Для запрета вывода  на  экран|
|      |  |      | |достаточно поместить в SCREEN адрес любого|
|      |  |      | |кода 207, например 100256 . При перезапус-|
|      |  |      | |ке ANDOS ячейка SCREEN очищается.         |
+------+--+------+-+------------------------------------------+
|120152| 2|ADRDIR|I|Адрес, помещаемый в каталог.  Используется|
|      |  |      | |при исполнении EMT36 с кодом операции 202 |
+------+--+------+-+------------------------------------------+
|120154| 1|DEVICE|P|Текущее устройство (0-@:, 1-32 - A:-Z:).  |
+------+--+------+-+------------------------------------------+
|120155| 1|DEVTEK|P|Временное текущее устройство. Совпадает  с|
|      |  |      | |DEVICE при  запуске  операции,  изменяется|
|      |  |      | |при явном указании устройства в имени.    |
+------+--+------+-+------------------------------------------+
|120156| 1|DEVSYS|P|Устройство с которого произведена загрузка|
|      |  |      | |ANDOS (0 - A, 1 - B ...)                  |
+------+--+------+-+------------------------------------------+
|120157| 1|DEVMAS|P|Устройство, с которого Disk MASTER подгру-|
|      |  |      | |жает необходимые модули оболочки. Совпада-|
|      |  |      | |ет с системным до запуска OVL.M, после ко-|
|      |  |      | |торого становится виртуальным диском "E"  |
|      |  |      | |При повреждении или отключении V-diska    |
|      |  |      | |снова становится системным.               |
+------+--+------+-+------------------------------------------+
|120162| 2|SIZE  |O|Общее количество кластеров на диске. Опре-|
|      |  |      | |деляется подпрограммой INIDRV после считы-|
|      |  |      | |вания таблицы параметров из загрузчика.   |
+------+--+------+-+------------------------------------------+
|120166| 2|TEKBLK|O|Номер блока диска, находящегося в буфере. |
+------+--+------+-+------------------------------------------+
|120170| 2|VERS  |K|Версия ANDOS (для V3.1 - 100466)          |
+------+--+------+-+------------------------------------------+
|120127| 1|ATTRIB|I|Аттрибут файла, присваиваемый при записи. |
+------+--+------+-+------------------------------------------+
|120130| 1|SUBDIR|I|Номер катал., в котор. будет помещен файл.|
+------+--+------+-+------------------------------------------+
|120132| 2|DATE  |S|Системная дата (присв. файлу при записи). |
+------+--+------+-+------------------------------------------+
|120134| 2|PALET |S|Палитра, уст. на БК11(М) при перезапуске. |
+------+--+------+-+------------------------------------------+
|120140| 1|WREGIM|P|Режим записи (код буквы "П" на любом реги-|
|      |  |      | |стре (120) - перезапись, "Д" (104) -дубль,|
|      |  |      | |другой код - вывод запроса).              |
+------+--+------+-+------------------------------------------+
|120141| 1|TEKREG|P|Текущий режим записи. Эти две ячейки очень|
|      |  |      | |похожи по своей работе на DEVICE и DEVTEK.|
+------+--+------+-+------------------------------------------+
|120142| 2|CONFIG|K|Конфигурация ЭВМ (60000 - БК11(М), 140000-|
|      |  |      | |БК10+16, 140002 - БК10+8, 0 - БК10+4).    |
+------+--+------+-+------------------------------------------+
|120146| 2|USRERR|I|Ячейка перехвата сообщений об ошибках. См.|
|      |  |      | |раздел "Обработка ошибок".                |
+------+--+------+-+------------------------------------------+
|120155| 1|VD$ON |S|Ненулевое значение в этой ячейке разрешает|
|      |  |      | |подключение виртуального диска при загруз-|
|      |  |      | |ке на БК11(М). Адрес VD$ON совп. с DEVTEK.|
+------+--+------+-+------------------------------------------+
|120164| 1|COMAND|P|Команда EMT36. В эту ячейку заносится  код|
|      |  |      | |команды из первого байта блока пар. EMT36,|
|      |  |      | |он может изменятся командами ANDOS.       |
+------+--+------+-+------------------------------------------+
|120172| 2|MASTER|K|Признак включения/адрес оболочки.         |
+------+--+------+-+------------------------------------------+
|120174| 2|FILER |K|Признак включения/адрес файлера.          |
+------+--+------+-+------------------------------------------+
|120176| 2|MDOSEM|K|Признак включения/адрес эмулятора MicroDOS|
+------+--+------+-+------------------------------------------+
|120244|12|USER  |I|Ячейки, восстанавливаемые при  перезапуске|
|      |  |      | |или EMT14. Значение первой ячейки  записы-|
|      |  |      | |вается по адресу из второй, 3->@4, 5->@6. |
+------+--+------+-+------------------------------------------+
|120314| 2|INIPRN|K|Адрес подп. инициализации принтера. Вызов:|
|      |  |      | |CALL @120312 .WORD 120314 . Бит C означает|
|      |  |      | |отсутствие драйвера принтера. Рег.не сохр.|
+------+--+------+-+------------------------------------------+
|120316| 2|OUTPRN|K|Адрес п/п вывода на принтер байта из R0  с|
|      |  |      | |перекодировкой в соотв. с тек. кодовой та-|                   |
|      |  |      | |блицей. Перед LF (12) авт. вывод. CR (15).|
+------+--+------+-+------------------------------------------+
|120320| 2|GRFPRN|K|Адрес п/п выв. на принтер байта из R0  без|
|      |  |      | |перекодировки (напр. для печати графики). |
+------+--+------+-+------------------------------------------+
|120322| 1|XY$FIL|S|(Кол-во столбцов)X(кол-во строк в файлере)|
+------+--+------+-+------------------------------------------+
|120323| 1|ST$FIL|S|Количество текстовых строк файлера.       |
+------+--+------+-+------------------------------------------+
|120324| 1|W$FIL |S|Ширина окна файлера в байтах.             |
+------+--+------+-+------------------------------------------+
|120325| 1|H$FIL |S|Высота окна файлера в строках.            |
+------+--+------+-+------------------------------------------+
|120326| 2|AD$FIL|S|Смещение левого верхнего угла файлера, от |
|      |  |      | |начала экрана (в байтах).                 |
L------+--+------+-+-------------------------------------------
     Типы ячеек,  указанные в графе "Т": S - параметр, устанав-
ливаемый пользователем или утилитой ANSETUP, и неизменяемый AN-
DOS, B - буфер, К - неизменяемая константа, P - переменная, I -
входной параметр, О - выходные данные (и переменная).

               3.4.2. Ячейки адресов подпрограмм

     В ячейках 120200-120236 и 120260-120312 расположены адреса
подпрограмм ANDOS, которые используются утилитами ANDOS и могут
быть  использованы  программами  пользователя.  Самой ANDOS эти
ячейки не используются.  В следующих версиях ANDOS список ячеек
будет расширен,  однако адреса ячеек, приведенных в этом описа-
нии, останутся без изменений.

---------T--------T-------------------------------------------м
| INIDRV | 120204 | Инициализация работы с диском             |
| INIT1  | 120206 | Инициализ. рабочей области драйвера КНГМД |
| RWBLOK | 120226 | Чтение/запись                             |
| RWBUF  | 120222 | Чтение/запись в буфер ANDOS с кэшированием|
| RWBUF1 | 120224 | Чтение в буфер без кэширования            |
| DIRENT | 120212 | Поиск элементов каталога                  |
| DIREN2 | 120214 | Поиск заполненных элементов каталога      |
| DIRFIN | 120216 | Поиск файла в каталоге                    |
| DIRFRE | 120220 | Поиск свободного элемента каталога        |
| RDFAT  | 120230 | Чтение FAT с диска                        |
| WRFAT  | 120232 | Запись FAT на диск                        |
| GETFAT | 120234 | Распаковка ячейки FAT                     |
| SETFAT | 120236 | Запись в ячейку FAT                       |
| ERASE1 | 120210 | Удаление файла                            |
| FRCLAS | 120202 | Поиск пустого кластера                    |
| RWCLAS | 120200 | Чтение/запись кластера                    |
+--------+--------+-------------------------------------------+
| RUNNER | 120312 | Вызов подпрограммы с проверкой целостности|
| EXIST  | 120270 | Открытие файла для записи (Перезап./Дубль)|
| DOUBLE | 120264 | Переименование файла в .BAK               |
| ENDWRT | 120266 | Закрытие файла                            |
| ERASE2 | 120310 | Удаление цепочки из FAT.                  |
| DIRFI1 | 120302 | Поиск файла в каталоге (с файлером)       |
| DIRFI2 | 120260 | Поиск файла в каталоге по имени из NAMBUF |
| FIND   | 120300 | Поиск файла в каталоге с выдачей сообщения|
| CONNAM | 120274 | Перепаковка и логическая обработка имени  |
| DONAME | 120272 | Поиск команд и перепаковка имени          |
| ENAME  | 120262 | Поиск конца строки и точки                |
| FRCLA1 | 120276 | Поиск пустого кластера, нач. от указанного|
| RDBLOK | 120304 | Чтение блока в буфер                      |
| WRBLOK | 120306 | Запись блока из буфера                    |
L--------+--------+--------------------------------------------

            INIDRV - инициализация работы с диском

Вызов:     CALL @120204
Результат: Кол-во кластеров -> SIZE,
            бит "C" - диск не в формате ANDOS.

     Процедура используется  в начале любой дисковой операции и
выполняет следующие действия:  инициализирует  рабочую  область
драйвера КНГМД, устанавливает, в соответствии с ячейкой DEVTEK,
параметры дисковода по одной из  таблиц:  DRV$A  (для  A:)  или
DRV$B  (для остальных устройств),  считывает таблицу параметров
диска из загрузчика,  проверяет  соответствие  некоторых  ячеек
этой таблицы эталону,  и если его нет (диск не в формате ANDOS)
выходит с установленным битом "C",  устанавливает  режимы  "1/2
стороны" и "вкл/выкл пропуска дорожек" (пропуск дорожек включа-
ется только в случае если на 80-дорожечном  дисководе  читается
диск,  размер которого не превышает 860.  блоков на двухсторон-
нем,  и 430.  на одностороннем диске). Необходимо отметить, что
некоторые параметры (количество повторов при ошибке, количество
секторов на дорожке, размер сектора) в DRVTAB являются констан-
тами и не изменяются ANDOS, поэтому и программа пользователя не
должна изменять их (а в случае изменения должна потом их  восс-
танавливать). После выполнения операции в буфере находится  ну-
левой блок диска, при этом ячейка количества сторон (IOBUFF+32)
уменьшена в два раза.



     INIT1 - Инициализация рабочей области драйвера НГМД.

Вызов:     CALL @120206
Портит:    R2

     Функция вызывается из INIDRV и выполняет действия,  анало-
гичные  функции  "Инициализация  рабочей области" драйвера НГМД
(очищаются регистр 177130 и поля CSRW, TRKTAB, FLAGS). Назначе-
ние полей рабочей области см. в приложении "Контроллер дисково-
да".


                    RWBLOK - Чтение/запись

Вызов:     CALL @120226
Параметры: R0 - Номер блока на диске, R2 - Адрес,
            R1 - Длина в словах

     Подпрограмма производит чтение с диска или запись информа-
ции на диск. Если длина, записанная в R1, отрицательна - проис-
ходит запись (длина берется по модулю).  Если во время операции
произошла   ошибка,   происходит  перепозиционирование  головки
(только для устройств 0-3);  если ошибка не устранилась, на эк-
ран  выводится сообщение "ANDOS - Disk error #<номер ошибки>" и
ожидается нажатие любой клавиши, после которого операция повто-
ряется. Функция используется при любом обмене с диском.


      RWBUF - Чтение/запись в буфер ANDOS с кэшированием

Вызов:     CALL @120222
Параметры: R0 - Номер блока на диске, R1 - Длина в словах
Портит:    R2

     Подпрограмма производит чтение с диска в буфер ANDOS с кэ-
шированием (если читаемый блок был прочитан в буфер ранее  (но-
мер блока в буфере хранится в ячейке TEKBLK) чтение не произво-
дится),  и запись информации из буфера на диск. Если длина, за-
писанная в R1, отрицательна происходит запись (длина берется по
модулю,  а номер блока переписывается в TEKBLK).  Длина никогда
не должна превышать размера буфера (500 слов).


            RWBUF1 - Чтение в буфер без кэширования

Вызов:     CALL @120224
Параметры: R0 - Номер блока на диске, R1 - Длина в словах
Портит:    R2

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


                 RDBLOK - Чтение блока в буфер

Вызов:     CALL @120304
Параметры: R0 - Номер блока на диске

     Подпрограмма читает с кэшированием указанный блок в буфер.


                WRBLOK - Запись блока из буфера

Вызов:     CALL @120306
Параметры: R0 - номер блока на диске

     Подпрограмма записывает содержимое буфера ANDOS в  указан-
ный блок диска.


               DIRENT - Поиск элементов каталога

Вызов:     CALL @120212
Параметры: Перед первым запуском очистить R0
Результат: R4 - Адрес начала элемента (R4=0 - конец каталога)
            бит "Z" - конец каталога
Не портить R0, R4

     Перед запуском  функции  должна  быть  выполнена  операция
INIDRV.  Функция позволяет поэлементно считывать каталог диска.
Перед первым запуском R0 должен быть очищен. При первом запуске
DIRENT  считывает в буфер первый блок каталога (далее она авто-
матически будет подчитывать блоки каталога).  В R4 возвращается
адрес первого элемента каталога в буфере.  При втором запуске в
R4 будет возвращен адрес второго элемента, и так далее пока ка-
талог  не кончится - в этом случае R4 будет очищен и установлен
бит "Z".  Функция не различает элементы каталога  (заполненные,
стертые  и пустые).  С первого до последнего вызова функции ре-
гистры R0 и R4 не должны портится. В R0 хранится номер текущего
блока каталога.


         DIREN2 - Поиск заполненных элементов каталога

Вызов:     CALL @120214
Параметры: Перед первым запуском очистить R0
Результат: R4 - Адрес начала элемента
            бит "Z" - конец каталога
Не портить R0, R4

     Функция отличается от DIRENT тем, что она не выдает адреса
удаленных элементов каталога и подкаталогов,  а при первом пус-
том элементе останавливается,  устанавливая бит "Z". DIREN2 ис-
пользуется при поиске файла и выводе каталога на экран.


                DIRFIN - Поиск файла в каталоге

Вызов:     CALL @120216
Параметры: R1 - Адрес буфера имени
Результат: R2 - Адрес начала элемента (бит "C" - файла нет),
            R0 - Номер блока в буфере (блок каталога).
Портит:    R0, R2, R5

     Перед запуском функции  должна  быть  выполнена  операция
INIDRV. Подпрограмма ищет в каталоге файл с именем, адрес  ко-
торого записан в R1 (имя в формате: 8 байт имени, 3 байта рас-
ширения). Адрес элемента каталога в буфере  помещается  в  R2.
Если в каталоге нет файла с таким именем  происходит  выход  с
установленным битом "C". В R0 помещается номер блока,  находя-
щегося в буфере (один из блоков каталога).


      DIRFI2 -  Поиск файла в каталоге по имени из NAMBUF

Вызов:     CALL @120260
Параметры: Имя в NAMBUF
Результат: R2 - Адрес начала элемента (бит "C" - файла нет),
            R0 - Номер блока в буфере (блок каталога).
Портит:    R0, R1, R2, R5

     От DIRFIN отличается тем, что имя берется из NAMBUF.


         DIRFI1 - Поиск файла в каталоге (с файлером)

Вызов:     CALL @120302
Параметры: Имя в NAMBUF
            R3 - Адрес блока параметров EMT36 (для файлера)
Результат: R2 - Адрес начала элемента (бит "C" - файла нет),
            R0 - Номер блока в буфере (блок каталога).
Портит:    R0, R1, R2, R5

     От DIRFI2 отличается тем, что когда имя (первые 8 символов
буфера NAMBUF)  содержит одни пробелы, вызывается файлер.  Если
файлер отключен или испорчен, вызывается функция вывода катало-
га на экран.

       FIND - Поиск файла в каталоге с выдачей сообщения

Вызов:     CALL @120300
Параметры: Имя в NAMBUF
            R3 - Адрес блока параметров EMT36 (для файлера)
Результат: R2 - Адрес начала элемента (бит "C" - файла нет),
            R0 - Номер блока в буфере (блок каталога).
Портит:    R0, R1, R2, R5

     От DIRFI1 отличается тем,  что в случае, если файл не най-
ден, - на экран выдается сообщение "{имя файла} not found" (имя
берется из NAMBUF).


                DIRFRE - Поиск свободного элемента каталога

Вызов:     CALL @120220
Результат: R2 - Адрес начала элемента (бит "C" - нет эл-та).
Портит:    R0

     Перед запуском  функции  должна  быть  выполнена  операция
INIDRV.  Подпрограмма ищет в каталоге первый свободный (удален-
ный или пустой) элемент и помещает его адрес в буфере в R2. Ес-
ли каталог заполнен полностью (112 имен файлов и подкаталогов),
происходит выход с установленным битом "C".  В R0 - номер блока
в буфере.


                   RDFAT - Чтение FAT с диска

Вызов:     CALL @120230

     Подпрограмма читает с диска в буфер ANDOS таблицу FAT.


                   WRFAT - Запись FAT на диск

Вызов:     CALL @120232

     Подпрограмма записывает на диск две копии FAT  из  буфера
ANDOS. Сначала записывается вторая, а потом первая копия FAT.


                GETFAT - Распаковка ячейки FAT

Вызов:     CALL @120234
Параметры: R0 - Номер ячейки FAT
Результат: R0 - Содержимое ячейки

     Перед вызовом подпрограммы должна быть выполнена  операция
чтения FAT - RDFAT.  Функция распаковывает содержимое 12-битной
ячейки FAT,  номер которой указан в R0 и помещает его в тот  же
регистр.


                  SETFAT - Запись в ячейку FAT

Вызов:     CALL @120236
Параметры: R0 - номер ячейки, R1 - содержимое
Результат: R0 - старое содержимое ячейки

     Перед запуском функции  должна  быть  выполнена  операция
RDFAT. Подпрограмма запаковывает  содержимое  R1  в  12-битную
ячейку FAT, номер которой записан в R0. Старое значение ячейки
помещается в R0. Подпрограмма используется при записи и удале-
нии файла.


               ERASE2 - Удаление цепочки из FAT.

Вызов:     CALL @120310
Параметры: R0 - кластер начала цепочки
Портит:    R0, R1

     Перед запуском  функции  должна  быть  выполнена процедура
INIDRV. Функция считывает FAT с диска,  удаляет цепочку и запи-
сывает на диск две копии FAT.


                    ERASE1 - Удаление файла

Вызов:     CALL @120210
Параметры: R0 - номер блока в буфере,
            R2 - адрес записи о файле (в буфере)
Портит:    R0, R1, R2

     Перед выполнением ERASE1 должны  быть  выполнены  функции
INIDRV и DIRFIN. Функция удаляет файл, адрес записи о  котором
помещен в R2 (запись о файле должна быть найдена в каталоге  и
соответствующий  блок  каталога  загружен  в  буфер   функцией
DIRFIN). После выполнения операции в буфере - FAT.


               FRCLAS - поиск пустого кластера.

Вызов:     CALL @120202
Результат: Номер пустого кластера -> R0 (бит "C" - нет)

     Перед вызовом процедуры должны быть выполнены подпрограммы
INIDRV и RDFAT. Процедура ищет первый свободный кластер и поме-
щает в R0 его номер. Если свободных кластеров на диске нет, ус-
танавливается бит "C".


    FRCLA1 - Поиск пустого кластера, начиная от указанного

Вызов:     CALL @120276
Параметры: R4 - кластер начала поиска
Результат: Номер пустого кластера -> R0 (бит "C" - нет)

     В отличие от FRCLAS ищет пустой кластер не с начала,  а от
указанного кластера.


               RWCLAS - чтение/запись кластера.

Вызов:     CALL @120200
Параметры: R4 - номер первого обрабатываемого кластера
            R0 - признак чтения/записи (R0=0 - чтение)
            R2 - адрес начала обрабатываемого участка.
            R5 - сумма длин обрабатываемых кластеров
            R1 - ограничитель (остаток) длины
Результат: R1 - длина остатка файла (R1<=0 - файл кончился)
            R2 - адрес остатка файла в памяти
Портит:    R0, R4

     Подпрограмма предназначена  для  чтения/записи  одного или
нескольких кластеров.  RWCLAS позволяет  обрабатывать  за  одну
операцию несколько последовательных кластеров файла.  В R0 дол-
жен быть указан тип операции (R0=0 - чтение,  иначе запись).  В
R4 указывается номер первого, участвующего в операции кластера.
В R2 указывается адрес в памяти информации из первого обрабаты-
ваемого кластера. В R5 - суммарная длина обрабатываемых класте-
ров.  В R1 - ограничитель длины,  необходимый для  того,  чтобы
последний кластер файла читался или записывался не целиком, а в
соответствии с реальной длиной файла. После выполнения операции
в  R1  помещается  длина  оставшейся необработанной части файла
(если она оказывается меньшей или равной нулю  -  файл  обрабо-
тан), в R2 записывается адрес в памяти оставшейся части файла.


              ENAME - Поиск конца строки и точки

Вызов:     CALL @120262
Параметры: R3 - начало строки, R1+22. - конец
Результат: Адрес последнего символа строки -> R0
            Адрес символа после "точки" -> R4
            Адрес последнего символа перед точкой -> R2
            бит "C" - нет имени и расширения
            бит "Z" - нет имени, есть расширение
            R4 > R0 - есть имя, нет расширения
Портит:    R0, R2, R4

     Подпрограмма используется  при обработке имени.  Пробелы и
недопустимые символы (0-37, 200-237) не учитываются как в конце
всей строки, так и в конце имени (перед точкой).


       CONNAM - Перепаковка и логическая обработка имени

Вызов:     CALL @120274
Параметры: R3 - начало строки, R1+22. - конец
Результат: Имя -> NAMBUF
Портит:    R0, R2, R3, R4, R5

     Имя перепаковывается,  логически  обрабатывается (если имя
содержит более 8 символов,  берутся первые  семь  и  последний,
аналогично если  расширение содержит более 3 символов,  берутся
первые два и последний) и помещается в буфер имени NAMBUF.  Не-
допустимые символы (0-37, 200-237) в конце имени или расширения
не учитываются,  а  в  середине заменяются на пробелы.  Русская
заглавная буква "Е" в начале имени заменяется на аналогичную по
начертанию латинскую "E".


           DONAME - Поиск команд и перепаковка имени

Вызов:     CALL @120272
Параметры: R1 - адрес блока параметров EMT36
Результат: Имя -> NAMBUF
            Бит "С" - операция с магнитофоном
Портит:    R0, R2, R3, R4, R5

     Производится поиск  команд в строке имени,  при этом может
изменяться устройство текущей операции (DEVTEK) и устройство по
умолчанию (DEVICE), текущий режим записи (TEKWRT) и режим запи-
си по умолчанию (WREGIM), а также текущий код команды (COMAND),
который может принимать значение 200 при удалении, и значение 0
при выводе каталога на экран.  Далее  производится  перепаковка
имени (вызывается функция CONNAM).


     EXIST - Открытие файла для записи (Перезапись/Дубль)

Вызов:     CALL @120270
Параметры: Имя в NAMBUF
Результат: Бит "C" - файла нет
Портит:    R0 - R5

     Перед вызовом  функции  должна  быть  выполнена  процедура
INIDRV. Функция ищет в каталоге указанный файл, и если он обна-
ружен,  выдает на экран запрос "{имя файла} exist P/D:" (если в
ячейке TEKREG значение,  отличное от кода букв "P" и "D" на лю-
бом регистре) или выполняет действие,  соответствующее  коду  в
этой ячейке ("P" на любом регистре - файл удаляется, "D" на лю-
бом регистре - расширение файла заменяется  на  ".BAK",  причем
старый .BAK файл, если он конечно был, удаляется). То же проис-
ходит и при вводе соответствующего символа с клавиатуры.


             DOUBLE - Переименование файла в .BAK

Вызов:     CALL @120264
Параметры: Имя в NAMBUF
Портит:    R0, R1, R2, R5

     Фрагмент предыдущей функции, меняющий расширение указанно-
го файла на ".BAK" с удалением старого BAK-файла (если он был).


                    ENDWRT - Закрытие файла

Вызов:     CALL @120266
Параметры: Имя в NAMBUF
            ATTRIB - аттрибут
            SUBDIR - номер родительского подкаталога
            ADRDIR - адрес
            R1 - младшая часть 32-битной длины
            R3 - старшая часть длины (обычно 0)
            R2 - дата
            R4 - стартовый кластер
Портит:    R0 - R5

     Функция применяется при завершении записи файла.  Происхо-
дит  запись FAT на диск,  поиск места в каталоге (если место не
найдено,  - из FAT удаляется цепочка и выдается сообщение  "DIR
full"), создание записи о файле (дополнительные поля очищаются)
и запись каталога на диск.


      RUNNER - Вызов подпрограммы с проверкой целостности

Вызов:     JSR R5,@120312 .WORD {адрес ячейки с адресом подпр.}
Результат: Бит "C" - подпрограмма отключена или уничтожена
Портит:    R0, R5

     Функция проверяет содержимое ячейки,  адрес которой указан
после вызова,  и если там не 0, - сравнивает первое слово вызы-
ваемой  подпрограммы,  адрес  которой и лежит в этой ячейке,  с
константой 104130,  и, если они равны, вызывает подпрограмму со
следующего адреса.  В противном случае происходит выход с уста-
новленным битом "C".

                    3.4.3. Обработка ошибок

     В ANDOS  предусмотрена  обработка  всех  ошибок программой
пользователя,  для этого имеется ячейка USRERR (120146). Пока в
этой ячейке 0 система сама обрабатывает ошибки,  выдавая на эк-
ран сообщения и принимая  коды  с  клавиатуры.  Если  в  ячейку
USRERR записать адрес пользовательской подпрограммы,  при любой
ошибке  (здесь  и  далее запросы на перезапись/дубль и удаление
так же называются ошибками),  - происходит  вызов  подпрограммы
пользователя, при этом в R3 передается код ошибки, а в R4 адрес
текстового сообщения об ошибке.  Если ошибка предполагает  ввод
кода с клавиатуры,  он должен помещаться пользовательской подп-
рограммой обработки ошибок в (SP).  Выход из подпрограммы  осу-
ществляется командой RTS R5.

                          Коды ошибок
              ------T--------------------------м
              |  1  |  Non-DOS disk            |
              |  2  |  Disk full               |
              |  3  |  DIR full                |
              |  4  |  {имя файла} not found   |
              |  5  |  Disk error #n           |
              |  6  |  {имя файла} exist P/D:  |
              |  7  |  {имя файла}, delete?    |
              L-----+---------------------------


                  3.5. Системный буфер ANDOS

     Системный буфер ANDOS используется: для хранения загрузчи-
ка,  таблицы размещения файлов и частей каталога при выполнении
дисковых операций. В принципе область буфера может быть исполь-
зована программами пользователя для хранения каких-либо данных,
необходимо  только  учитывать,  что при любом обращении к диску
информация пользователя, находящаяся в буфере, будет потеряна.
     Кроме того,  начиная  с версии ANDOS V3.1,  стала возможна
загрузка файлов в буфер (естественно при этом нужно  учитывать,
чтобы файлы не превышали размер буфера - 1200 байт).  Это может
пригодиться,  например, для подгрузки оверлея резидентной прог-
раммой.


                      3.6. Область ключей

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

            .BYTE <количество символов в ключе 0>
            .ASCII /Символы ключа 0/
            .BYTE <количество символов в ключе 1>
            .ASCII /Символы ключа 1/
                         . . .
            .BYTE <количество символов в ключе 9>
            .ASCII /Символы ключа 9/

     Например, если в области ключей размещены байты:

                   0,0,0,2,101,12,0,0,0,0,0,0

запуск третьего ключа будет приводить к вводу буквы "A" и кода
возврата каретки.
     Назначение ключей по умолчанию описано в  соответствующем
приложении.

                  3.7. Стековая область ANDOS

     При работе ANDOS не использует основной стек, а пользуется
собственной стековой областью.  Так же,  как и системный буфер,
стековая область может использоваться программами пользователя,
однако необходимо принять во внимание ограничения,  описанные в
пункте 3.5.


Приложение 1.

         Контроллер дисковода.  Программный интерфейс.

                    1. Регистры контроллера


Регистр состояния: 177130


       ---T--T--T--T--T--T--T--T--T--T--T--T--T--T--T--м
       |15|14|13|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0|
       L--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+---

---T---------------------------T------------------------------м
|Р.|   Назначение по записи    |     Назначение по чтению     |
+--+---------------------------+------------------------------+
|0 | выбор накопителя 0        | признак "0 ДОРОЖКА"          |
|1 | выбор накопителя 1        | признак готовности (не исп.) |
|2 |                           | запрет (защита) записи       |
|3 |                           |                              |
|4 | включение двигателя       |                              |
|5 | выбор стороны (0-низ)     |                              |
|6 | напр. шага (0-от центра)  |                              |
|7 | шаг                       | готовность регистра данных   |
|8 | признак "НАЧАЛО ЧТЕНИЯ"   |                              |
|9 | признак "ЗАПИСЬ МАРКЕРА"  |                              |
|10| включение прекоррекции    |                              |
|11|                           |                              |
|12|                           |                              |
|13|                           |                              |
|14|                           |признак записи CRC на диск    |
|15|                           |признак "0 СЕКТОР"            |
L--+---------------------------+-------------------------------
     Разряды, назначение  которых  не  указано не используются.
Появление "1" в 7 разряде означает требование съема  информации
с регистра данных или записи в него новой информации.

Регистр данных: 177132


       ---T--T--T--T--T--T--T--T--T--T--T--T--T--T--T--м
       |15|14|13|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0|
       L--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+---
     Все разряды регистра доступны по записи и чтению.


            2. Программный интерфейс драйвера НГМД

     Драйвер НГМД размещен в  ПЗУ,  находящемся  в  контроллере
дисковода, и имеет насколько точек входа:

     ---------T----------------------------------------м
     | Адрес: |               Функция:                 |
     +--------+----------------------------------------+
     | 160000 | Автоматическая загрузка                |
     | 160002 | Загрузка с выбранного привода          |
     | 160004 | Чтение-запись по номеру блока          |
     | 160006 | Чтение запись по номеру сектора        |
     | 160010 | Инициализация рабочей области драйвера |
     | 160012 | Форматирование дорожки                 |
     L--------+-----------------------------------------

     Для работы драйвера необходима  область  ОЗУ  размером  66
байт для размещения параметров и рабочих ячеек.

                    Формат рабочей области:
---T--T------T-------------T----------------------------------м
|См|Дл|  Имя | Нач.значение|          Назначение              |
+--+--+------+-------------+----------------------------------+
|0 |2 |CSRW  |      0      |Копия по записи регистра состояния|
|2 |2 |CURTRK|      -      |Адрес текущей дорожки             |
|4 |4 |TRKTAB|177777,177777|Таблица текущих дорожек           |
|10|2 |TDOWN |    10000.   |Время опускания головки           |
|12|2 |TSTEP |    10000.   |Время перехода с дор. на дорожку  |
|14|1 |TRKCOR|     32.     |Номер дор. вкл. прекоррекции      |
|15|1 |BRETRY|     20.     |Число повторов при ошибках        |
|16|1 |FLAGS |      0      |Рабочая ячейка драйвера           |
|17|1 |FILLB |вх. параметр |Код заполнения при форматировании |
|20|2 |FLGPTR|      -      |Указатель на байт признаков       |
|22|4 |FLGTAB|      0      |Таблица признаков (см ниже)       |
|26|2 |ADDR  |вх. параметр |Адрес буфера ОЗУ                  |
|30|2 |WCNT  |вх. параметр |Число слов для пересылки          |
|32|1 |SIDE  |вх. параметр |Номер стороны диска               |
|33|1 |TRK   |вх. параметр |Номер дорожки                     |
|34|1 |UNIT  |вх. параметр |Номер привода                     |
|35|1 |SECTOR|вх. параметр |Номер сектора                     |
|36|22|      |      -      |Рабочие ячейки драйвера           |
|60|2 |MAXSEC|     10.     |Число секторов на дорожке         |
|62|2 |      |      -      |Рабочая ячейка драйвера           |
|64|2 |BYTSEC|     400     |Число байт в секторе              |
L--+--+------+-------------+-----------------------------------

     Таблица FLGTAB содержит по одному байту на  привод  и  ис-
пользуется  для обработки нестандартных дисков.  В каждом байте
используется три бита для указания параметров операции.
     Бит 0 - при установке в 1 драйвер производит пропуск доро-
жек при поиске,  т.е.  фактически обрабатываются только  четные
дорожки. Эта возможность используется для обработки на 80-доро-
жечном дисководе, дискет, размеченных на 40-дорожечном дисково-
де.
     Бит 1 - при установке в  1  драйвер  производит  обращение
только  к нижней стороне дискеты.  Эта возможность используется
при подключении дисководов, имеющих только одну головку, а так-
же  при  обработке  дискет,  записанных на таком дисководе,  на
двустороннем дисководе.
     Бит 2  - при равенстве 0 драйвер обрабатывает сектора дли-
ной 512. байт, иначе длиной 1024. байта (из-за ошибки, допущен-
ной в драйвере, данный режим не работает).

                 2.1. Автоматическая загрузка

Вызов:     CALL @#160000

     Производится попытка загрузить операционную систему с при-
вода 0.  Если попытка загрузки была неудачной, то драйвер пыта-
ется загрузить систему с 1 привода.
     Если обе попытки оказались неудачными,  драйвер возвращает
управление вызвавшей его программе командой "RTS PC".
     При загрузке  сначала  инициализируется  рабочая   область
драйвера с  адреса 2000,  затем считывается 1 сектор 0 дорожки,
начиная с адреса 1000.  При удачной загрузке  драйвер  передает
управление по адресу 1000,  при этом в R0 помещается номер при-
вода,  откуда произошла загрузка.  Неудачной загрузка считается
если  произошла ошибка чтения,  первое слово считанного сектора
отличается от 240 или второе слово равно 5 .

              2.2. Загрузка с выбранного привода

Вызов:     CALL @#160002
Параметры: R0 - Номер привода

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

              2.3. Чтение/запись по номеру блока

Вызов:     CALL @#160004
Параметры: R0 - номер блока на диске,
            R1 - длина пересылаемого массива данных,
            R2 - начальный адрес массива данных,
            R3 - базовый адрес рабочей области драйвера,
            Поле UNIT в рабочей области - номер привода.

     Блок является логической единицей  информации  на  внешних
носителях и равен 512 байтам.  В используемом формате записи на
диск размер блока совпадает с размером сектора.  Первый  сектор
нижней стороны нулевой дорожки соответствует блоку 0.  Вычисле-
ние номера сектора и дорожки по  номеру  блока  производится  с
учетом установленных признаков в таблице FLGTAB.
     Длина массива данных,  записанная в R1 задает число  слов,
подлежащих пересылке,  а также тип операции: если длина положи-
тельна - чтение, отрицательна - запись. При записи пересылаемое
число слов равно абсолютному значению длины. Если заданное чис-
ло слов превышает размер сектора, осуществляется автоматический
переход к следующему сектору, а если необходимо, то и на другую
сторону и дорожку. Если при записи число слов не кратно размеру
сектора, то остаток последнего сектора заполняется нулями.
     Перед самым первым вызовом  драйвера  поля  CSRW,  TRKTAB,
FLAGS в рабочей области должны быть заполнены значениями,  ука-
занными в таблице,  и не должны изменяться программой пользова-
теля.
     Поля TDOWN, TSTEP, TRKCOR, BRETRY, FLGTAB могут быть изме-
нены в зависимости от конкретных условий.
     Возврат из драйвера осуществляется командой RTS PC. Содер-
жимое регистров R0,  R1, R2, R4, R5 не сохраняется. При возник-
новении ошибки устанавливается бит "С",  и в байт 52 помещается
код ошибки:
   ----T--------------------------------------------------м
   |Код|                   Причина ошибки                 |
   +---+--------------------------------------------------+
   | 1 | При чтении - ошибка CRC в зоне данных            |
   |   | При записи - установлена защита записи           |
   | 2 | Ошибка CRC в зоне заголовка                      |
   | 3 | Нет позиционирования на нулевую дорожку          |
   | 4 | Ошибка позиционирования                          |
   | 5 | Не найден сектор                                 |
   | 6 | Нет диска или диск не вращается                  |
   | 7 | Прерывание по вектору 4 при операции             |
   | 8 | Не найден адресный маркер                        |
   | 9 | Не найден маркер данных                          |
   | 10| Недопустимые параметры команды или нестандартный |
   |   | формат диска                                     |
   L---+---------------------------------------------------
     Возникновение прерывания по  вектору  4  (нажатие  клавиши
СТОП) во время записи на диск может привести к появлению сбоя в
секторе,  в который осуществляется запись. Сбой может быть уст-
ранен при повторной записи в этот сектор.
     После завершения операции драйвер оставляет двигатель дис-
ковода включенным.  Для остановки двигателя программа пользова-
теля должна записать 0 по адресу 177130,  а также в ячейку CSRW
рабочей области.

        2.4. Чтение-запись по номеру сектора и дорожки

Вызов:     CALL @#160006
Параметры: R3 - адрес рабочей области
            ADDR - начальный адрес массива данных
            WCNT - длина массива данных
            SIDE - сторона (0-нижняя, 1-верхняя)
            TRK  - номер дорожки
            UNIT  - номер привода (0-1)
            SECTOR - номер сектора (1-10.)

     Действие аналогично чтению-записи логического блока.

              2.5. Инициализация рабочей области

Вызов:     CALL @#160010
Параметры: R3 - адрес рабочей области.

     Эта точка  входа является вспомогательной и служит для об-
легчения написания программ, использующих драйвер НГМД.

     Заполняются поля рабочей области:

                  ---------T----------------м
                  | CSRW   | 0              |
                  | TRKTAB | 177777, 177777 |
                  | TDOWN  | 10000.         |
                  | TSTEP  | 10000.         |
                  | TRKCOR | 32.            |
                  | BRETRY | 20.            |
                  | FLAGS  | 0              |
                  | FLGTAB | 0,0            |
                  | MAXSEC | 10.            |
                  L--------+-----------------

                  2.6. Форматирование дорожки

Вызов:     CALL @#160012
Параметры: R3 - базовый адрес рабочей области
           FILLB - код, которым будет заполнено поле данных
           при форматировании
           SIDE  - номер стороны,
           TRK   - номер дорожки,
           UNIT  - номер привода.

     Форматируется указанная дорожка с указанной стороны,  поле
данных всех секторов заполняется кодом FILLB


Приложение 2

                    Структура диска  ANDOS

                    1. Распределение диска

     Физически диск состоит из блоков (секторов),  имеющих раз-
мер 512. байт.
     Для размещения  файлов  используется  кластерная структура
диска (кластер - минимальное количество информации,  записывае-
мое на диск.  В ANDOS - 4000 байт).  Кластеры,  содержащие файл
могут располагаться в разных  участках  диска.  В  этом  случае
(когда  файл расположен в нескольких кластерах,  не идущих друг
за другом) файл называется фрагментированным.  Необходимо отме-
тить,  что  последующие  кластеры файла всегда располагаются на
диске дальше предыдущих. Таблица размещения файлов (FAT) связы-
вает кластеры одного файла в цепочку. Кластерная структура поз-
воляет оптимизировать процесс записи после удаления старых фай-
лов,  и позволяет отказаться от сжатия диска ("сборки мусора"),
которое необходимо в операционных системах  с  последовательной
записью файлов (RT-11, MicroDOS, NORTON-БК, NORD, MKDOS).
     Логичская структура диска соответствует стандарту операци-
онной  системы MS-DOS,  применяющейся на IBM-совместимых компь-
ютерах. Однако в отличие от MS-DOS, где размеры каталога, коли-
чество  и  размеры FAT,  а также количество секторов на кластер
могут изменяться, в ANDOS эти параметры жестко зафиксированы:

     -------------------T------------------------------м
     | Размер каталога: | 7 блоков (MAX 112 файлов)    |
     | Размер FAT:      | 1200 байт (MAX 424 кластера) |
     | Количество FAT:  | 2                            |
     | Размер кластера: | 4 блока                      |
     L------------------+-------------------------------

     Дисковое пространство в ANDOS распределяется следующим об-
разом:

              --------------T------------------м
              |Номера блоков|    Назначение    |
              +-------------+------------------+
              | 0           | Загрузчик        |
              | 1-2         | Первая копия FAT |
              | 3-4         | Вторая копия FAT |
              | 5-11.       | Каталог          |
              | 12.-15.     | 2 кластер        |
              | 16.-19.     | 3 кластер        |
              | 20.-23.     | 4 кластер        |

              .           . . .                .

              | 1596.-1599. | 398 кластер      |
              L-------------+-------------------

                     2. Формат загрузчика

     Загрузочный сектор (BOOT-сектор) включает в  себя  таблицу
параметров диска и собственно загрузчик.

                2.1. Формат таблицы параметров:

----T---T---------------T-------------------------------------м
|См.|Дл.|   Значение    | Назначение                          |
+---+---+---------------+-------------------------------------+
| 0 | 2 | ***           |Признак загружаемости дискеты        |
| 2 | 2 | ***           |Команда перехода на загрузчик        |
| 4 | 7 | ASCII/ANDOS  /|Название DOS (OEM ID)                |
| 13| 2 | 512.          |Число байт в секторе                 |
| 15| 1 | 4             |Количество блоков на кластер         |
| 16| 2 | 1             |Число блоков в загрузчике            |
| 20| 1 | 2             |Число FAT                            |
| 21| 2 | 112.          |Максимальное число файлов в каталоге |
| 23| 2 | ***           |Общее число блоков на диске          |
| 25| 1 | 371           |Media Discriptor (байт парам. диска) |
| 26| 2 | 2             |Число блоков в одной FAT             |
| 30| 2 | 10.           |Число секторов (блоков) на дорожке   |
| 32| 2 | ***           |Число головок                        |
| 34|15.| 0             |Не используются                      |
| 53|11.| 11 пробелов   |Метка тома                           |
| 66| 8.|ASCII/FAT12   /|Идентификатор файловой системы       |
| 76| 2 | 0             |Не используется                      |
L---+---+---------------+--------------------------------------
     Необходимо обратить внимание,  что многие словные перемен-
ные  располагаются в таблице по нечетным адресам (это связано с
тем, что в IBM нет принципиальной разницы при обращении к слову
по четному и нечетному адресу).
     Первые два слова таблицы  могут  принимать  два  различных
значения в зависимости от того, является ли диск загрузочным. В
случае если диск загрузочный - первое слово 240 (признак загру-
жаемости дискеты),  второе слово 436 (команда перехода на прог-
рамму загрузки BR BOOT). Если дискета незагружаемая (только та-
кие  дискеты могут обрабатываться на IBM в среде MS-DOS) первые
два слова - 753 и 20220 (псевдокоманды  перехода  на  загрузчик
IBM, проверяемые MS-DOS при обращении к диску).
     Общее число блоков на диске (смещение 23)  устанавливается
при  форматировании  и  зависит от числа дорожек на диске.  Для
80-дорожечного диска это число 1600.
     Число головок (смещение 32) устанавливается при форматиро-
вании и зависит от типа дисковода (односторонний или двусторон-
ний).

                        2.2. Загрузчик

     Загрузчик располагается в нулевом блоке, начиная со смеще-
ния 100. Работа загрузчика подробно описана в начале настоящего
руководства.


                      3. Формат каталога

     Длина элемента каталога равна 32.  байтам (в  одном  блоке
помещается  16.  элементов).  Элемент  каталога имеет следующий
формат (смещения десятичные):

-----T----T---------------------------------------------------м
|Смещ|Длин|                    Назначение                     |
+----+----+---------------------------------------------------+
| 0  | 8  | Имя файла. Первый элемент имени имеет специальное |
|    |    | назначение: 0 - Элемент никогда не использовался, |
|    |    | 345 - Файл удален. Любой другой  символ считается |
|    |    | первой буквой имени файла.                        |
| 8  | 3  | Расширение имени файла.                           |
| 11 | 1  | Атрибуты файла (в ANDOS обычно не используются)   |
| 12 | 8  | Зарезервированы                                   |
| 20 | 1  | Признак подкаталога и одновременно его номер      |
| 21 | 1  | Номер родительского подкаталога                   |
| 22 | 2  | Адрес файла/имя диска для ссылки (В MS-DOS время) |
| 24 | 2  | Дата создания файла                               |
| 26 | 2  | Номер начального кластера. Первый кластер в обла- |
|    |    | сти данных имеет номер 2.                         |
| 28 | 2  | Длина файла                                       |
| 30 | 2  | Расширение длины. (Для файлов > 64 Кбайт.)        |
L----+----+----------------------------------------------------
     Адрес файла в ANDOS хранится в поле времени MS-DOS. Хране-
ние адреса в зарезервированных ячейках элемента каталога  недо-
пустимо, т.к. MS-DOS при копировании очищает эти ячейки.
     Подкаталоги ANDOS представляют собой  фиктивные  записи  о
файле с нулевыми значениями адреса,  длины и стартового класте-
ра. В байте атрибута у них записана  константа  10,  являющаяся
для MS-DOS  меткой  диска (благодаря этому подкаталоги ANDOS не
показываются на IBM).
     Ссылки  отличаются от подкаталогов тем,  что у них в  поле
адреса содержится  байт  с именем  диска (в ASCII),  на который
происходит ссылка.

                       4. Структура FAT

     ANDOS использует таблицу размещения файлов (FAT)  для  вы-
числения номеров блоков по номеру кластера. Для каждого класте-
ра FAT содержит 12-битный (1.5 байта) элемент.  Первые два эле-
мента  FAT (три байта) соответствуют каталогу.  Первый байт со-
держит Media Discriptor (такой-же,  как и в таблице  параметров
диска - 371), второй и третий байты содержат код 377 .
     Элементы FAT начиная со второго (счет от 0)  соответствуют
области данных.
     Элемент FAT может содержать следующие значения:

      ------------T-----------------------------------м
      |   Код     |       Значение                    |
      +-----------+-----------------------------------+
      | 0         | Неиспользуемый кластер.           |
      | 7777      | Последний кластер файла           |
      | 7760-7766 | Зарезервированный кластер         |
      | 7767      | Плохой кластер                    |
      | XXX       | Любые другие  цифры означают, что |
      |           | кластер занят файлом  и указывают |
      |           | на следующий кластер файла. Номер |
      |           | первого кластера файла хранится в |
      |           | каталоге.                         |
      L-----------+------------------------------------

                  4.1. Правила распаковки FAT

     Для того, чтобы распаковать 12-битную ячейку FAT нужно ум-
ножить номер кластера на 1.5 (т.е.  на длину элемента FAT). Це-
лая часть произведения равна смещению в FAT,  по которому нахо-
дится  элемент,  соответствующий  данному кластеру.  Если номер
кластера четный - взять младшие 12. бит, иначе старшие 12. бит.
Для распаковки FAT рекомендуется применять подпрограммы ANDOS -
GETFAT и SETFAT.

                   4.2. Формирование цепочки

     Для того, чтобы найти по FAT цепочку кластеров какого-либо
файла, нужно взять из каталога (с помощью функции DIRFIN) номер
начального кластера файла,  затем распаковать  эту  ячейку  FAT
функцией GETFAT.  Если результат, полученный в R0 отличается от
7777, распаковать той же функцией следующую ячейку  цепочки.  И
так, пока не будет найдена последняя ячейка цепочки - код 7777.

       4.3. Преобразование номера кластера в номер блока

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


Приложение 3

                Назначение ключей по умолчанию

--T---------------------------------T-------------------------м
|N|       Содержимое ключа          |     Назначение ключа    |
+-+---------------------------------+-------------------------+
|0| M<12>RUNME<12>                  | Запуск описания         |
|1| M<12>ANFORM<12>                 | Запуск ANFORM           |
|2| S126500<12>                     | Перезапуск оболочки     |
|3|                                 |                         |
|4|                                 |                         |
|5|                                 |                         |
|6|                                 |                         |
|7|                                 |                         |
|8|                                 |                         |
|9| M<12>MASTER<12>                 | Восстановление MASTER'а |
L-+---------------------------------+--------------------------


                         5. Заключение

     Автор надеется, что информация приведенная в этом докумен-
те поможет Вам создавать программы,  работающие в среде ANDOS и
новые утилиты.
     Если Вы обнаружите какие-либо ошибки,  неточности, или от-
сутствие какой-либо важной информации - обращайтесь к автору по
телефону: (095)180-3002, Алексей.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""





27.11.92, 8.3.1993, 22.4.93, 28.8.93, 12.9.93, 11.6.94, 24.5.97

                                         (C) Алексей М. Надежин



--------------------
Живы будем - Не помрем !
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 16.4.2021, 0:22