Корвет/BDOS (Справочник функций)

Материал из Emuverse
Данный материал защищён авторскими правами!

Использование материала заявлено как добросовестное, исключительно для образовательных некоммерческих целей.

АННОТАЦИЯ
                В ДАННОМ ДОКУМЕНТЕ РАССМАТРИВАЕТСЯ СИСТЕМА УПРАВЛЕНИЯ ВВОД-
     ОМ/ВЫВОДОМ  (СУВВ) ОС CP/M, ЕЕ НАЗНАЧЕНИЕ, СТРУКТУРА И УСЛОВИЯ ПРИМЕН-
     ЕНИЯ. 
                СУВВ  ОС  CP/M  ИМЕET НАБОР ФУНКЦИЙ, ОБЕСПЕЧИВАЮЩИХ УДОБНЫЙ
     ДОСТУП К  ФАЙЛАМ НА ДИСКАХ И ПОЗВОЛЯЮЩИХ ВЫПОЛНЯТЬ РЯД СТАНДАРТНЫХ ДЕ-
     ЙСТВИЙ  ПРИ РА БОТЕ С ДРУГИМИ ПЕРИФЕРИЙНЫМИ УСТРОЙСТВАМИ. ПРИ РАБОТЕ С
     ДИСКАМИ ЗА ОСНОВУ  БЕРЕТСЯ ФАЙЛОВАЯ СТРУКТУРА И ДИНАМИЧЕСКОЕ РАСПРЕДЕ-
     ЛЕНИЕ  ДИСКОВОГО  ПРО  СТРАНСТВА  КАК  ПРИ ПОСЛЕДОВАТЕЛЬНОМ, ТАК И ПРИ
     ПРЯМОМ  МЕТОДЕ  ДОСТУПА.  ЭТА  ОРГАНИЗАЦИЯ ФАЙЛОВ ПОЗВОЛЯЕТ ХРАНИТЬ НА
     ДИСКАХ  БОЛЬШОЕ  КОЛИЧЕСТВО  ПРОГРАММ   В ИСХОДНОМ  ВИДЕ  И В МАШИННЫХ
     КОДАХ И СОХРАНЯЕТ ОДИНАКОВУЮ СТРУКТУРУ ДЛЯ  ВСЕХ ФАЙЛОВ В ОС CP/M. 
                ДОСТУП     ПРОГРАММ    ПОЛЬЗОВАТЕЛЯ    К ПРОЦЕДУРАМ    СУВВ
     ОСУЩЕСТВЛЯЕТСЯ ПОСРЕД СТВОМ ПЕРЕДАЧИ НОМЕРА ФУНКЦИИ И ПАРАМЕТРА (ПАРА-
     МЕТРОВ)  ЧЕРЕЗ  ЕДИНУЮ ТОЧКУ  ВХОДА. СУВВ ВЫПОЛНЯЕТ ЗАДАННУЮ ПРОЦЕДУРУ
     И ПЕРЕДАЕТ УПРАВЛЕНИЕ ПРОГРАММЕ  ПОЛЬЗОВАТЕЛЯ, ВОЗВРАЩАЯ РЕЗУЛЬТАТ ОП-
     ЕРАЦИИ. 
                В КОНЦЕ РУКОВОДСТВА ПРИВЕДЕНЫ ВОЗМОЖНЫЕ СООБЩЕНИЯ ОБ ОШИБК-
     АХ СУВВ. 
.page


                                        СОДЕРЖАНИЕ
     
     
     
        АННОТАЦИЯ............................................................... 2
     
        1.    НАЗНАЧЕНИЕ И УСЛОВИЯ ПРИМЕНЕНИЯ................................... 4
     
        2.    ХАРАКТЕРИСТИКИ СУВВ............................................... 5
     
        3.    ОБРАЩЕНИЕ К СУВВ. ВХОДНАЯ И ВЫХОДНАЯ ИНФОРМАЦИЯ................... 6
     
        4.    ФУНКЦИИ СУВВ ..................................................... 8
     
        4.1.  ФУНКЦИЯ 0: ПРОЦЕДУРА "ГОРЯЧИЙ СТАРТ".............................. 8
     
        4.2.  ФУНКЦИЯ 1: КОНСОЛЬНЫЙ ВВОД........................................ 8
     
        4.3.  ФУНКЦИЯ 2: ВЫВОД СИМВОЛА НА КОНСОЛЬ............................... 8
     
        4.4.  ФУНКЦИЯ 3: ВВОД СИМВОЛА С ЛОГИЧЕСКОГО УСТРОЙСТВА RDR ............. 9
     
        4.5.  ФУНКЦИЯ 4: ВЫВОД СИМВОЛА НА ЛОГИЧЕСКОЕ УСТРОЙСТВО PUN ............ 9
     
        4.6.  ФУНКЦИЯ 5: ВЫВОД СИМВОЛА НА ЛОГИЧЕСКОЕ УСТРОЙСТВО LST ............ 9
     
        4.7.  ФУНКЦИЯ 6: ВВОД/ВЫВОД СИМВОЛА С КОНСОЛИ БЕЗ ЭХА .................. 9
     
        4.8.  ФУНКЦИЯ 7: ПОЛУЧИТЬ БАЙТ НАЗНАЧЕНИЯ УСТРОЙСТВ (БНУ)...............10
     
        4.9.  ФУНКЦИЯ 8: УСТАНОВКА БАЙТА НАЗНАЧЕНИЯ УСТРОЙСТВ (БНУ).............10
     
        4.10. ФУНКЦИЯ 9: ВЫВОД СИМВОЛЬНОЙ СТРОКИ................................10
     
        4.11. ФУНКЦИЯ 10: ЧТЕНИЕ В КОНСОЛЬНЫЙ БУФЕР.............................11
     
        4.12. ФУНКЦИЯ 11: ОПРОС СТАТУСА КОНСОЛИ.................................12
     
        4.13. ФУНКЦИЯ 14: АКТИВИЗИРОВАТЬ ДИСК...................................12
     
        4.14. ФУНКЦИЯ 15: ОТКРЫТИЕ ФАЙЛА........................................12
     
        4.15. ФУНКЦИЯ 16: ЗАКРЫТИЕ ФАЙЛА........................................13
     
        4.16. ФУНКЦИЯ 17: ПОИСК ПЕРВОГО.........................................13
     
        4.17. ФУНКЦИЯ 18: ПОИСК СЛЕДУЮЩЕГО......................................14
     
        4.18. ФУНКЦИЯ 19: СТИРАНИЕ ФАЙЛА........................................14
     
        4.19. ФУНКЦИЯ 20: ПОСЛЕДОВАТЕЛЬНОЕ ЧТЕНИЕ...............................14
     
        4.20. ФУНКЦИЯ 21: ПОСЛЕДОВAТЕЛЬНАЯ ЗАПИСЬ...............................15
     
        4.21. ФУНКЦИЯ 22: СОЗДАНИЕ ФАЙЛА........................................15
     
        4.22. ФУНКЦИЯ 23: ПЕРЕИМЕНОВАНИЕ ФАЙЛА..................................16
     
        4.23. ФУНКЦИЯ 24: ПОЛУЧИТЬ ВЕКТОР УСТАНОВЛЕННЫХ ДИСКОВ..................16
     
        4.24. ФУНКЦИЯ 25: ПОЛУЧИТЬ НОМЕР АКТИВИЗИРОВАННОГО ДИСКА................16
     
        4.25. ФУНКЦИЯ 26: УСТАНОВИТЬ АДРЕС БУФЕРА ОБМЕНА........................17
     
        4.26. ФУНКЦИЯ 27: ПОЛУЧИТЬ АДРЕС ВЕКТОРА РАЗМЕЩЕНИЯ БЛОКОВ..............17
     
        4.27. ФУНКЦИЯ 28: ЗАПИСАТЬ КЛЮЧ ЗАЩИТЫ ДИСКА............................17
     
        4.28. ФУНКЦИЯ 29: ПОЛУЧИТЬ ВЕКТОР R/O ДЛЯ ДИСКОВ........................18
     
        4.29. ФУНКЦИЯ 30: УСТАНОВИТЬ ИНДИКАТОР ДОСТУПА ФАЙЛА....................18
     
        4.30. ФУНКЦИЯ 33: ПРЯМОЕ ЧТЕНИЕ.........................................18
     
        4.31. ФУНКЦИЯ 34: ПРЯМАЯ ЗАПИСЬ.........................................19
     
        4.32. ФУНКЦИЯ 35: ВЫЧИСЛИТЬ РАЗМЕР ФАЙЛА................................19
     
        4.33. ФУНКЦИЯ 36: УСТАНОВИТЬ НОМЕР ЗАПИСИ ДЛЯ ПРЯМОГО ДОСТУПА...........20
     
        4.34. ФУНКЦИЯ 40: ПРЯМАЯ ЗАПИСЬ С ЗАПОЛНЕНИЕМ НУЛЯМИ....................20
     
        5.    СТРУКТУРА ФАЙЛОВ В ОС CP/M........................................21
     
        5.1.  ФАЙЛОВАЯ ССЫЛКА...................................................21
     
        5.2.  БЛОК УПРАВЛЕНИЯ ФАЙЛОМ (БУФ)......................................22
     
        6.    СООБЩЕНИЯ ОБ ОШИБКАХ..............................................24
     
        ПЕРЕЧЕНЬ ССЫЛОЧНЫХ ДОКУМЕНТОВ...........................................25

.page

     
      1.       НАЗНАЧЕНИЕ И УСЛОВИЯ ПРИМЕНЕНИЯ
     
             СИСТЕМА  УПРАВЛЕНИЯ  ВВОДОМ/ВЫВОДОМ  (СУВВ) ЯВЛЯЕТСЯ ЧАСТЬЮ
     ОС   CP/M.   ОНА  ПРЕДОСТАВЛЯЕТ  В РАСПОРЯЖЕНИЕ  ПРОГРАММИСТА  НАБОР
     ФУНКЦИЙ, ПОЗВОЛЯЮЩИХ ВЫПОЛНЯТЬ РЯД СТАНДАРТНЫХ ДЕЙСТВИЙ ПРИ РАБОТЕ С
     ПЕРИФЕРИЙНЫМИ УСТРОЙСТВАМИ И  С ФАЙЛАМИ НА ДИСКАХ.
                ПРИ   ИСПОЛЬЗОВАНИИ  ФУНКЦИЙ  СУВВ  ОБЯЗАТЕЛЬНЫМ УСЛОВИЕМ
     ЯВЛЯЕТСЯ ЗНАНИЕ ДОКУМЕНТА [1], СОДЕРЖАЩЕГО РАЗъЯСНЕНИЕ ОСНОВНЫХ ПОНЯ-
     ТИЙ  И ОБЩЕЙ  ОРГАНИЗАЦИИ ОС CP/M, СПИСОК ПРИНЯТЫХ В ДОКУМЕНТАЦИИ ПО
     ОС CP/M СОКРАЩЕНИЙ И УСЛОВНЫХ ОБОЗНАЧЕНИЙ, А ТАКЖЕ ТАБЛИЦУ МНЕМОНИЧЕ-
     СКИХ  ОБОЗНАЧЕНИЙ,  КОДОВ И СПОСОБОВ ВВОДА УПРАВЛЯЮЩИХ И ГРАФИЧЕСКИХ
     СИМВОЛОВ С КОНСОЛИ. 
                СОСТАВ   ОБОРУДОВАНИЯ,   НЕОБХОДИМЫЙ   ДЛЯ   РАБОТЫ   СУВВ,
     СОВПАДАЕТ С КОНФИ ГУРАЦИЕЙ, ПРИВЕДЕННОЙ В [1].

.page

     
      2.       ХАРАКТЕРИСТИКИ СУВВ
     
                ЗАГРУЗКА  СУВВ  ОСУЩЕСТВЛЯЕТСЯ  ПРИ  НАЧАЛЬНОЙ  ЗАГРУЗКЕ ОС
     CP/M [2]. 
                ПОСЛЕ  НАЧАЛЬНОЙ  ЗАГРУЗКИ  ПАМЯТЬ  СМ CP/M ИМЕЕТ СЛЕДУЮЩУЮ
     СТРУКТУРУ: 
     
             0000H:  !-----------------------!
     
                     ! ОБЛАСТЬ СИСТЕМНЫХ     !
     
                     ! ПАРАМЕТРОВ (ОСП)      !
     
                     !-----------------------!
     
             0100H:  ! ОБЛАСТЬ ПРОГРАММ (ОП) !
     
                     !                       !
     
                     !-----------------------!
     
             АДРЕС1: ! ПРОЦЕССОР КОНСОЛЬНЫХ  !
     
                     ! КОМАНД (ПКК)          !
     
                     !-----------------------!
                                              _
     
             АДРЕС2: ! СИСТЕМА ЛОГИЧЕСКОГО   !
     
                     ! ВВОДА/ВЫВОДА (СЛВВ)   ! !  СИСТЕМА УПРАВЛЕНИЯ
     
                     !-----------------------! >  ВВОДОМ/ВЫВОДОМ
     
             АДРЕС3: ! СИСТЕМА ФИЗИЧЕСКОГО   ! !      (СУВВ);
     
                     ! ВВОДА/ВЫВОДА (СФВВ)   ! !
                                              _
     
                     !-----------------------!
     
     
            АДРЕС1 НАХОДИТСЯ В СЛОВЕ ПО АДРЕСУ 0001Н
            АДРЕС2 НАХОДИТСЯ В СЛОВЕ ПО АДРЕСУ 0006Н
            АДРЕС3 = АДРЕС2 - 0806Н
     
               СУВВ СОСТОИТ ИЗ ДВУХ ЧАСТЕЙ: СИСТЕМЫ ЛОГИЧЕСКОГО ВВОДА/ВЫВО-
     ДА  (СЛВВ)  И  СИСТЕМЫ ФИЗИЧЕСКОГО ВВОДА/ВЫВОДА (СФВВ). СЛВВ СОВМЕСТНО
     С  ПРОЦЕССОРОМ КОН СОЛЬНЫХ КОМАНД ПЕРЕЗАГРУЖАЕТСЯ В ОЗУ ПРИ ВЫПОЛНЕНИИ
     ПРОЦЕДУРЫ  "ГОРЯЧИЙ  СТАРТ". СФВВ ЗАГРУЖАЕТСЯ ПРИ ВЫПОЛНЕНИИ ПРОЦЕДУРЫ
     "НАЧАЛЬНАЯ ЗАГРУЗКА". 
                СЛВВ СОСТОИТ ИЗ ПРОЦЕДУР ОБМЕНА С ДИСКОМ И ДРУГИМИ ЛОГИЧЕС-
     КИМИ УСТ РОЙСТВАМИ И ЯВЛЯЕТСЯ  АППАРАТНО-НЕЗАВИСИМОЙ ЧАСТЬЮ СУВВ.
                ЛОГИЧЕСКИЕ  УСТРОЙСТВА  ИМЕЮТ  СЛЕДУЮЩИЕ  ИМЕНА:  CON, RDR,
     PUN, LST И ТАК  ДАЛЕЕ. 
                ПОЛЬЗОВАТЕЛЬ ДОЛЖЕН ПОМНИТЬ, ЧТО:
     
             - ВВОД/ВЫВОД НА ЛОГИЧЕСКОЕ УСТРОЙСТВО CON ЯВЛЯЕТСЯ ВВОДОМ/ВЫВОДОМ НА
               КОНСОЛЬ;
             - ВВОД С ЛОГИЧЕСКОГО УСТРОЙСТВА RDR ЯВЛЯЕТСЯ ВВОДОМ С ПЕРФОЛЕНТЫ;
             - ВЫВОД НА ЛОГИЧЕСКОЕ УСТРОЙСТВО PUN ЯВЛЯЕТСЯ ВЫВОДОМ НА ПЕРФОЛЕНТУ;
             - ВЫВОД НА ЛОГИЧЕСКОЕ УСТРОЙСТВО LST ЯВЛЯЕТСЯ ВЫВОДОМ НА ПЕЧАТЬ.

               СФВВ   ЗАВИСИТ   ОТ   КОНКРЕТНЫХ  АППАРАТНЫХ  СРЕДСТВ.  СФВВ
     СОДЕРЖИТ  ДРАЙВЕРЫ   РАБОТЫ  С ФИЗИЧЕСКИМИ УСТРОЙСТВАМИ И ОБЕСПЕЧИВАЕТ
     ВЫПОЛНЕНИЕ ПРОЦЕДУР "ГО РЯЧИЙ/ХОЛОДНЫЙ СТАРТ". 
               ОБЛАСТЬ  ПАМЯТИ,  ЗАНИМАЕМАЯ  СЛВВ,  МОЖЕТ БЫТЬ ИСПОЛЬЗОВАНА
     ПРОГРАММАМИ      ПОЛЬЗОВАТЕЛЯ,    НЕ    РАБОТАЮЩИМИ С ПЕРИФЕРИЙНЫМИ
     УСТРОЙСТВАМИ (ЧИСТО ПРОЦЕССОРНЫЕ ЗАДАЧИ). ПОДОБНЫЕ ПРОГРАММЫ В КОНЦЕ
     РАБОТЫ ДОЛЖНЫ ОБРАТИТЬСЯ К ПРОЦЕДУРЕ "ГОРЯЧИЙ СТАРТ" (ПЕРЕХОД К АДРЕ-
     СУ  0000Н),  В РЕЗУЛЬТАТЕ ЧЕГО С ДИСКА БУДУТ ВНОВЬ ЗАГРУЖЕНЫ ПКК И
     СЛВВ, И УПРАВЛЕНИЕ БУДЕТ ПЕРЕДАНО НА КОМАНДНЫЙ  УРОВЕНЬ ПКК.    .N 

.page
     
      3.       ОБРАЩЕНИЕ К СУВВ. ВХОДНАЯ И ВЫХОДНАЯ ИНФОРМАЦИЯ
     
                ДОСТУП К ПРОЦЕДУРАМ СУВВ ИЗ ПРОГРАММ ПОЛЬЗОВАТЕЛЯ ОСУЩЕСТВ-
     ЛЯЕТСЯ  С   ПОМОЩЬЮ  ПЕРЕДАЧИ НОМЕРА ФУНКЦИИ И ПАРАМЕТРОВ ЧЕРЕЗ ЕДИНУЮ
     ТОЧКУ  ВХОДА.  БЕЗУСЛОВНЫЙ ПЕРЕХОД НА ТОЧКУ ВХОДА СУВВ СТОИТ ПО АДРЕСУ
     0005H. 
                ПРИ ОБРАЩЕНИИ К СУВВ ИЗ ПРОГРАММЫ ПОЛЬЗОВАТЕЛЬ ДОЛЖЕН ПОДГ-
     ОТОВИТЬ  СЛЕДУЮЩУЮ ИНФОРМАЦИЮ:
     
             - НОМЕР ФУНКЦИИ СУВВ В РЕГИСТРЕ С;
             - ПАРАМЕТРЫ ЗАДАННОЙ ФУНКЦИИ В ПАРЕ РЕГИСТРОВ DE ПРИ ПЕРЕДАЧЕ АДРЕСА
               ИЛИ В РЕГИСТРЕ Е ПРИ ПЕРЕДАЧЕ ОДНОБАЙТНОГО  ПАРАМЕТРА.
     
                ПРИ ВОЗВРАТЕ В ПРОГРАММУ  ПОЛЬЗОВАТЕЛЯ   ОДНОБАЙТНЫЙ
     РЕЗУЛЬТАТ  ВОЗВРА  ЩАЕТСЯ В РЕГИСТРЕ A, ДВУХБАЙТНЫЙ РЕЗУЛЬТАТ - В ПАРЕ
     РЕГИСТРОВ HL. 
            КРОМЕ  ТОГО НА ВЫХОДЕ ИЗ СУВВ СОДЕРЖИМОЕ РЕГИСТРОВ A И L, А
     ТАКЖЕ РЕ ГИСТРОВ В И H СОВПАДАЕТ. 
            ПЕРЕЧЕНЬ  ФУНКЦИЙ  СУВВ С УКАЗАНИЕМ  ИХ НОМЕРОВ ПРИВЕДЕН
     НИЖЕ: 
     
             НОМЕР ФУНКЦИИ          НАЗНАЧЕНИЕ
     
                  0                 "ГОРЯЧИЙ СТАРТ" (ПЕРЕЗАГРУЗКА ПКК И СЛВВ)
                  1                 ВВОД СИМВОЛА С КОНСОЛИ
                  2                 ВЫВОД СИМВОЛА НА КОНСОЛЬ
                  3                 ВВОД СИМВОЛА С ЛОГИЧЕСКОГО УСТРОЙСТВА RDR
                  4                 ВЫВОД СИМВОЛА НА ЛОГИЧЕСКОЕ УСТРОЙСТВО PUN
                  5                 ВЫВОД СИМВОЛА НА ЛОГИЧЕСКОЕ УСТРОЙСТВО LST
                  6                 ПРЯМОЙ ВВОД/ВЫВОД СИМВОЛА С КОНСОЛИ
                  7                 ПОЛУЧИТЬ БАЙТ НАЗНАЧЕНИЯ УСТРОЙСТВ (БНУ)
                  8                 УСТАНОВИТЬ БАЙТ НАЗНАЧЕНИЯ УСТРОЙСТВ (БНУ)
                  9                 ВЫВОД СТРОКИ СИМВОЛОВ
                 10                 ЧТЕНИЕ КОНСОЛЬНОГО БУФЕРА
                 11                 ОПРОС СТАТУСА КОНСОЛИ
                 14                 АКТИВИЗАЦИЯ ДИСКА
                 15                 ОТКРЫТИЕ ФАЙЛА
                 16                 ЗАКРЫТИЕ ФАЙЛА
                 17                 ПОИСК ПЕРВОГО
                 18                 ПОИСК СЛЕДУЮЩЕГО
                 19                 СТИРАНИЕ ФАЙЛА
                 20                 ПОСЛЕДОВАТЕЛЬНОЕ ЧТЕНИЕ
                 21                 ПОСЛЕДОВАТЕЛЬНАЯ ЗАПИСЬ
                 22                 СОЗДАНИЕ ФАЙЛА
                 23                 ПЕРЕИМЕНОВАНИЕ ФАЙЛА
                 24                 ПОЛУЧИТЬ ВЕКТОР УСТАНОВЛЕННЫХ ДИСКОВ
                 25                 ПОЛУЧИТЬ НОМЕР АКТИВИЗИРОВАННОГО ДИСКА
                 26                 УСТАНОВИТЬ АДРЕС БУФЕРА ОБМЕНА
                 28                 ЗАПИСАТЬ КЛЮЧ ЗАЩИТЫ ДИСКА
                 29                 ПОЛУЧИТЬ ВЕКТОР R/O ДЛЯ ДИСКОВ
                 30                 УСТАНОВИТЬ ИНДИКАТОР ДОСТУПА ФАЙЛА
                 33                 ПРЯМОЕ ЧТЕНИЕ
                 34                 ПРЯМАЯ ЗАПИСЬ
                 35                 ВЫЧИСЛИТЬ РАЗМЕР ФАЙЛА
                 36                 УСТАНОВИТЬ НОМЕР ЗАПИСИ ДЛЯ ПРЯМОГО ДОСТУПА
                 40                 ПРЯМАЯ ЗАПИСЬ НА ОБНУЛЕННЫЙ БЛОК
     
               ФУНКЦИИ С НОМЕРАМИ 12, 13, 24, 27, 31, 32, 37, 38, 39 И БОЛ-
     ЬШЕ 40 НЕ  ИСПОЛЬЗУЮТСЯ. ПРИ ОБРАЩЕНИИ К ФУНКЦИЯМ С ПЕРЕЧИСЛЕННЫМИ НО-
     МЕРАМИ УПРАВЛЕНИЕ ПЕРЕДАЕТСЯ В ПРОГРАММУ ПОЛЬЗОВАТЕЛЯ, СОСТОЯНИЕ РЕГ-
     ИСТРОВ НЕ ОПРЕДЕЛЕНО.

.page
     
      4.       ФУНКЦИИ СУВВ
     
                ДАЛЕЕ  ПРИВОДИТСЯ  ОПИСАНИЕ  ДОСТУПНЫХ ПОЛЬЗОВАТЕЛЮ ФУНКЦИЙ
     СУВВ.  ПОЛЬЗОВАТЕЛЮ ДОСТУПЕН ТОЛЬКО ЛОГИЧЕСКИЙ УРОВЕНЬ ВВОДА/ВЫВОДА,
     ТО ЕСТЬ ФУНКЦИИ  СЛВВ.
                 ОПЕРАЦИИ  ВВОДА/ВЫВОДА  ОСУЩЕСТВЛЯЮТСЯ ЧЕРЕЗ БУФЕР ОБМЕНА.
     СИСТЕМНЫЙ  БУФЕР  ОБМЕНА (СБО) РАСПОЛОЖЕН ПО АДРЕСУ 0080Н. ЭТОТ АДРЕС
     МОЖЕТ   БЫТЬ    ИЗМЕНЕН  ФУНКЦИЕЙ  "УСТАНОВИТЬ  АДРЕС  БУФЕРА  ОБМЕНА"
     (ФУНКЦИЯ 26). 
               ВСЕ  ОПЕРАЦИИ  С КАТАЛОГОМ ВЫПОЛНЯЮТСЯ В РЕЗЕРВНОЙ ОБЛАСТИ И
     ТАКИМ ОБРА ЗОМ НЕ ОКАЗЫВАЮТ ВЛИЯНИЯ НА БУФЕР ОБМЕНА ЗА ИСКЛЮЧЕНИЕМ ФУ-
     НКЦИИ "ПОИСК  ПЕРВОГО" И "ПОИСК СЛЕДУЮЩЕГО".   
     
      4. 1.    ФУНКЦИЯ 0: ПРОЦЕДУРА "ГОРЯЧИЙ СТАРТ"
     

             ВХОДНЫЕ ПАРАМЕТРЫ:
     
                     РЕГИСТР С: 00Н

                ПРОЦЕДУРА "ГОРЯЧИЙ СТАРТ" ЗАГРУЖАЕТ В ОЗУ ПКК И СЛВВ И ПЕР-
     ЕДАЕТ  УПРАВЛЕНИЕ ОПЕРАЦИОННОЙ СИСТЕМЕ ОС CP/M НА УРОВЕНЬ ПКК. ПКК АК-
     ТИВИЗИРУЕТ   ДИСК  А.  ДЕЙСТВИЕ ЭТОЙ ФУНКЦИИ ЭКВИВАЛЕНТНО БЕЗУСЛОВНОМУ
     ПЕРЕХОДУ ПО АДРЕСУ  0000H.   
     
      4. 2.    ФУНКЦИЯ 1: КОНСОЛЬНЫЙ ВВОД
     
     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
                     РЕГИСТР С: 01H
     
             ВЫХОДНЫЕ ПАРАМЕТРЫ:
     
                     РЕГИСТР А: КОД СИМВОЛА
     
              ФУНКЦИЯ ВВОДИТ С КОНСОЛИ СИМВОЛ В РЕГИСТР А. ПЕЧАТНЫЕ СИМВ-
     ОЛЫ И СИМВОЛЫ CR, LF, BSP ВВОДЯТСЯ С ЭХОМ НА ЭКРАН. ВВОД УПРАВЛЯЮЩЕ-
     ГО СИМВОЛА  ^I  ПЕРЕМЕЩАЕТ КУРСОР НА 8 ПОЗИЦИЙ ВПРАВО. ОСУЩЕСТВЛЯЕТСЯ
     ПРОВЕРКА НА ЗАДАНИЕ/СНЯТИЕ РЕЖИМА ПАРАЛЛЕЛЬНОЙ ПЕЧАТИ (УПРАВЛЯЮЩИЙ
     СИМВОЛ  ^P) И ПРИОСТАНОВ/ЗАПУСК ВЫВОДА ПРОТОКОЛА (УПРАВЛЯЮЩИЙ СИМВОЛ
     ^S). ПОКА СИМВОЛ НЕ БУДЕТ ВВЕДЕН С КОНСОЛИ СУВВ НЕ ВОЗВРАЩАЕТ УПРАВЛ-
     ЕНИЯ В ВЫЗЫВАЮЩУЮ ПРОГРАММУ.    

      4. 3.    ФУНКЦИЯ 2: ВЫВОД СИМВОЛА НА КОНСОЛЬ
     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
                         РЕГИСТР С: 02Н
     
                         РЕГИСТР Е: КОД ВЫВОДИМОГО СИМВОЛА
     
                ЗАДАННЫЙ  СИМВОЛ  ВЫВОДИТСЯ  НА КОНСОЛЬ. АНАЛОГИЧНО ФУНКЦИИ
     "КОНСОЛЬНЫЙ   ВВОД"  ОСУЩЕСТВЛЯЕТСЯ ОБРАБОТКА УПРАВЛЯЮЩИХ СИМВОЛОВ ^I,
     ^S И ^P.    
     
      4. 4.    ФУНКЦИЯ 3: ВВОД СИМВОЛА С ЛОГИЧЕСКОГО УСТРОЙСТВА RDR
     
     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
                     РЕГИСТР С: 03Н
     
             ВЫХОДНЫЕ ПАРАМЕТРЫ:
     
                     РЕГИСТР A: КОД ВВЕДЕННОГО СИМВОЛА
     
                ФУНКЦИЯ ВВОДИТ СИМВОЛ С ЛОГИЧЕСКОГО УСТРИЙСТВА RDR И ПОМЕЩ-
     АЕТ ЕГО КОД  В РЕГИСТР A. ЛИШЬ ПОСЛЕ ЭТОГО УПРАВЛЕНИЕ ПЕРЕДАЕТСЯ В ВЫ-
     ЗЫВАЮЩУЮ ПРОГРАММУ.
     
      4. 5.    ФУНКЦИЯ 4: ВЫВОД СИМВОЛА НА ЛОГИЧЕСКОЕ УСТРОЙСТВО PUN

     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
                     РЕГИСТР C: 04H
     
                     РЕГИСТР E: КОД ВЫВОДИМОГО СИМВОЛА
     
                ЭТА ФУНКЦИЯ ВЫВОДИТ СИМВОЛ, КОД КОТОРОГО НАХОДИТСЯ В РЕГИС-
     ТРЕ E НА  ЛОГИЧЕСКОЕ УСТРОЙСТВО PUN.  
     
      4. 6.    ФУНКЦИЯ 5: ВЫВОД СИМВОЛА НА ЛОГИЧЕСКОЕ УСТРОЙСТВО LST
     
     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
                     РЕГИСТР C: 05H
     
                     РЕГИСТР E: КОД ВЫВОДИМОГО СИМВОЛА
     
                 ЭТА ФУНКЦИЯ ВЫВОДИТ СИМВОЛ, КОД КОТОРОГО ЗАДАЕТСЯ В РЕГИС-
     ТРЕ Е, НА  LST.   
     
      4. 7.    ФУНКЦИЯ 6: ВВОД/ВЫВОД СИМВОЛА С КОНСОЛИ БЕЗ ЭХА
     
     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
                     РЕГИСТР C: 06H
     
                     РЕГИСТР E: 0FFH ИЛИ 0FEH          - ПРИ ВВОДЕ
     
                                КОД ВЫВОДИМОГО СИМВОЛА - ПРИ ВЫВОДЕ
     
     
             ВЫХОДНЫЕ ПАРАМЕТРЫ:
     
     
     
                ЕСЛИ  В РЕГИСТРЕ  Е ЗАДАНО  0FFH  (ВВОД  СИМВОЛА  БЕЗ ЭХА /
     ОПРОС СТАТУСА),  ТО В РЕГИСТРЕ А ВОЗВРАЩAЕТСЯ:
     
             - 0, ЕСЛИ КОНСОЛЬ НЕ ГОТОВА К ВВОДУ СИМВОЛА;
     
             - ВВЕДЕННЫЙ СИМВОЛ, В СЛУЧАЕ ГОТОВНОСТИ КОНСОЛИ.
     
                ЕСЛИ  В РЕГИСТРЕ Е ЗАДАНО 0FEH (ТОЛЬКО ОПРОС СТАТУСА), ТО В
     РЕГИСТРЕ А  ВОЗВРАЩАЕТСЯ:
     
             - 0, ЕСЛИ КОНСОЛЬ НЕ ГОТОВА;
     
             - НЕНУЛЕВОЕ ЗНАЧЕНИЕ ПРИ ГОТОВНОСТИ КОНСОЛИ.
     
                ЕСЛИ  В РЕГИСТРЕ  Е ЗАДАН  КОД,  ОТЛИЧНЫЙ ОТ 0FEH ИЛИ 0FFH,
     ПРЕДПОЛАГАЕТСЯ, ЧТО ЭТО КОД ВЫВОДИМОГО СИМВОЛА.
                ПРИ ИСПОЛЬЗОВАНИИ ДАННОЙ ФУНКЦИИ НИКАКИХ ДЕЙСТВИЙ ПО РЕДАК-
     ТИРОВАНИЮ  ПРИ ВВОДЕ СООТВЕТСТВУЮЩИХ УПРАВЛЯЮЩИХ СИМВОЛОВ НЕ ПРОИЗВОД-
     ИТСЯ (СРАВНИТЕ С ФУНКЦИЕЙ 10).

      4. 8.    ФУНКЦИЯ 7: ПОЛУЧИТЬ БАЙТ НАЗНАЧЕНИЯ УСТРОЙСТВ (БНУ)
     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
                     РЕГИСТР C: 07H
     
             ВЫХОДНЫЕ ПАРАМЕТРЫ:
     
                     РЕГИСТР A: ЗНАЧЕНИЕ БНУ
     
                 ЭТА  ФУНКЦИЯ  ВОЗВРАЩАЕТ ТЕКУЩЕЕ ЗНАЧЕНИЕ БНУ В РЕГИСТРЕ A
     [1].    
     
      4. 9.    ФУНКЦИЯ 8: УСТАНОВКА БАЙТА НАЗНАЧЕНИЯ УСТРОЙСТВ (БНУ)
     
     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
                     РЕГИСТР C: 08H
     
                     РЕГИСТР Е: НОВОЕ ЗНАЧЕНИЕ БНУ
     
                ЭТА ФУНКЦИЯ МЕНЯЕТ СИСТЕМНОЕ ЗНАЧЕНИЕ БНУ НА ЗНАЧЕНИЕ, ЗАД-
     АННОЕ В  РЕГИСТРЕ E.   
     
      4.10.    ФУНКЦИЯ 9: ВЫВОД СИМВОЛЬНОЙ СТРОКИ
     
     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
                     РЕГИСТР C:   09H
     
                     РЕГИСТРЫ DE: АДРЕС ВЫВОДИМОЙ СТРОКИ
     
                ЭТА   ФУНКЦИЯ   ВЫВОДИТ   НА   КОНСОЛЬ  СИМВОЛЬНУЮ  СТРОКУ,
     НАХОДЯЩУЮСЯ  ПО  АДРЕСУ, УКАЗАННОМУ В DE. СТРОКА ДОЛЖНА ЗАКАНЧИВАТЬСЯ
     СИМВОЛОМ  $,  КОТОРЫЙ  САМ  НЕ  ВЫВОДИТСЯ, А ЯВЛЯЕТСЯ ПРИЗНАКОМ КОНЦА
     СТРОКИ. ПРИ ВЫПОЛНЕНИИ ЭТОЙ ФУНКЦИИ ОСУЩЕСТВЛЯЕТСЯ ПРОВЕРКА НА УПРАВ-
     ЛЯЮЩИЕ СИМВОЛЫ ^S,^P,^I.   
     
      4.11.    ФУНКЦИЯ 10: ЧТЕНИЕ В КОНСОЛЬНЫЙ БУФЕР
     
     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
                     РЕГИСТР C:  0AH
     
                     РЕГИСТР DE: АДРЕС БУФЕРА
     
             ВЫХОДНЫЕ ПАРАМЕТРЫ:
     
                     ВВЕДЕННЫЕ СИМВОЛЫ В КОНСОЛЬНОМ БУФЕРЕ
     
            ЭТА ФУНКЦИЯ  ЧИТАЕТ НАБИРАЕМУЮ НА КОНСОЛИ
     ПОСЛЕДОВАТЕЛЬНОСТЬ СИМВОЛОВ (СТРОКУ) В БУФЕР ПО АДРЕСУ, УКАЗАННОМУ В
     РЕГИСТРАХ DE.
                БУФЕР ДЛЯ ЧТЕНИЯ ИМЕЕТ СЛЕДУЮЩИЙ ФОРМАТ: 
             DE:
     
              !--!--!--!--!--!----------------------------!--!--
              !MX!NC!C1!C2!C3!    .   .   .      .   .    !??!
              !--!--!--!--!--!----------------------------!--!--
     
     
             ГДЕ
     
             "MX"        - МАКСИМАЛЬНОЕ ЧИСЛО СИМВОЛОВ, КОТОРЫЕ МОГУТ БЫТЬ ВВЕДЕНЫ
                           В ДАННЫЙ БУФЕР, ЗАДАЕТСЯ ПОЛЬЗОВАТЕЛЕМ (ОТ 1 ДО 255);
             "NC"        - ЧИСЛО ПРОЧИТАННЫХ СИМВОЛОВ, ОПРЕДЕЛЯЕТСЯ ФУНКЦИЕЙ 10;
             С1, С2, ... - СИМВОЛЫ, ПРОЧИТАННЫЕ С КОНСОЛИ. СИМВОЛЫ "???"... ИЗО-

     
             ВЫХОД ИЗ ФУНКЦИИ ПРОИСХОДИТ:
     
             - ПРИ ВВОДЕ УПРАВЛЯЮЩЕГО СИМВОЛА CR ИЛИ LF;
             - ПРИ ВВОДЕ МАКСИМАЛЬНОГО ЧИСЛА СИМВОЛОВ.
     
                В  ПРОЦЕССЕ  ЧТЕНИЯ  НАБИРАЕМОЙ  СТРОКИ  СОДЕРЖИМОЕ  БУФЕРА
     МОЖЕТ   БЫТЬ   ОТ  РЕДАКТИРОВАНО  ПУТЕМ  ВВОДА  СЛЕДУЮЩИХ  УПРАВЛЯЮЩИХ
     СИМВОЛОВ: 
             ^C     - ВЫЗОВ ПРОЦЕДУРЫ "ГОРЯЧИЙ СТАРТ"(ЕСЛИ ^С В НАЧАЛЕ СТРОКИ);
             ^E     - ВВОД СЛЕДУЮЩЕГО СИМВОЛА С НОВОЙ СТРОКИ (CR LF);
             ^J     - ВЛЕЧЕТ ВЫХОД ИЗ ФУНКЦИИ (CR);
             ^M     - ВЛЕЧЕТ ВЫХОД ИЗ ФУНКЦИИ (LF);
             ^P     - УСТАНОВКА/СНЯТИЕ РЕЖИМА ПАРАЛЛЕЛЬНОЙ ПЕЧАТИ;
             ^R     - ВЫВОД ТЕКУЩЕГО ОТРЕДАКТИРОВАННОГО СОДЕРЖИМОГО КОНСОЛЬНОГО
                      БУФЕРА;
             ^U     - СТИРАНИЕ КОНСОЛЬНОГО БУФЕРА И ПЕРЕВОД СТРОКИ НА ЭКРАНЕ
                      (СТЕРТЫЕ СИМВОЛЫ СОХРАНЯЮТСЯ НА ЭКРАНЕ);
             DEL    - СТИРАНИЕ ОДНОГО СИМВОЛА ИЗ КОНСОЛЬНОГО БУФЕРА И ДУБЛИРОВАНИЕ
                      ЕГО НА ЭКРАНЕ;
             ^X     - СТИРАНИЕ КОНСОЛЬНОГО БУФЕРА И ВВЕДЕННОЙ СТРОКИ НА ЭКРАНЕ И
                      ВОЗВРАТ КУРСОРА В ТУ ПОЗИЦИЮ СТРОКИ, В КОТОРОЙ БЫЛ ОКОНЧЕН
                      ЗАПРОС НА ВВОД КОНСОЛЬНОГО БУФЕРА.
     

     
      4.12.    ФУНКЦИЯ 11: ОПРОС СТАТУСА КОНСОЛИ.
     
     
           ВХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР C: 0BH
     
     
           ВЫХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР A: СТАТУС КОНСОЛИ
     
             ФУНКЦИЯ  ОПРОСА СТАТУСА КОНСОЛИ ПОЗВОЛЯЕТ ПРОВЕРИТЬ ФАКТ
     ВВОДА СИМВОЛА С КОНСОЛИ. ЕСЛИ СИМВОЛ ВВЕДЕН, В РЕГИСТРЕ  A
     ВОЗВРАЩАЕТСЯ  ЗНАЧЕНИЕ  01Н.  В ПРОТИВНОМ СЛУЧАЕ ВОЗВРАЩАЕТСЯ ЗНАЧЕНИЕ
     00H.  
                В   ПП.  4.13-4.34  ОПИСАНЫ  ФУНКЦИИ  СУВВ,  ОСУЩЕСТВЛЯЮЩИЕ
     ДОСТУП К ФАЙЛАМ   НА ДИСКАХ. ОПИСАНИЯ СТРУКТУРЫ ДИСКОВ, КАТАЛОГА, ФАЙ-
     ЛОВ, БЛОКА УПРАВЛЕНИЯ  ФАЙЛОМ (БУФ), ФАЙЛОВОЙ ССЫЛКИ, СИСТЕМНОГО БУФЕ-
     РА ОБМЕНА (СБО) ПРИВЕДЕНЫ В  РАЗДЕЛЕ 5.  
     
      4.13.    ФУНКЦИЯ 14: АКТИВИЗИРОВАТЬ ДИСК

     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР C: 0EH
     
                        РЕГИСТР E: НОМЕР ДИСКА

                ЭТА ФУНКЦИЯ АКТИВИЗИРУЕТ ДИСК С ЗАДАННЫМ НОМЕРОМ. НОМЕР ДИ-
     СКА ЗАДАЕТ СЯ В РЕГИСТРЕ Е. Е=00 СООТВЕТСТВУЕТ ДИСКУ А, Е=01 - В. 
                ПОСЛЕ АКТИВИЗАЦИИ ДИСК СЧИТАЕТСЯ УСТАНОВЛЕННЫМ ДО СЛЕДУЮЩЕ-
     ГО  "ХОЛОДНОГО/ГОРЯЧЕГО  СТАРТА". ДАЛЬНЕЙШИЕ ФАЙЛОВЫЕ ОПЕРАЦИИ БУДУТ
     ПРОИЗВОДИТЬСЯ  С   АКТИВИЗИРОВАННЫМ  ДИСКОМ,  ЕСЛИ НОМЕР ДИСКА В БУФ
     РАВЕН НУЛЮ. НОМЕРА ДИСКОВ  1 И 2 В БУФ ССЫЛАЮТСЯ СООТВЕТСТВЕННО НА ДИ-
     СКИ А ИЛИ В. 
                ЕСЛИ  УСТАНОВЛЕННЫЙ  ДИСК  ЗАМЕНЯЕТСЯ В ПРОЦЕССЕ РАБОТЫ, ТО
     ДИСК АВТОМАТИЧЕСКИ ПЕРЕВОДИТСЯ В РЕЖИМ R/O (ТОЛЬКО ЧТЕНИЕ).
     
      4.14.    ФУНКЦИЯ 15: ОТКРЫТИЕ ФАЙЛА
     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР C: 0FH
     
                        РЕГИСТР DE: АДРЕС БУФ
     
     
             ВЫХОДНЫЕ ЗНАЧЕНИЯ:
     
     
                        РЕГИСТР A: ИНДЕКС ОПИСАТЕЛЯ
     
                ФУНКЦИЯ ИСПОЛЬЗУЕТСЯ ДЛЯ ЗАПИСИ В БУФ ИНФОРМАЦИИ О РАЗМЕЩЕ-
     НИИ  ЗАДАН НОГО ФАЙЛА. ПЕРЕД ОБРАЩЕНИЕМ ПРОГРАММИСТ ДОЛЖЕН ЗАПОЛНИТЬ С
     0  ПО  12  БАЙТ   БУФ,  ТО  ЕСТЬ ЗАДАТЬ НОМЕР ДИСКА, ИМЯ И ТИП ФАЙЛА И
     НОМЕР ОТКРЫВАЕМОГО ЭКСТЕНТА (ОБЫЧНО ОТКРЫВАЕТСЯ НУЛЕВОЙ ЭКСТЕНТ). ОП-
     ИСАТЕЛИ В КАТАЛОГЕ ДИСКА  ПРОСМАТРИВАЮТСЯ НА СОВПАДЕНИЕ С 1-12 ПОЗИЦИ-
     ЯМИ БУФ, АДРЕС КОТОРОГО УКАЗАН  В РЕГИСТРЕ DE.
                ЕСЛИ НАЙДЕН СОВПАДАЮЩИЙ ОПИСАТЕЛЬ, ТО ИНФОРМАЦИЯ О РАЗМЕЩЕ-
     НИИ  ЭКСТЕНТА  ФАЙЛА КОПИРУЕТСЯ ИЗ ОПИСАТЕЛЯ В СООТВЕТСТВУЮЩИЕ БАЙТЫ
     БУФ И В РЕГИСТРЕ  А ВОЗВРАЩАЕТСЯ ИНДЕКС НАЙДЕННОГО ОПИСАТЕЛЯ. 
                ЕСЛИ СОВПАДАЮЩИЙ ОПИСАТЕЛЬ НЕ НАЙДЕН, ТО В РЕГИСТРЕ А ВОЗВ-
     РАЩАЕТСЯ  FFH. 
                ТАКИМ  ОБРАЗОМ  ОТКРЫТИЕ  ФАЙЛА  ОБЕСПЕЧИВАЕТ ДОСТУП К НЕМУ
     ДЛЯ ВСЕХ  ОПЕРАЦИЙ. 
                ПРИ ПОСЛЕДОВАТЕЛЬНОМ ОБРАЩЕНИИ К ФАЙЛУ, ПОЛЕ ТЕКУЩЕГО НОМЕ-
     РА ЗАПИСИ  (БАЙТ 32 БУФ) ДОЛЖНО СОДЕРЖАТЬ 0.   
     
      4.15.    ФУНКЦИЯ 16: ЗАКРЫТИЕ ФАЙЛА
     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР C : 10H
     
                        РЕГИСТР DE: АДРЕСС БУФ
     
     
             ВЫХОДНЫЕ ЗНАЧЕНИЯ:
     
     
                        РЕГИСТР A: ИНДЕКС ОПИСАТЕЛЯ
     
                ФУНКЦИЯ ОСУЩЕСТВЛЯЕТ ЗАПИСЬ ТЕКУЩЕЙ ИНФОРМАЦИИ ИЗ БУФ В СО-
     ОТВЕТСТВУЮЩИЙ ОПИСАТЕЛЬ ФАЙЛА В КАТАЛОГЕ ДИСКА. ПРИ УСПЕШНОМ ЗАВЕРШЕ-
     НИИ ОПЕРАЦИИ В  РЕГИСТРЕ А ВОЗВРАЩАЕТСЯ ИНДЕКС ОПИСАТЕЛЯ В ЗАПИСИ КАТ-
     АЛОГА. В ПРОТИВНОМ  СЛУЧАЕ В РЕГИСТРЕ А ВОЗВРАЩАЕТСЯ FFH. 
                ПРИ ИСПОЛЬЗОВАНИИ ТОЛЬКО ЧTЕНИЯ ЗАКРЫВАТЬ ФАЙЛ НЕОБЯЗАТЕЛЬ-
     НО.   ЕСЛИ   ИСПОЛЬЗОВАЛАСЬ  ОПЕРАЦИЯ  ЗАПИСИ  В ФАЙЛ, ТО  ВЫПОЛНЕНИЕ
     ФУНКЦИИ "ЗАКРЫТИЕ  ФАЙЛА" ОБЯЗАТЕЛЬНО ДЛЯ ЗАНЕСЕНИЯ ПОЛНОЙ ИНФОРМАЦИИ
     О ФАЙЛЕ В КАТАЛОГ ДИСКА.
     
      4.16.    ФУНКЦИЯ 17: ПОИСК ПЕРВОГО
     
     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР C: 11H
     
                        РЕГИСТР DE: АДРЕС БУФ
     
     
             ВЫХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР A: ИНДЕКС ОПИСАТЕЛЯ
     
                ФУНКЦИЯ ОСУЩЕСТВЛЯЕТ ПОИСК В КАТАЛОГЕ ЗАДАННОГО ДИСКА ПЕРВ-
     ОГО ОПИСАТЕЛЯ, СООТВЕТСТВУЮЩЕГО ЗАДАННОМУ БУФ.
                ЕСЛИ  ТАКОЙ  ОПИСАТЕЛЬ НАЙДЕН, ТО В РЕГИСТРЕ А ВОЗВРАЩАЕТСЯ
     ЕГО  ИНДЕКС  А В БУФЕРЕ ОБМЕНА - ЗАПИСЬ КАТАЛОГА, СОДЕРЖАЩАЯ НАЙДЕННЫЙ
     ОПИСАТЕЛЬ. ТАКИМ  ОБРАЗОМ ОТНОСИТЕЛЬНЫЙ НАЧАЛЬНЫЙ АДРЕС НАЙДЕННОГО ОП-
     ИСАТЕЛЯ В БУФЕРЕ ОБМЕНА  БУДЕТ РАВЕН А*32. 
                ЕСЛИ  СООТВЕТСТВУЮЩИЙ  ОПИСАТЕЛЬ НЕ НАЙДЕН, ТО В РЕГИСТРЕ А
     ВОЗВРАЩАЕТ СЯ FFH. 
                ЕСЛИ  БУФ В ПОЗИЦИИ, СООТВЕТСТВУЮЩЕЙ НОМЕРУ ДИСКА, СОДЕРЖИТ
     СИМВОЛ    "?"(КОД   3FH),   ТО   ВЫБИРАЕТСЯ  ПЕРВЫЙ  (ЗАПОЛНЕННЫЙ  ИЛИ
     СВОБОДНЫЙ)  ОПИСАТЕЛЬ   КАТАЛОГА  АКТИВИЗИРОВАННОГО ДИСКА. ЭТОТ СЛУЧАЙ
     ИСПОЛЬЗУЕТСЯ ДЛЯ ПРОСМОТРА  ТЕКУЩЕГО СОСТОЯНИЯ ВСЕХ ОПИСАТЕЛЕЙ КАТАЛО-
     ГА АКТИВИЗИРОВАННОГО ДИСКА (СМ.  ФУНКЦИЮ 18).  
     
      4.17.    ФУНКЦИЯ 18: ПОИСК СЛЕДУЮЩЕГО
     
     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР C: 12H
     
                        РЕГИСТР DE: АДРЕС БУФ
     
     
             ВЫХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР A: ИНДЕКС ОПИСАТЕЛЯ
     
                 ФУНКЦИЯ "ПОИСК СЛЕДУЮЩЕГО" АНАЛОГИЧНА ФУНКЦИИ "ПОИСК ПЕРВ-
     ОГО", ЗА  ИСКЛЮЧЕНИЕМ ТОГО, ЧТО ПРОСМОТР КАТАЛОГА НАЧИНАЕТСЯ С ПОСЛЕД-
     НЕГО ОПИСАТЕЛЯ,  СОВПАВШЕГО С ЗАДАННЫМ БУФ. 
                 ЕСЛИ СООТВЕТСТВУЮЩИЙ ЭЛЕМЕНТ НЕ НАЙДЕН, В РЕГИСТРЕ А ВОЗВ-
     РАЩАЕТСЯ   FFH.  

      4.18.    ФУНКЦИЯ 19: СТИРАНИЕ ФАЙЛА
     
     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР C: 13H
     
                        РЕГИСТР DE: АДРЕС БУФ
     
     
             ВЫХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР A: ИНДЕКС ОПИСАТЕЛЯ
     
                ФУНКЦИЯ СТИРАЕТ В КАТАЛОГЕ ДИСКА ВСЕ ОПИСАТЕЛИ ФАЙЛА (ФАЙЛ-
     ОВ),  ИМЯ  КОТОРОГО ЗАДАНО В БУФ. ПОЛЕ НОМЕРА ДИСКА НЕ МОЖЕТ СОДЕРЖАТЬ
     СИМВОЛ "?"  (КОД 3FH). 
                ЕСЛИ СООТВЕТСТВУЮЩИЙ ОПИСАТЕЛЬ НАЙДЕН В КАТАЛОГЕ, В РЕГИСТ-
     РЕ А ВОЗ ВРАЩАЕТСЯ ЕГО ИНДЕКС В ЗАПИСИ КАТАЛОГА. 
                ЕСЛИ СООТВЕТСТВУЮЩИЙ ОПИСАТЕЛЬ НЕ НАЙДЕН В КАТАЛОГЕ, В РЕГ-
     ИСТРЕ А  ВОЗВРАЩАЕТСЯ FFH.   
     
      4.19.    ФУНКЦИЯ 20: ПОСЛЕДОВАТЕЛЬНОЕ ЧТЕНИЕ

     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
     
                           РЕГИСТР C: 14H
     
                           РЕГИСТР DE: АДРЕС БУФ
     
     
             ВЫХОДНЫЕ ПАРАМЕТРЫ:
     
     
                           РЕГИСТР A: ИНДЕКС ОПИСАТЕЛЯ
     
                ФУНКЦИЯ  ВВОДИТ  128  БАЙТНУЮ  ЗАПИСЬ ИЗ ФАЙЛА, ЗАДАННОГО В
     БУФ, В БУФЕР  ОБМЕНА. ЗАДАННЫЙ БУФ ДОЛЖЕН СОДЕРЖАТЬ ИНФОРМАЦИЮ О РАЗМ-
     ЕЩЕНИИ  ФАЙЛА  НА   ДИСКЕ,  ДЛЯ ЧЕГО НЕОБХОДИМО ПРЕДВАРИТЕЛЬНО ОТКРЫТЬ
     ФАЙЛ (ФУНКЦИЯ 15). 
                ИЗ  ТЕКУЩЕГО  ЭКСТЕНТА ВВОДИТСЯ ЗАПИСЬ С ТЕКУЩИМ НОМЕРОМ, И
     К  ТЕКУЩЕМУ  НОМЕРУ ЗАПИСИ АВТОМАТИЧЕСКИ ПРИБАВЛЯЕТСЯ ЕДИНИЦА, ТО ЕСТЬ
     УСТАНАВЛИВАЕТСЯ  НОМЕР СЛЕДУЮЩЕЙ ЗАПИСИ. 
                ЕСЛИ ПОЛЕ ТЕКУЩЕГО НОМЕРА ЗАПИСИ ПЕРЕПОЛНЯЕТСЯ, ТО СЛЕДУЮЩ-
     АЯ  ОПЕРАЦИЯ   ЧТЕНИЯ АВТОМАТИЧЕСКИ ОТКРЫВАЕТ СЛЕДУЮЩИЙ ЭКСТЕНТ И ПОЛЕ
     ТЕКУЩЕГО НОМЕРА  ЗАПИСИ ОБНУЛЯЕТСЯ. 
                ЕСЛИ ОПЕРАЦИЯ ЧТЕНИЯ ПРОШЛА УСПЕШНО, В РЕГИСТРЕ А ВОЗВРАЩА-
     ЕТСЯ  00H.  В   ПРОТИВНОМ  СЛУЧАЕ  СОДЕРЖИМОЕ РЕГИСТРА А ОТЛИЧАЕТСЯ ОТ
     НУЛЯ.   
     
      4.20.    ФУНКЦИЯ 21: ПОСЛЕДОВАТЕЛЬНАЯ ЗАПИСЬ
     
     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР C: 15H
     
                        РЕГИСТР DE: АДРЕС БУФ
     
     
             ВЫХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР A: ИНДЕКС ОПИСАТЕЛЯ
     
           ФУНКЦИЯ  ЗАНОСИТ  128-БАЙТНУЮ ЗАПИСЬ ИЗ БУФЕРА ОБМЕНА В ФАЙЛ,
     ИМЯ КОТОРОГО УКАЗАНО В БУФ. БУФ ДОЛЖЕН СОДЕРЖАТЬ ИНФОРМАЦИЮ О РАЗМЕЩ-
     ЕНИИ ФАЙЛА, ДЛЯ ЧЕГО НЕОБХОДИМО ПРЕДВАРИТЕЛЬНО ОТКРЫТЬ ИЛИ СОЗДАТЬ
     ФАЙЛ (ФУНКЦИИ 15  ИЛИ 22). ЗАПИСЬ ПОМЕЩАЕТСЯ В ТЕКУЩИЙ ЭКСТЕНТ С ТЕКУ-
     ЩИМ  НОМЕРОМ И К ПОЛЮ ТЕКУЩЕГО НОМЕРА ЗАПИСИ ПРИБАВЛЯЕТСЯ ЕДИНИЦА, ТО
     ЕСТЬ УСТАНАВЛИВАЕСЯ  НОМЕР СЛЕДУЮЩЕЙ  ЗАПИСИ. ЕСЛИ ПОЛЕ ТЕКУЩЕГО
     НОМЕРА ЗАПИСИ ПЕРЕПОЛНЯЕТСЯ, ТО ДЛЯ СЛЕДУЮЩЕЙ ОПЕРАЦИИ ЗАПИСИ АВТО-
     ТИЧЕСКИ ОТКРЫВАЕТСЯ СЛЕДУЮЩИЙ ЭКСТЕНТ И  ПОЛЕ ТЕКУЩЕГО НОМЕРА ЗАПИСИ
     УСТАНАВЛИВАЕТСЯ В 0.
              ОПЕРАЦИЯ  ЗАПИСИ МОЖЕТ ПРОИСХОДИТЬ  НА  РАНЕЕ  ЗАПОЛНЕННОМ
     ФАЙЛЕ,  В ЭТОМ СЛУЧАЕ  ВНОВЬ ЗАНЕСЕННЫЕ ЗАПИСИ  ПОМЕЩАЮТСЯ В ТЕ ЖЕ
     БЛОКИ, ЧТО И РАНЕЕ СУЩЕСТВОВАВШИЕ В ФАЙЛЕ.
          ЕСЛИ ОПЕРАЦИЯ ЗАПИСИ ПРОШЛА УСПЕШНО, ТО В РЕГИСТРЕ A ВОЗВРАЩА-
     ЕТСЯ   00H. В ПРОТИВНОМ СЛУЧАЕ СОДЕРЖИМОЕ РЕГИСТРА А ОТЛИЧНО ОТ НУЛЯ. 
      
     
      4.21.    ФУНКЦИЯ 22: СОЗДАНИЕ ФАЙЛА

     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР C: 16H
     
                        РЕГИСТР DE: АДРЕС БУФ
     
     
             ВЫХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР A: ИНДЕКС ОПИСАТЕЛЯ

              ФУНКЦИЯ  ЗАПОЛНЯЕТ НУЛЯМИ БАЙТЫ С 13 ПО 31 БУФ И ЗАПИСЫВАЕТ В
     КАТАЛОГ ДИСКА  ОПИСАТЕЛЬ ФАЙЛА, ФОРМИРУЯ ЕГО ПО ЗАДАННОМУ БУФ. ТАКИМ
     ОБРАЗОМ, СОЗДАНИЕ ФАЙЛА ТАК ЖЕ, КАК И ФУНКЦИЯ "ОТКРЫТИЕ ФАЙЛА" ОБЕСП-
     ЕЧИВАЕТ ДОСТУП К  ФАЙЛУ ДЛЯ ВСЕХ ОПЕРАЦИЙ. 
             ПОЛЬЗОВАТЕЛЬ  ДОЛЖЕН ПРЕДВАРИТЕЛЬНО ЗАПОЛНИТЬ С 0 ПО 12 БАЙТЫ
     БУФ, ТО   ЕСТЬ  ЗАДАТЬ  НОМЕР  ДИСКА, ИМЯ И ТИП ФАЙЛА, НА ЗАБЫВАЯ ПРИ
     ЭТОМ, ЧТО ДУБЛИРОВАНИЕ ИМЕН ФАЙЛА НА ОДНОМ ДИСКЕ НЕ ДОПУСКАЕТСЯ.
             ЕСЛИ   ОПЕРАЦИЯ  ПРОШЛА  УСПЕШНО,  В РЕГИСТРЕ  A ВОЗВРАЩАЕТСЯ
     ИНДЕКС ОПИСАТЕЛЯ  В ЗАПИСИ КАТАЛОГА. ЕСЛИ В КАТАЛОГЕ НЕТ СВОБОДНОГО
     МЕСТА, ТО В РЕГИСТ РЕ А ВОЗВРАЩАЕТСЯ FFH.   

      4.22.    ФУНКЦИЯ 23: ПЕРЕИМЕНОВАНИЕ ФАЙЛА
     
     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР C: 17H
     
                        РЕГИСТР DE: АДРЕС БУФ
     
     
             ВЫХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР A: ИНДЕКС ОПИСАТЕЛЯ
     
               ФУНКЦИЯ  ЗАМЕНЯЕТ  ИМЯ  ФАЙЛА,  ЗАДАННОЕ  В БАЙТАХ С 0 ПО 12
     БУФ,  АДРЕС  КОТОРОГО ЗАДАН В DЕ, НА ИМЯ ФАЙЛА, ЗАДАННОЕ В БАЙТАХ С 16
     ПО  28  БУФ. НОМЕР  ДИСКА ЗАДАЕТСЯ ТОЛЬКО В НУЛЕВОМ БАЙТЕ БУФ, БАЙТ 16
     ВСЕГДА СОДЕРЖИТ 0.
             ЕСЛИ  ПЕРЕИМЕНОВАНИЕ ПРОШЛО УДАЧНО, В РЕГИСТРЕ А ВОЗВРАЩАЕТСЯ 
     ИНДЕКС  ОПИСАТЕЛЯ В КАТАЛОГЕ, В ПРОТИВНОМ СЛУЧАЕ - FFH.   
     
      4.23.    ФУНКЦИЯ 24: ПОЛУЧИТЬ ВЕКТОР УСТАНОВЛЕННЫХ ДИСКОВ
     
     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР C: 18H
     
     
             ВЫХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР HL: ВЕКТОР ДЕЙСТВУЮЩИХ ДИСКОВЫХ УСТРОЙСТВ
     
              ВЕКТОР УСТАНОВЛЕННЫХ ДИСКОВ ПРЕДСТАВЛЯЕТ СОБОЙ 16 БИТНУЮ ВЕЛ-
     ИЧИНУ  И   ВОЗВРАЩАЕТСЯ В РЕГИСТРАХ HL. ПЕРВЫЙ ЗНАЧАЩИЙ БИТ РЕГИСТРА L
     СООТВЕТСТВУЕТ   ДИСКУ  A,  ВТОРОЙ БИТ - ДИСКУ В. НУЛЕВОЕ ЗНАЧЕНИЕ БИТА
     ОЗНАЧАЕТ,  ЧТО  СООТВЕТСТВУЮЩИЙ ДИСК НЕ УСТАНОВЛЕН, ЕДИНИЦА ОЗНАЧАЕТ,
     ЧТО ДИСК УСТАНОВЛЕН  В  РЕЗУЛЬТАТЕ ВЫПОЛНЕНИЯ ФУНКЦИИ "АКТИВИЗАЦИЯ ДИ-
     СКА"  ИЛИ  ОДНОЙ ИЗ ОПЕРАЦИЙ  НАД ФАЙЛОМ С ЯВНЫМ ЗАДАНИЕМ НОМЕРА ДИСКА
     В ПОЛЕ НОМЕРА ДИСКА.   
     
      4.24.    ФУНКЦИЯ 25: ПОЛУЧИТЬ НОМЕР АКТИВИЗИРОВАННОГО ДИСКА
     
     
             ВХОДНЫЕ ПАРАМЕТРЫ:

     
                        РЕГИСТР C: 19H
     
     
             ВЫХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР A: НОМЕР АКТИВИЗИРОВАННОГО ДИСКА
     
              ФУНКЦИЯ   ВОЗВРАЩАЕТ   В РЕГИСТРЕ  А НОМЕР  АКТИВИЗИРОВАННОГО
     ДИСКА. А=00   СООТВЕТСТВУЕТ ДИСКУ А, А=01 - ДИСКУ В.   
     
      4.25.    ФУНКЦИЯ 26: УСТАНОВИТЬ АДРЕС БУФЕРА ОБМЕНА
     
     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР C: 1AH
     
                        РЕГИСТР DE: АДРЕС БУФЕРА ОБМЕНА
     
               БУФЕР ОБМЕНА ПРЕДСТАВЛЯЕТ СОБОЙ 128 БАЙТОВ ОПЕРАТИВНОЙ ПАМЯ-
     ТИ, ЧЕРЕЗ  КОТОРЫЕ ОСУЩЕСТВЛЯЕТСЯ ВВОД/ВЫВОД ЗАПИСЕЙ ФАЙЛОВ. ПРОЦЕДУР-
     ОЙ "ГОРЯЧИЙ/ХОЛОДНЫЙ СТАРТ" АДРЕС БУФЕРА ОБМЕНА УСТАНАВЛИВАЕТСЯ РАВН-
     ЫМ  0080Н.  ФУНКЦИЯ  "УСТАНОВИТЬ АДРЕС БУФЕРА ОБМЕНА" ИСПОЛЬЗУЕТСЯ ДЛЯ
     ИЗМЕНЕНИЯ АДРЕСА СИСТЕМ НОГО БУФЕРА ОБМЕНА НА АДРЕС, ЗАДАННЫЙ В РЕГИС-
     ТРАХ  DE.  ВНОВЬ УСТАНОВЛЕННЫЙ  АДРЕС БУФЕРА ОБМЕНА СОХРАНЯЕТСЯ ДО ТЕХ
     ПОР,  ПОКА ОН НЕ БУДЕТ ИЗМЕНЕН ЛИБО  ФУНКЦИЕЙ "УСТАНОВИТЬ АДРЕС БУФЕРА
     ОБМЕНА", ЛИБО ПРОЦЕДУРОЙ "ГОРЯЧИЙ/ХОЛОДНЫЙ СТАРТ".
     
      4.26.    ФУНКЦИЯ 27: ПОЛУЧИТЬ АДРЕС ВЕКТОРА РАЗМЕЩЕНИЯ БЛОКОВ
     
     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР C: 18H
     
     
           ВЫХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТРЫ HL: АДРЕС ВЕКТОРА РАЗМЕЩЕНИЯ БЛОКОВ
     
              ВЕКТОР  РАЗМЕЩЕНИЯ  БЛОКОВ  ФОРМИРУЕТСЯ В ОСНОВНОЙ ПАМЯТИ ДЛЯ
     КАЖДОГО    УСТАНОВЛЕННОГО  ДИСКА. РАЗЛИЧНЫЕ   СИСТЕМНЫЕ   ПРОГРАММЫ
     ИСПОЛЬЗУЮТ  ИНФОРМАЦИЮ, СОДЕРЖАЩУЮСЯ В ВЕКТОРЕ РАЗМЕЩЕНИЯ БЛОКОВ ДЛЯ
     ОПРЕДЕЛЕНИЯ  ВЕЛИЧИНЫ СВОБОД НОЙ ПАМЯТИ НА ДИСКЕ. ФУНКЦИЯ ВОЗВРАЩАЕТ В
     РЕГИСТРАХ HL НАЧАЛЬНЫЙ АДРЕС  ВЕКТОРА РАЗМЕЩЕНИЯ БЛОКОВ ДЛЯ АКТИВИЗИР-
     ОВАННОГО ДИСКА.   
     
      4.27.    ФУНКЦИЯ 28: ЗАПИСАТЬ КЛЮЧ ЗАЩИТЫ ДИСКА
     
     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР C: 1CH
     
              ФУНКЦИЯ УСТАНАВЛИВАЕТ ВРЕМЕННОЕ ЗАПРЕЩЕНИЕ ЗАПИСИ НА АКТИВИЗ-
     ИРОВАННЫЙ  ДИСК.    В РЕЗУЛЬТАТЕ ВПЛОТЬ ДО  ВЫПОЛНЕНИЯ
     "ГОРЯЧЕГО/ХОЛОДНОГО  СТАРТА"  ЛЮБАЯ ПОПЫТКА ЗАПИСИ НА АКТИВИЗИРОВАННЫЙ
     ДИСК ВЫЗОВЕТ СООБЩЕНИЕ ОБ ОШИБКЕ:
     
                   BDOS ERR ON D: R/O
     
            (ОШИБКА ВВОДА/ВЫВОДА НА ДИСКЕ D: ТОЛЬКО ЧТЕНИЕ , ГДЕ D - ИМЯ ДИСКА)
     
     
      4.28.    ФУНКЦИЯ 29: ПОЛУЧИТЬ ВЕКТОР R/O
     
     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР C: 1DH
     
     
             ВЫХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТРЫ HL: ЗНАЧЕНИЕ ВЕКТОРА R/O.
     
              ФУНКЦИЯ ВОЗВРАЩАЕТ В ПАРЕ РЕГИСТРОВ HL БИТОВЫЙ ВЕКТОР, УКАЗЫ-
     ВАЮЩИЙ НА  ДИСКИ, ДЛЯ КОТОРЫХ УСТАНОВЛЕН БИТ R/O (ТОЛЬКО ЧТЕНИЕ). МЛА-
     ДШИЙ ЗНАЧАЩИЙ  БИТ СООТВЕТСТВУЕТ ДИСКУ A, ВТОРОЙ - ДИСКУ В.   
     
      4.29.    ФУНКЦИЯ 30:  УСТАНОВИТЬ ИНДИКАТОР ДОСТУПА ФАЙЛА
     
     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР C: 1EH
     
                        РЕГИСТР DE: АДРЕС БУФ
     
     
             ВЫХОДНОЕ ЗНАЧЕНИЕ:
     
     
                        РЕГИСТР A: ИНДЕКС ОПИСАТЕЛЯ
     
              ФУНКЦИЯ  ПОЗВОЛЯЕТ  ПРОГРАММНО РАБОТАТЬ С ИНДИКАТОРОМ ДОСТУПА
     ФАЙЛА.  ДЛЯ ФАЙЛА, ИМЯ КОТОРОГО ЗАДАНО В БУФ, УСТАНАВЛИВАЕТСЯ ИНДИКАТ-
     ОР  ДОСТУПА   R/O  (ТОЛЬКО  ЧТЕНИЕ),  ЕСЛИ  СТАРШИЙ  БИТ  БАЙТА  9 БУФ
     СОДЕРЖИТ 1, ИЛИ R/W  (ЧТЕНИЕ/ЗАПИСЬ), ЕСЛИ ЭТОТ БИТ СОДЕРЖИТ 0.   
     
      4.30.    ФУНКЦИЯ 33: ПРЯМОЕ ЧТЕНИЕ
     
     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР C: 21H
     
                        РЕГИСТР DE: АДРЕС БУФ
     
     
             ВЫХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР A: КОД ОШИБКИ
     
             ПРЯМОЕ  ЧТЕНИЕ  АНАЛОГИЧНО  ПОСЛЕДОВАТЕЛЬНОМУ ЧТЕНИЮ ФАЙЛА, ЗА
     ИСКЛЮ ЧЕНИЕМ ТОГО, ЧТО ПРЯМОЕ ЧТЕНИЕ ПОЗВОЛЯЕТ ВВОДИТЬ ЗАПИСИ С ПРОИЗ-
     ВОЛЬНЫМ  УКАЗАННЫМ НОМЕРОМ. ДЛЯ ОБРАЩЕНИЯ К ФУНКЦИИ НЕОБХОДИМО ПРЕДВА-
     РИТЕЛЬНО ОТКРЫТЬ ФАЙЛ И ЗАНЕСТИ НОМЕР ЗАПИСИ В ПОЛЕ НОМЕРА ЗАПИСИ
     ПРИ ПРЯМОМ ДОСТУПЕ БУФ (БАЙТЫ 33 И 34), БАЙТ 35 ДОЛЖЕН БЫТЬ ПРЕДВАРИ-
     ТЕЛЬНО ОБНУЛЕН, ТАК  КАК НЕНУЛЕВОЕ ЗНАЧЕНИЕ ЭТОГО БАЙТА ОЗНАЧАЕТ ПЕРЕ-
     ПОЛНЕНИЕ ДИСКА. 
              В  РЕГИСТРЕ  А ВОЗВРАЩАЕТСЯ  ЛИБО  КОД ОШИБКИ (ВОЗМОЖНЫЕ КОДЫ
     ОШИБОК   ПРИ   ВЕДЕНЫ  НИЖЕ),  ЛИБО  00,  ЧТО  ОЗНАЧАЕТ  БЛАГОПОЛУЧНОЕ
     ЗАВЕРШЕНИЕ ОПЕРАЦИИ. В  ЭТОМ СЛУЧАЕ В БУФЕРЕ ОБМЕНА СОДЕРЖИТСЯ ВВЕДЕН-
     НАЯ ЗАПИСЬ. 
              В  ОТЛИЧИЕ  ОТ  ПОСЛЕДОВАТЕЛЬНОГО  ЧТЕНИЯ  ПРИ  ПРЯМОМ ЧТЕНИИ
     ПОСЛЕ ВВОДА  ЗАПИСИ ПОЛЕ НОМЕРА ЗАПИСИ ПРЯМОГО ДОСТУПА В БУФ НЕ ИЗМЕН-
     ЯЕТСЯ  И ПОВТОРЕНИЕ   ПРЯМОГО  ЧTЕНИЯ  ВЫЗОВЕТ ПОВТОРНЫЙ ВВОД ЗАПИСИ С
     ТЕМ ЖЕ НОМЕРОМ. 
              ДАЛЕЕ  ПРИВОДЯТСЯ  КОДЫ  ОШИБОК,  ВОЗВРАЩАЕМЫЕ  В РЕГИСТРЕ  A
     ПОСЛЕ ОПЕРАЦИИ ПРЯМОГО ЧТЕНИЯ:
     
             01        - ЧТЕНИЕ ОТСУТСТВУЮЩИХ ЗАПИСЕЙ;
     
             02        - НЕ ИСПОЛЬЗУЕТСЯ ПРИ ПРЯМОМ ДОСТУПЕ;
     
             03        - ОШИБКА ПРИ ЗАКРЫТИИ ТЕКУЩЕГО ЭКСТЕНТА;
     
             04        - ПОПЫТКА ОТКРЫТЬ НЕСУЩЕСТВУЮЩИЙ ЭКСТЕНТ;
     
             05        - НЕ ИСПОЛЬЗУЕТСЯ ПРИ ПРЯМОМ ЧТЕНИИ;
     
             06        - ФИЗИЧЕСКИЙ КОНЕЦ ДИСКА.
     
              КОДЫ  ОШИБОК 01 И 04 ВСТРЕЧАЮТСЯ В СЛУЧАЕ, КОГДА ПРИ ОПЕРАЦИИ
     ПРЯМОГО   ЧТЕНИЯ  ДОСТИГНУТ  БЛОК  ДАННЫХ,  КОТОРЫЙ  ДО  ЭТОГО  НЕ БЫЛ
     ЗАПИСАН, ИЛИ ЭКСТЕНТ, КОТОРЫЙ НЕ БЫЛ ДО ЭТОГО ОРГАНИЗОВАН.
              КОД ОШИБКИ 03 ОБЫЧНО НЕ ПОЯВЛЯЕТСЯ ПРИ НОРМАЛЬНОЙ РАБОТЕ СИС-
     ТЕМЫ. ОНА  МОЖЕТ БЫТЬ СНЯТА ПРИ ПОМОЩИ ПОВТОРНОГО ЧТЕНИЯ ИЛИ ПОВТОРНО-
     ГО ОТКРЫТИЯ. 
             КОД ОШИБКИ 06 ВСТРЕЧАЕТСЯ В СЛУЧАЕ, ЕСЛИ 35-Й БАЙТ БУФ НЕ РАВ-
     ЕН НУЛЮ.   
     
      4.31.    ФУНКЦИЯ 34: ПРЯМАЯ ЗАПИСЬ
     
     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР C: 22H
     
                        РЕГИСТР DE: АДРЕС БУФ
     
     
             ВЫХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР A: КОД ОШИБКИ
     
              ФУНКЦИЯ ЗАПИСЫВАЕТ НА ДИСК ДАННЫЕ, НАХОДЯЩИЕСЯ В БУФЕРЕ ОБМЕ-
     НА. ЕСЛИ  ЭКСТЕНТ НА ДИСКЕ ИЛИ БЛОК ДАННЫХ, В КОТОРЫЕ ПРОИЗВОДИТСЯ ЗА-
     ПИСЬ,  ЕЩЕ  НЕ   ОТВЕДЕНЫ,  ОСУЩЕСТВЛЯЕТСЯ ВЫДЕЛЕНИЕ ОБЛАСТИ НА ДИСКЕ.
     КАК  И ПРИ ПРЯМОМ  ЧТЕНИИ, НОМЕР ЗАПИСИ (33 И 34 БАЙТ БУФ) НЕ МЕНЯЕТСЯ
     В РЕЗУЛЬТАТЕ ВЫПОЛНЕ НИЯ ПРЯМОЙ ЗАПИСИ. ТЕКУЩИЙ НОМЕР ЭКСТЕНТА И ТЕКУ-
     ЩИЙ  НОМЕР  ЗАПИСИ  В ЭКСТЕНТЕ ВЫЧИСЛЯЮТСЯ ПО ЗАДАННОМУ НОМЕРУ ПРЯМОЙ
     ЗАПИСИ И ЗАПИСЫВАЮТСЯ В СООТВЕТСТВУЮЩИЕ БАЙТЫ БУФ.
              КОДЫ  ОШИБОК, ВОЗВРАЩАЕМЫХ ПРИ ПРЯМОЙ ЗАПИСИ, ИДЕНТИЧНЫ КОДАМ
     ОШИБОК   ПРИ  ПРЯМОМ ЧТЕНИИ КРОМЕ КОДА 05, КОТОРЫЙ ОЗНАЧАЕТ, ЧТО НОВЫЙ
     ЭКСТЕНТ НЕ  МОЖЕТ БЫТЬ СОЗДАН ИЗ-ЗА ПЕРЕПОЛНЕНИЯ КАТАЛОГА.   
     
      4.32.    ФУНКЦИЯ 35: ВЫЧИСЛИТЬ РАЗМЕР ФАЙЛА
     
     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР C: 23H
     
                        РЕГИСТР DE: АДРЕС БУФ
     
     
             ВЫХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        УСТАНОВКА ПОЛЯ НОМЕРА ЗАПИСИ ПРИ ПРЯМОМ ДОСТУПЕ
     
              ФУНКЦИЯ  ВЫЧИСЛЯЕТ РАЗМЕР ФАЙЛА, ИМЯ КОТОРОГО ЗАДАНО В БУФ, И
     ВОЗВРАЩАЕТ  ЕГО  В БАЙТАХ 33, 34 И 35 БУФ. ВОЗВРАЩАЕМЫЙ РАЗМЕР ФАЙЛА
     НА САМОМ ДЕЛЕ  ЯВЛЯЕТСЯ ПРОДВИНУТЫМ НОМЕРОМ ПОСЛЕДНЕЙ ЗАПИСИ ФАЙЛА. 
              В  КОНЦЕ СУЩЕСТВУЮЩЕГО ФАЙЛА МОГУТ БЫТЬ ДОБАВЛЕНЫ ЗАПИСИ. ДЛЯ
     ЭТОГО  СЛЕДУЕТ:

             - ПОЛУЧИТЬ ПРОДВИНУТЫЙ НОМЕР ПОСЛЕДНЕЙ ЗАПИСИ ФАЙЛА ПРИ ПОМОЩИ ФУНК-
     
               ЦИИ 35;
     
             - ВЫПОЛНИТЬ ФУНКЦИЮ "ПРЯМАЯ ЗАПИСЬ" С ЭТИМ НОМЕРОМ;
     
             - ЗАТЕМ ВЫПОЛНЯТЬ ФУНКЦИЮ "ПРЯМАЯ ЗАПИСЬ" НУЖНОЕ ЧИСЛО РАЗ, УВЕЛИЧИ-
     
               ВАЯ КАЖДЫЙ РАЗ НОМЕР ЗАПИСИ НА ЕДИНИЦУ.
     
              ЕСЛИ ФАЙЛ ЗАПИСАН ПОСЛЕДОВАТЕЛЬНО, ДЕЙСТВИТЕЛЬНЫЙ РАЗМЕР ФАЙ-
     ЛА  СОВПАДАЕТ  С ЧИСЛОМ  ЗАПИСЕЙ В НЕМ. ЕСЛИ ЖЕ ФАЙЛ СОЗДАН В РЕЖИМЕ
     ПРЯМОГО  ДОСТУПА,  И В ОБЛАСТИ РАЗМЕЩЕНИЯ ФАЙЛА СУЩЕСТВУЮТ "ДЫРКИ", ТО
     ФАКТИЧЕСКОЕ ЧИСЛО ЗА ПИСЕЙ МЕНЬШЕ, ЧЕМ УКАЗАНО В ЕГО РАЗМЕРЕ.   
     
      4.33.    ФУНКЦИЯ 36: УСТАНОВИТЬ НОМЕР ЗАПИСИ ДЛЯ ПРЯМОГО ДОСТУПА
     
     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР C: 24H
     
                        РЕГИСТР DE: АДРЕС БУФ
     
     
             ВЫХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        УСТАНОВКА ПОЛЯ НОМЕРА ПРЯМОЙ ЗАПИСИ
     
              ФУНКЦИЯ  УСТАНАВЛИВАЕТ НОМЕР ЗАПИСИ ПРЯМОГО ДОСТУПА (БАЙТЫ 33
     И 34) ПО  НОМЕРУ ТЕКУЩЕГО ЭКСТЕНТА И НОМЕРУ ТЕКУЩЕЙ ЗАПИСИ. 
              ФУНКЦИЯ ПРИМЕНЯЕТСЯ ПРИ ПЕРЕКЛЮЧЕНИИ С РЕЖИМА ПОСЛЕДОВАТЕЛЬН-
     ОГО ДО СТУПА В РЕЖИМ ПРЯМОГО ДОСТУПА. К ФАЙЛУ ОСУЩЕСТВЛЯЕТСЯ ПОСЛЕДОВ-
     АТЕЛЬНЫЙ ДО СТУП ДО СООТВЕТСТВУЮЩЕЙ ЗАПИСИ, ВЫЗЫВАЕТСЯ ФУНКЦИЯ 36, УС-
     ТАНАВЛИВАЮЩАЯ  НОМЕР  ПРЯМОЙ  ЗАПИСИ,  И,  НАЧИНАЯ С ВЫБРАННОЙ ТОЧКИ
     ФАЙЛА, ВЫПОЛНЯЮТСЯ ОПЕРАЦИИ ПРЯМОГО ЧТЕНИЯ ИЛИ ЗАПИСИ.
     
      4.34.    ФУНКЦИЯ 40: ПРЯМАЯ ЗАПИСЬ С ЗАПОЛНЕНИЕМ НУЛЯМИ

     
             ВХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР C: 28H
     
                        РЕГИСТР DE: АДРЕС БУФ
     
     
             ВЫХОДНЫЕ ПАРАМЕТРЫ:
     
     
                        РЕГИСТР A: КОД ОШИБКИ
     
              ФУНКЦИЯ  АНАЛОГИЧНА  ПРЯМОЙ  ЗАПИСИ  ЗА ИСКЛЮЧЕНИЕМ ТОГО, ЧТО
     ПРИ ВЫДЕЛЕ НИИ НОВОГО БЛОКА, ОН ЗАПОЛНЯЕТСЯ НУЛЯМИ ПЕРЕД ЗАПИСЬЮ В НЕ-
     ГО ДАННЫХ. 

                  5. СТРУКТУРА ФАЙЛОВ ОС CP/M

              В  ОС  CP/M ПОД ДИСКОМ ПОДРАЗУМЕВАЕТСЯ ЛОГИЧЕСКОЕ УСТРОЙСТВО,
     ПРЕДСТАВ  ЛЯЮЩЕЕ  СОБОЙ  НЕКОТОРУЮ ВНЕШНЮЮ ЗАПОМИНАЮЩУЮ СРЕДУ С ПРЯМЫМ
     ДОСТУПОМ, ДО ПУСКАЮЩУЮ КАК ЧТЕНИЕ, ТАК И ЗАПИСЬ. 
              ДИСК ЛОГИЧЕСКИ РАЗБИВАЕТСЯ НА ТРИ ОБЛАСТИ: 
             - РЕЗЕРВИРУЕМУЮ ОБЛАСТЬ, СОДЕРЖАЩУЮ ПКК И СЛВВ;
     
             - ОБЛАСТЬ КАТАЛОГА;
     
             - ОБЛАСТЬ ФАЙЛОВ.
     
                ПРОСТРАНСТВО ДИСКА, ОТВЕДЕННОЕ ПОД КАТАЛОГ И ФАЙЛЫ, ОРГАНИ-
     ЗОВАНОБЛО  КАМИ  ПОСТОЯННОЙ  ДЛИНЫ.  КАЖДЫЙ БЛОК СОСТОИТ ИЗ КРАТНОГО
     8-МИ ЧИСЛА ЗАПИСЕЙ. 
              СЛВВ ОСУЩЕСТВЛЯЕТ ОБМЕН С ДИСКОМ ПО ЗАПИСЯМ. ДЛИНА ЗАПИСИ СО-
     СТАВЛЯЕТ    128   БАЙТ.  КАЖДЫЙ  ФАЙЛ  СОСТОИТ  ИЗ  ПОСЛЕДОВАТЕЛЬНОСТИ
     ЗАПИСЕЙ. НУМЕРАЦИЯ ЗА ПИСЕЙ НАЧИНАЕТСЯ С 0. 
             НЕСКОЛЬКО  НАЧАЛЬНЫХ  БЛОКОВ  РЕЗЕРВИРУЕТСЯ ПОД КАТАЛОГ ДИСКА.
     КАТАЛОГ   СОСТОИТ  ИЗ ОПИСАТЕЛЕЙ, СОДЕРЖАЩИХ ИМЕНА ФАЙЛОВ И ИНФОРМАЦИЮ
     О РАЗМЕЩЕНИИ  ФАЙЛОВ, РАСПОЛОЖЕННЫХ НА ДИСКЕ. 
              КАЖДЫЙ ОПИСАТЕЛЬ ОПРЕДЕЛЯЕТ ОБЛАСТЬ ДИСКА (ЭКСТЕНТ), ОТВЕДЕН-
     НУЮ  ПОД   ДАННЫЙ  ФАЙЛ ИЛИ ЧАСТЬ ФАЙЛА. ДЛИНА ОПИСАТЕЛЯ СОСТАВЛЯЕТ 32
     БАЙТА.  ОПИСАСАТЕЛЬ  СОДЕРЖИТ ИМЯ И ТИП ФАЙЛА, НОМЕР ЭКСТЕНТА, ЧИСЛО
     ЗАПИСЕЙ  В ЭКСТЕНТЕ   И СПИСОК  НОМЕРОВ  БЛОКОВ, ОТВЕДЕННЫХ ПОД ДАННЫЙ
     ЭКСТЕНТ. СТРУКТУРА ОПИСАТЕЛЯ СОВПАДАЕТ СО СТРУКТУРОЙ 0-31 БАЙТОВ БЛО-
     КА УПРАВЛЕНИЯ ФАЙЛОМ (БУФ) (СМ.  ПОДРАЗДЕЛ 5.2). ПУСТЫЕ ОПИСАТЕЛИ СОД-
     ЕРЖАТ КОД 5H В НУЛЕВОМ БАЙТЕ. 
              4 ОПИСАТЕЛЯ БЛОКИРУЮТСЯ В ОДНУ ЗАПИСЬ КАТАЛОГА. НОМЕР ОПИСАТ-
     ЕЛЯ  В ЗА ПИСИ НАЗЫВАЕТСЯ ИНДЕКСОМ ОПИСАТЕЛЯ И ПРИНИМАЕТ ЗНАЧЕНИЯ ОТ 0
     ДО 3. 
             ФАЙЛЫ НА ДИСКЕ МОГУТ СОСТОЯТЬ ИЗ ОДНОГО ИЛИ НЕСКОЛЬКИХ ЭКСТЕН-
     ТОВ,  И,   ТАКИМ  ОБРАЗОМ,  ИМЕТЬ  ОДИН  ИЛИ  НЕСКОЛЬКО  ОПИСАТЕЛЕЙ  В
     КАТАЛОГЕ.  КАЖДЫЙ ЭКСТЕНТ ФАЙЛА ДОСТУПЕН ЧЕРЕЗ ЕГО ОПИСАТЕЛЬ В РЕЖИМЕ
     КАК ПОСЛЕДОВАТЕЛЬНОГО,  ТАК И ПРЯМОГО ВВОДА/ВЫВОДA.
              ФАЙЛЫ  В ОС  CP/M МОГУТ СОДЕРЖАТЬ ЛЮБОЕ ЧИСЛО ЗАПИСЕЙ ОТ НУЛЯ
     ДО ПОЛНОГО ИСПОЛЬЗОВАНИЯ ЕМКОСТИ ДИСКА.
     
      5. 1.    ФАЙЛОВАЯ ССЫЛКА
     
               ОС  CP/M РАБОТАЕТ С ПОИМЕНОВАННЫМИ ФАЙЛАМИ. ПОЛНОЕ ИМЯ ФАЙЛА
     СОСТОИТ  ИЗ ИМЕНИ ДИСКА, ИМЕНИ ФАЙЛА И ТИПА ФАЙЛА. 
              ИМЯ ДИСКА ИСПОЛЬЗУЕТСЯ ДЛЯ УКАЗАНИЯ ТРЕБУЕМОГО ДИСКА И ПРИНИ-
     МАЕТ ЗНАЧЕНИЕ А ИЛИ В.
              ИМЯ ФАЙЛА СОДЕРЖИТ ОТ 1 ДО 8 СИМВОЛОВ НЕ РАВНЫХ ПРОБЕЛУ. 
              ТИП   ФАЙЛА   СОДЕРЖИТ   ОТ   1 ДО   3 СИМВОЛОВ  И ОПРЕДЕЛЯЕТ
     НАЗНАЧЕНИЕ  ФАЙЛА.   ДАЛЕЕ ПРИВЕДЕНЫ ТИПЫ ФАЙЛОВ, ОБЫЧНО РЕЗЕРВИРУЕМЫЕ
     СИСТЕМОЙ.
     
                 ТИП     НАЗНАЧЕНИЕ ФАЙЛА
     
               -------  --------------------------------------------------
     
                 МAC     ИСХОДНЫЙ ТЕКСТ НА ЯЗЫКЕ МАКРОАССЕМБЛЕРА
     
                 BAS     ИСХОДНЫЙ ТЕКСТ НА ЯЗЫКЕ БЕЙСИК
     
                 FOR     ИСХОДНЫЙ ТЕКСТ НА ЯЗЫКЕ ФОРТРАН
     
                 COB     ИСХОДНЫЙ ТЕКСТ НА ЯЗЫКЕ МИБОЛ
     
                 PLM     ИСХОДНЫЙ ТЕКСТ НА ЯЗЫКЕ ПЛ/М
     
                 PRN     ПРОТОКОЛ КОМПИЛЯЦИИ/АССЕМБЛИРОВАНИЯ
     
                 HEX     ШЕСТНАДЦАТЕРИЧНЫЙ МАШИННЫЙ КОД В СИМВОЛЬНОМ ВИДЕ
     
     
                 COM     МАШИННЫЕ КОДЫ ПРОГРАММЫ В АБСОЛЮТНЫХ АДРЕСАХ (ИМЯ ТАКИХ
     
                         ФАЙЛОВ БЕЗ УКАЗАНИЯ ТИПА ЗАДАЕТСЯ В КОМАНДНОЙ СТРОКЕ ПКК)
     
                 REL     ПЕРЕМЕЩАЕМЫЕ МАШИННЫЕ КОДЫ
     
                 BAK     ЗАПАСНОЙ ИСХОДНЫЙ ТЕКСТ РЕДАКТОРА
     
                 SUB     КОMАНДНЫЙ ФАЙЛ ПКК
     
                 LIB     ВСПОМОГАТЕЛЬНЫЙ ИСХОДНЫЙ ТЕКСТ РЕДАКТОРА
     
                 $$$     ПРОМЕЖУТОЧНЫЙ ИСХОДНЫЙ ТЕКСТ РЕДАКТОРА
     
              ДЛЯ ГРУППОВЫХ ОПЕРАЦИЙ НАД ФАЙЛАМИ ИСПОЛЬЗУЕТСЯ ФАЙЛОВАЯ ССЫ-
     ЛКА.  ФАЙЛОВАЯ ССЫЛКА ПРЕДСТАВЛЯЕТ СОБОЙ УКАЗАНИЕ НОМЕРА ДИСКА, ПСЕВД-
     ОИМЕНИ   ФАЙЛА И ПСЕВДОТИПА ФАЙЛА В БУФ И СЛУЖИТ ОБРАЗЦОМ, ПО КОТОРОМУ
     ОСУЩЕСТВЛЯ ЕТСЯ ПОИСК СООТВЕТСТВУЮЩИХ ОПИСАТЕЛЕЙ В КАТАЛОГЕ ДИСКА. 
             ОПИСАТЕЛЬ  УДОВЛЕТВОРЯЕТ ОБРАЗЦУ, ЕСЛИ ВСЕ СИМВОЛЫ, ВХОДЯЩИЕ В
     ИМЯ   И    ТИП   ФАЙЛА,   СОВПАДАЮТ  С СООТВЕТСТВУЮЩИМИ  СИМВОЛАМИ  В
     ПСЕВДОИМЕНИ  И ПСЕВДО  ТИПЕ  ФАЙЛА, ЗА ИСКЛЮЧЕНИЕМ ПОЗИЦИЙ, СОДЕРЖАЩИХ
     СИМВОЛ "?"(КОД 3FH).   
     
      5. 2.    БЛОК УПРАВЛЕНИЯ ФАЙЛОМ (БУФ)
     
              БЛОК УПРАВЛЕНИЯ ФАЙЛОМ ПРЕДСТАВЛЯЕТ СОБОЙ ОБЛАСТЬ ОЗУ, СОЗДА-
     ВАЕМУЮ  ПОЛЬЗОВАТЕЛЕМ ИЛИ КОМПИЛЯТОРАМИ ДЛЯ ОРГАНИЗАЦИИ РАБОТЫ С ФАЙЛ-
     АМИ. 
             ДЛЯ РАБОТЫ ФУНКЦИЙ СЛВВ НЕОБХОДИМО, ЧТОБЫ КАЖДЫЙ ФАЙЛ, К КОТО-
     РОМУ  ОСУЩЕСТВЛЯЕТСЯ ДОСТУП, ИМЕЛ СООТВЕТСТВУЮЩИЙ БУФ, СОДЕРЖАЩИЙ ИНФ-
     ОРМАЦИЮ ОБ  ИМЕНИ И РАЗМЕЩЕНИИ ФАЙЛА. 
               БУФ  СОСТОИТ ИЗ 33 БАЙТ В СЛУЧАЕ ПОСЛЕДОВАТЕЛЬНОГО ДОСТУПА И
     ИЗ 36  БАЙТ В СЛУЧАЕ ПРЯМОГО ДОСТУПА. 
              ФОРМАТ  ПЕРВЫХ  32  БАЙТОВ БУФ СОВПАДАЕТ С ФОРМАТОМ ОПИСАТЕЛЯ
     КАТАЛОГА.  НИЖЕ ПРИВЕДЕНА СТРУКТУРА БУФ : 
     
        --!---!---!---!---!---!---!---!---!---!---!---!---!---!---!---!---!---!---
        DR! F1! F2! //! F8! T1! T2! T3! EX! S1! S2! RC! D0! //! DN! CR! R0! R1! R2
        --!---!---!---!---!---!---!---!---!---!---!---!---!---!---!---!---!---!---
        00  01  02 ...  08  09  10  11  12  13  14  15  16 ...  31  32  33  34  35
     
     
             ГДЕ
     
             DR - НОМЕР ДИСКА ПРИНИМАЕТ ЗНАЧЕНИЯ ОТ 0 ДО 2. ПРИ ЭТОМ
     
                         0 - СООТВЕТСТВУЕТ АКТИВИЗИРОВАННОМУ ДИСКУ,
     
                         1 - СООТВЕТСТВУЕТ ДИСКУ С ИМЕНЕМ А,
     
                         2 - СООТВЕТСТВУЕТ ДИСКУ С ИМЕНЕМ B;
     
             F1...F8  - ИМЯ ФАЙЛА, СОСТОЯЩЕЕ ИЗ 1-8 БОЛЬШИХ ЛАТИНСКИХ БУКВ/ЦИФР
     
                        С НУЛЕВЫМИ СТАРШИМИ БИТАМИ. ИМЕНА КОРОЧЕ 8 СИМВОЛОВ ДОПОЛ-
     
                        НЯЮТСЯ СПРАВА ПРОБЕЛАМИ;
     
     
             Т1 Т2 Т3 - ТИП ФАЙЛА, СОСТОЯЩИЙ ИЗ 1-3 БОЛЬШИХ ЛАТИНСКИХ БУКВ/ЦИФР С
     
                        НУЛЕВЫМИ СТАРШИМИ БИТАМИ. ТИП, СОСТОЯЩИЙ МЕНЕЕ ЧЕМ ИЗ 3
     
                        СИМВОЛОВ ДОПОЛНЯЕТСЯ СПРАВА ПРОБЕЛАМИ.
     
                        СТАРШИЙ БИТ ПОЛЯ T1 ИСПОЛЬЗУЕТСЯ КАК ИНДИКАТОР ДОСТУПА
     
                        ФАЙЛА. ЕСЛИ ОН РАВЕН 1, ТО ФАЙЛ НАХОДИТСЯ В СОСТОЯНИИ R/O
     
                        (ТОЛЬКО ЧТЕНИЕ), ЕСЛИ - 0, ТО ФАЙЛ НАХОДИТСЯ В СОСТОЯНИИ
     
                        R/W (ЧТЕНИЕ/ЗАПИСЬ);
     
                        СТАРШИЕ БИТЫ ПОЛЕЙ Т2 И Т3 НЕ ИСПОЛЬЗУЮТСЯ, ЗАРЕЗЕРВИРОВА-
     
                        НЫ СИСТЕМОЙ;
     
             EX      -  ТЕКУЩИЙ НОМЕР ЭКСТЕНТА, ПОЛЬЗОВАТЕЛЕМ ОБЫЧНО УСТАНАВЛИВА-
     
                        ЕТСЯ В 0;
     
             S1      -  ЗАРЕЗЕРВИРОВАНО ДЛЯ ВНУТРЕННЕГО ИСПОЛЬЗОВАНИЯ;
     
             S2      -  ЗАРЕЗЕРВИРОВАНО ДЛЯ ВНУТРЕННЕГО ИСПОЛЬЗОВАНИЯ;
     
             RC      -  ЧИСЛО ЗАПИСЕЙ В ТЕКУЩЕМ ЭКСТЕНТЕ, ПРИНИМАЕТ ЗНАЧЕНИЯ ОТ 0
     
                        ДО 128;
     
             D0...DN -  НОМЕРА БЛОКОВ В ЭКСТЕНТЕ, ЗАПОЛНЯЮТСЯ СИСТЕМОЙ;
     
             CR      -  ТЕКУЩИЙ НОМЕР ЗАПИСИ В ЭКСТЕНТЕ, В ОПЕРАЦИЯХ ПОСЛЕДОВА-
     
                        ТЕЛЬНОГО ЧТЕНИЯ/ЗАПИСИ ПОЛЬЗОВАТЕЛЕМ ОБЫЧНО УСТАНАВЛИ-
     
                        ВАЕТСЯ В 0;
     
             R0,R1,R2 - НОМЕР ЗАПИСИ ПРИ ПРЯМОМ ДОСТУПЕ, R2 - БАЙТ ПЕРЕПОЛНЕНИЯ,
     
                        R0,R1 - СОДЕРЖАТ 16-БИТНОЕ ЗНАЧЕНИЕ С МЛАДШИМ БАЙТОМ В R0
     
                        И СТАРШИМ В R1.
     
              ДЛЯ ОСУЩЕСТВЛЕНИЯ ДОСТУПА К ФАЙЛАМ ПРОГРАММИСТ ДОЛЖЕН ЗАПОЛН-
     ИТЬ  С 0  ПО 12 БАЙТЫ БУФ, Т.Е. УКАЗАТЬ НОМЕР ДИСКА, ИМЯ И ТИП ФАЙЛА И
     НОМЕР  ОТКРЫ ВАЕМОГО/СОЗДАВАЕМОГО ЭКСТЕНТА. ЗАТЕМ НЕОБХОДИМО ВЫПОЛНИТЬ
     ФУНКЦИЮ "ОТКРЫ ТИЕ ФАЙЛА" ИЛИ "СОЗДАНИЕ ФАЙЛА" ДЛЯ ЗАПОЛНЕНИЯ ОСТАЛЬН-
     ЫХ ПОЛЕЙ БУФ. 
              ПРИ ВЫПОЛНЕНИИ ПОСЛЕДУЮЩИХ ОПЕРАЦИЙ ВВОДА/ВЫВОДА СЛВВ КОРРЕК-
     ТИРУЕТ   СОДЕРЖИМОЕ  БУФ, ОСУЩЕСТВЛЯЯ АВТОМАТИЧЕСКОЕ ОТКРЫТИЕ/СОЗДАНИЕ
     И ЗАКРЫТИЕ  ТЕКУЩИХ ЭКСТЕНТОВ ФАЙЛА. 
              ПО ОКОНЧАНИИ РАБОТЫ С ФАЙЛОМ ТЕКУЩАЯ ИНФОРМАЦИЯ ИЗ БУФ ЗАПИС-
     ЫВАЕТСЯ В  КАТАЛОГ ФУНКЦИЕЙ "ЗАКРЫТИЕ ФАЙЛА". 

     
      6.       СООБЩЕНИЯ ОБ ОШИБКАХ
     
                ПРИ РАБОТЕ СУВВ МОЖЕТ ВЫДАВАТЬ СЛЕДУЮЩИЕ СООБЩЕНИЯ ОБ ОШИБ-
     КАХ:
     
             BDOS ERR ON D: BAD SECTOR    - ОШИБКА ПРИ ЧТЕНИИ/ЗАПИСИ НА ДИСК
     
             BDOS ERR ON D: SELECT        - НEСУЩЕСТВУЮЩИЙ НОМЕР УСТРОЙСТВА
     
             BDOS ERR ON D: R/O           - ПОПЫТКА ЗАПИСИ НА ДИСК R/O
     
             BDOS ERR ON D: FILE R/O      - ПОПЫТКА ЗАПИСИ В ФАЙЛ R/O
     
     
             СФВВ МОЖЕТ ВЫДАВАТЬ РЯД СООБЩЕНИЙ  ОБ ОШИБКАХ ПРИ РАБОТЕ С ДИСКАМИ.
     
        ЭТИ СООБЩЕНИЯ ИМЕЮT СЛЕДУЮЩИЙ ФОРМАТ:
     
             * BIOS ERROR * (D): F  TT/SS  HHHH  CODE=XX
     
             ГДЕ
     
             D     - ИМЯ ДИСКА. ПРИНИМАЕТ ЗНАЧEНИЕ А ИЛИ В;
     
             F     - ФУНКЦИЯ, ПРИ ВЫПОЛНЕНИИ КОТОРОЙ ПРОИЗОШЛА ОШИБКА. ПРИНИМАЕТ
     
                     ЗНАЧЕНИЕ R, ЕСЛИ ОШИБКА ПРОИЗОШЛА ПРИ ЧТЕНИИ С ДИСКА, W - ПРИ
     
                     ЗАПИСИ НА ДИСК;
     
             ТТ    - НОМЕР ДОРОЖКИ;
     
             SS    - НОМЕР СЕКТОРА;
     
             НННН  - АДРЕС ВНУТРЕННЕГО БУФЕРА СФВВ ИЛИ БУФЕРА ОБМЕНА, УСТАНОВЛЕН-
     
                     НЫЙ ФУНКЦИЕЙ 26;
     
             XX    - КОД ОШИБКИ.
     
     
             КОД ОШИБКИ МОЖЕТ ПРИНИМАТЬ СЛЕДУЮЩИЕ ЗНАЧЕНИЯ:
     
             01 - НЕ СОВПАДАЕТ КОНТРОЛЬНАЯ СУММА ДАННЫХ;
     
             02 - УСТРОЙСТВО НЕ ГОТОВО;
     
             03 - ЧТЕНИЕ СТЕРТЫХ ДАННЫХ;
     
             04 - НЕДОПУСТИМЫЙ НОМЕР ДОРОЖКИ;
     
             05 - НЕДОПУСТИМЫЙ НОМЕР СЕКТОРА;
     
             06 - НЕДОПУСТИМЫЙ НОМЕР УСТРОЙСТВА;
     
             07 - НЕ СОВПАДАЕТ КОНТРОЛЬНАЯ СУММА ЗАГОЛОВКА;
     
             08 - НЕТ АДРЕСНОГО МАРКЕРА ДАННЫХ.
     
        ДЛЯ ПОЛЬЗОВАТЕЛЯ ОС CP/M ПОЛУЧЕНИЕ ОШИБКИ С КОДОМ 04, 05 ИЛИ 06 ОЗНА-
     
     ЧАЕТ, ЧТО В РЕЗУЛЬТАТЕ РАБОТЫ ЕГО ПРОГРАММЫ ИСПОРЧЕНА СФВВ.
     
          
        ЕСЛИ ОШИБКА ПРОИЗОШЛА ПРИ РАБОТЕ С ДРУГИМИ ПЕРИФЕРИЙНЫМИ УСТРОЙСТВА-
     
     МИ, ТО ВЫДАЕТСЯ СООБЩЕНИЕ СЛЕДУЮЩЕГО ФОРМАТА:
          
     
             * BIOS ERROR *  UUU  CONTINUE? (Y/I)
     
     
             ГДЕ UUU - ИМЯ ЛОГИЧЕСКОГО УСТРОЙСТВА. ПРИНИМАЕТ ЗНАЧЕНИЕ LST, RDR,
     
                       PUN
     
             НА ВОПРОС CONTINUE? (ПРОДОЛЖАТЬ?) ПОЛЬЗОВАТЕЛЬ ДОЛЖЕН ВВЕСТИ:
     
             Y - ЧТОБЫ ПОВТОРИТЬ ОБРАЩЕНИЕ К УСТРОЙСТВУ;
     
             I - ЧТОБЫ ВЕРНУТЬСЯ В СВОЮ ПРОГРАММУ, ИГНОРИРУЯ ОШИБКУ;
     
             ВВОД ЛЮБОГО ДРУГОГО СИМВОЛА ВЫЗОВЕТ ПЕРЕЗАГРУЗКУ СИСТЕМЫ.
     
              ЕСЛИ  ПРОИЗОШЕЛ ОБРЫВ ПЕРФОЛЕНТЫ ПРИ ВВОДЕ, ТО ВВОД СИМВОЛА I
     В  ОТВЕТ   НА  СООБЩЕНИЕ  ОБ  ОШИБКЕ, ВЫЗОВЕТ ВОЗВРАТ В ПРОГРАММУ КОДА
     1АH, ЧТО ОЗНАЧАЕТ  КОНЕЦ ФАЙЛА. ТАКИМ ОБРАЗОМ ПОЛЬЗОВАТЕЛЬ СМОЖЕТ СОХ-
     РАНИТЬ ВВЕДЕНУЮ ЧАСТЬ  ИНФОРМАЦИИ.
     
                              ПЕРЕЧЕНЬ ССЫЛОЧНЫХ ДОКУМЕНТОВ
     
     
             1  ОПЕРАЦИОННАЯ СИСТЕМА CP/M       ОПИСАНИЕ ПРИМЕНЕНИЯ
     
             2  ОПЕРАЦИОННАЯ СИСТЕМА   ОС CP/M  МОНИТОР ОПЕРАЦИОННОЙ СИСТЕМЫ
     
                РУКОВОДСТВО ПРОГРАММИСТА