≡ Передовица » Макулатура » Штатная документация » Агат-7 Книга 6 » ДОС Руководство программиста 1985
ДОС Руководство программиста 1985УТВЕРЖДЕН Фг.00003-02 33 06-ЛУ МАШИНА ВЫЧИСЛИТЕЛЬНАЯ ЭЛЕКТРОННАЯПЕРСОНАЛЬНАЯ "АГАТ"Программное обеспечениеДисковая операционная системаРуководство программистаФг.00003-02 33 061985
* * *АННОТАЦИЯВ настоящем документе описывается назначение, условия применения, основные характеристики дисковой операционной системы (ДОС). Приводятся входные и выходные данные и основные сообщения об ошибках. СОДЕРЖАНИЕ1. Назначение и условия применения программы 4 2. Характеристики программы 4 3. Обращение к программе 5 3.1. Начальная загрузка ДОС 5 3.2. Диалог ДОС 6 3.3. Программные команды ДОС 9 4. Входные и выходные данные 14 5. Сообщения об ошибках 16 1. НАЗНАЧЕНИЕ И УСЛОВИЯ ПРИМЕНЕНИЯ ПРОГРАММЫДОС ПЭВМ "АГАТ" предназначена для создания, сопровождения и уничтожения наборов данных (файлов) пользователя на накопителе на гибком магнитном диске (НГМД) ЕС5088.02. ДОС позволяет работать с файлами трех типов, при этом предусмотрена возможность расширения набора типов в соответствии с потребностями пользователя. Объем оперативной памяти, необходимый для работы ДОС, составляет минимум 10К байт и зависит от количества одновременно активных файлов, достигая в максимуме при 16 активных файлах 21К байт. ДОС позволяет одновременно обслуживать до 10 НГМД ЕС5088.02. ДОС совместима со всеми элементами программного обеспечения ПЭВМ "АГАТ". Необходимым для работы ДОС является наличие в постоянном запоминающем устройстве (ПЗУ) программы "Системный монитор" (см. Фг.00003-02 12 01). 2. ХАРАКТЕРИСТИКА ПРОГРАММЫДОС обеспечивает обмен с накопителем со скоростью 2.5К байт/с. Разброс временных характеристик НГМД компенсируется автоматически. Предусмотрена автоматическая настройка программы на конфигурацию оперативного запоминающего устройства (ОЗУ) ПЭВМ "АГАТ", благодаря чему ДОС без изменения может работать на любой модели семейства ПЭВМ "АГАТ". При одновременном нажатии клавиши СБР и УПР на клавиатуре ПЭВМ "АГАТ" выполняется "теплый" перезапуск ДОС, при котором устанавливается исходное состояние всех признаков с сохранением всей информации, загруженной пользователем в ОЗУ. Контроль обмена выполняется побайтно за счет специального кодирования. Кроме того, проверяются поблочно (256 байт) контрольные суммы информации. 3. ОБРАЩЕНИЕ К ПРОГРАММЕ3.1. Начальная загрузка ДОС При начальной загрузке программа записывается с гибкого магнитного диска (ГМД) в ОЗУ. Пусть контроллер НГМД расположен в разъеме Х (от 2 до 6). Для выполнения загрузки достаточно передать управление на адрес $CX00, что осуществляется также командами PR#X языка "Бейсик" или "X УПР-И" программы "Системный монитор". Процесс загрузки занимает не более 1 минуты, при этом настройка и загрузка программ происходит автоматически и не требует вмешательства оператора. После загрузки ДОС происходит автоматическая загрузка системы программирования (например, интерпретатора языка "Бейсик"). После загрузки системы программирования управление автоматически передается на данный загрузочный файл и таким образом система программирования начинает работать. Все это происходит без вмешательства оператора. Файл, содержащий систему программирования, должен иметь имя такое же как и при выполнении директивы INIT с данным ГМД. Кроме того, этот файл должен быть типа В. При выполнении директивы INIT на ГМД появляется файл типа А, который необходимо переименовать (RENAME) или удалить (DELETE), а файл, содержащий систему программирования, записать на ГМД (BSAVE) с именем, которое использовалось в директиве INIT. На поставляемых в комплекте ПЭВМ "АГАТ" ГМД старовый файл называется "HELLO" и содержит интерпретатор языка "Бейсик". 3.2. Диалог ДОС В настоящем подразделе описаны приказы с клавиатуры, исполняемые ДОС. При работе ДОС набор приказов добавляется к языку приказов используемой системы программирования. При этом каждая введенная строка вначале анализируется в ДОС. Если распознан приказ ДОС, он используется, в противном случае строка передается анализатору приказов системы программирования. В связи с этим, как правило, при ошибке в ключевом слове приказа ДОС, выдается диагностика ошибки диалога используемой системы программирования. В дальнейшем изложении: s - номер разъема, в котором установлен НГМД (2-6); d - номер привода под которым подключен НГМД (1-2). В исполнении ПЭВМ с одним НГМД всегда d=1; v - номер тома, сформированный при инициализации диска. Фрагменты приказа, заключенные в фигурные скобки { }, могут опускаться. При этом используются значения, установленные предыдущим приказом. При начальной загрузке s и d устанавливаются автоматически, при этом s равно максимальному номеру разъема, в котором установлен НГМД, а d=1. 3.2.1. Общие команды 3.2.1.1. CATALOG {,Ss}{,Dd}{,Vv} - чтение каталога с ГМД. По этой директиве на экран видеоконтрольного устройства (ВКУ) выводится каталог ГМД. В каталоге ГМД по каждому из записанных на нем файлов отображается: тип файла (А - Бейсик-программа, B - двоичный, T - текстовый, I - Бейсик-данные; размер файла в секторах (1 сектор - 256 байт); имя файла. Имя файла должно начинаться с буквы и может содержать до 30 произвольных символов, исключая символ ",". 3.2.1.2. Инициализация ГМД Для этого необходимо вставить чистый ГМД в НГМД и дать приказ: INIT{ имя файла } {,Ss}{,Dd}{,Vv} ГМД находится в работе около одной минуты. Если никаких сообщений не выдано, то в каталоге ГМД можно увидеть единственный файл с указанным именем. При инициализиции ГМД следует учитывать предпологаемый характер его использования и конфигурацию ПЭВМ "АГАТ", на которой ГМД будет эксплуатироваться. Если ГМД должен обеспечивать "холодный" запуск ПЭВМ "АГАТ", либо когда предполагается загружать с ГМД отличную от размещенной в памяти эмулятора ПЗУ систему программирования, следует дополнить описанную процедуру инициализации записью на ГМД двоичного файла (пп.3.2, 3.1), содержащего интерпретатор "Бейсик" или другую систему программирования. Имя этого файла указывается в директиве INIT. Поскольку при разметке записывается файл типа А, для записи интерпретатора "Бейсик" на ГМД требуется предварительно удалить этот файл директивой DELETE или переименовать его (RENAME). 3.2.1.3. Переименование файлов Любой файл может быть переименован по директиве: RENAME ФАЙЛ1,ФАЙЛ2 {,Ss}{,Dd}{,Vv} Здесь ФАЙЛ1 - старое имя файла, ФАЙЛ2 - новое имя. 3.2.1.4. Уничтожение файлов Любой файл может быть уничтожен по директиве: DELETE имя файла {,Ss}{,Dd}{,Vv} 3.2.1.5. Защита файла на запись Любой файл может быть защищен от записи следующей директивой: LOCK имя файла {,Ss}{,Dd}{,Vv} Файл, защищенный от записи, в каталоге маркируется звездочкой (*). 3.2.1.6. Снятие защиты на запись Защита от записи с любого файла может быть снята директивой: UNLOCK имя файла {,Ss}{,Dd}{,Vv} 3.2.1.7. MON {C,} {I,} {O} - подключает изображение на экран команд и информации, проходящих в программном режиме исполнения (см.п. 3.3). Указание C задает вывод команд, I - текста, вводимого с ГМД, О - текста, выводимого на ГМД. Хотя бы одно из указаний должно присутствовать. 3.2.1.8. NOMON {C} {,I} {,O} - отключает отображение, заданное командой MON. Запятые в командах MON и NOMON можно опускать. При начальной загрузке устанавливается NOMON C,I,O. 3.2.1.9. MAXFILES n - резервирует n буферов для активных файлов размером 256 байт каждый. При начальной загрузке n=3. 3.2.2. Работа с файлами типа A (программы на языке "Бейсик") 3.2.2.1. LOAD имя файла {,Ss}{,Dd}{,Vv} - загружает программу с ГМД. Программа и данные, находившиеся в памяти, теряются. 3.2.2.2. SAVE имя файла {,Ss}{,Dd}{,Vv} - записывает программу из памяти на ГМД, если на ГМД уже есть файл с такими координатами, он теряется и заменяется на новый. 3.2.2.3. RUN имя файла {,Ss}{,Dd}{,Vv} - загружает с ГМД и запускает программу. Программа и данные в памяти теряются. 3.2.2.4. CHAIN имя файла {,Ss}{,Dd}{,Vv} - загружает с ГМД и запускает программу. Программа в памяти теряется, данные передаются запускаемой программе. 3.2.3. Работа с файлами типа B (двоичные) Здесь a - начальный адрес, l - длина двоичного файла. Требуется указывать десятичное значение, либо шестнадцатеричное с признаком "$" (например, A$1000, L4906). 3.2.3.1. BLOAD имя файла {,Aa}{,Ss}{,Dd}{,Vv} - загружает файл с адресом A. Если адрес A не указан, загрузка выполняется с адреса, указанного при записи на ГМД. 3.2.3.2. BSAVE имя файла{, Aa}{, Ll} {,Ss}{,Dd}{,Vv}- записывает указанную зону памяти на ГМД. 3.2.3.3. BRUN имя файла {,Aa}{,Ss}{,Dd}{,Vv} - то же, что и в п.3.2.3.2 с последующей передачей управления на начальный адрес файла. 3.3. Программные команды ДОС Все команды диалога ДОС предоставляются для программных обращений в том же виде, как описано в п.3.2. Строка, содержащая текст приказа, для этого посимвольно передается на вывод подпрограммой из COUT "Системный монитор" (см. Фг.00003-02 12 01), но перед ней выводится символ с кодом $84 (CHR$(4) в языке "Бейсик", УПР-М с клавиатуры). Программы на языке "Бейсик" передают команды для ДОС оператором PRINT, реальный вывод этой строки на экран выполняется в зависимости от состояния по режиму C команд MON/NOMON (см.пп. 3.2.1.7, 3.2.1.8). Следует учитывать, что управляющий код должен выводиться в первой позиции строки, гарантией этого может служить вывод перед ним кода КОНЕЦ СТРОКИ или $8D (CHR$(13) или PRINT в языке "Бейсик"). Пример программного выполнения команды CATALOG в программе на языке "Бейсик": 110 PRINT:PRINT CHR$(4);"CATALOG" В программе на ассемблере: !LDX#0 !ЦИКЛ : LDA КОМАНДА, X !JSR COUT !INX !CPX#> КОНЕЦ - КОМАНДА + 1 !BNE ЦИКЛ !RTS !КОМАНДА : $8D84 !"CATALOG" !КОНЕЦ: $8D Кроме команд диалога, для программных обращений предоставляется еще набор команд работы с текстовыми файлами. Эти команды имеют аналогичный текстовый формат, но не разрешены в прямом диалоге. В настоящем подразделе описaны также программные обращения к ДОС, позволяющие проводить обмен с ГМД по физическим адресам. 3.3.1. Работа с файлами типа Т (текстовые) Предусмотрено два вида текстовых файлов: файлы с последовательным доступом, в которых хранится сплошная последовательность символов, и файлы с прямым доступом, содержащие записи фиксированной длины. В данном пунктe: b - номер байта в файле с последовательным доступом или в записи файла с прямым доступом, r - номер записи в файле с прямым доступом, j - размер записи файла с прямым доступом. 3.3.1.1. Открытие файла OPEN имя файла {,Ss}{,Dd}{,Vv} - для последовательного доступа, OPEN имя файла ,Lj {,Ss}{,Dd}{,Vv} - для прямого доступа (1 ≤ j ≤ 32767). Открытие отсутствующего файла приводит к созданию пустого файла, открытие файла с именем, имеющимся на ГМД, позиционирует файл на начало. 3.3.1.2. Закрытие файла CLOSE {имя файла} {,Ss}{,Dd}{,Vv} - для последовательного доступа. CLOSE {имя файла} {,Ss}{,Dd}{,Vv} - для прямого доступа. 3.3.1.3. Запись в файл WRITE имя файла {,Bb} - для последовательного доступа, WRITE имя файла {,Rr}{,Bb} - для прямого доступа. После выполнения команд OPEN и WRITE любой вывод из программы, выполняемый с помощью программы "Системный монитор" или PRINT "Бейсика", направляется в открытый текстовый файл. На экране результаты вывода появляются в зависимости от состояния "О" команд MON/NOMON (см.пп. 3.2.1.7, 3.2.1.8). При записи в ранее созданный файл старая запись замещается новой. Если требуется дополнить файл, следует вместо OPEN пользоваться APPEND (см.п. 3.3.1.7). 3.3.1.4. Чтение из файла READ имя файла {,Bb} - для последовательного доступа, READ имя файла {,Rr}{,Bb} - для прямого доступа. После выполнения OPEN и READ весь ввод с помощью программы "Системный монитор" или INPUT и GET "Бейсика", запрашиваемый при выполнении программы пользователя (но не ввод, запрашиваемый в диалоге "Бейсик"), выполняется из открытого текстового файла. Отображение данных на экране задается состоянием "I" команд MON/NOMON. 3.3.1.5. Исполнение из текстового файла EXEC имя файла {,Rr}{,Ss}{,Dd}{,Vv} После исполнения команды весь ввод с помощью программы "Системный монитор" выполняется из текстового файла до тех пор, пока в нем не встретится команда CLOSE без предшествующей ей OPEN, либо до исчерпания файла. Вводимые команды диалогов различных подсистем исполняются по мере поступления, ввод запускаемых при этом программ также производится из исполняемого файла (кроме случая, когда запущенная программа открыла для себя другой файл на чтение). Команда EXEC может использоваться в прямом диалоге ДОС. 3.3.1.6. Позиционирование файла POSITION имя файла {,Rr} - пропускает r записей в файле (записей заданной длины для прямого доступа, символов "конец строки" для последовательного доступа). Выключает режим чтения и записи. 3.3.1.7. Наращивание файла с последовательным доступом APPEND имя файла {,Ss}{,Dd}{Vv} - открывает файл и позиционирует его на последний символ. Последующий WRITE будет наращивать файл. Защита по записи на открытый командой APPEND файл не распространяется. 3.3.2. Обращение за информацией по физическим адресам Для программных обращений предоставляется доступ к ГМД по физическим адресам. ГМД размечается на 35 дорожек - треков, на каждом из которых размещается 16 секторов. Нумерация треков ведется с 0 от внешней окружности к центральному отверстию. В стандартном варианте треки 0,1,2 заняты программами ДОС, на треке 17 хранится каталог ГМД. Остальные треки предоставляются пользователю. Для обращения к ЧЗТС (подпрограмма чтения/записи треков и сектора) необходимо иметь в памяти две таблицы, формат которых описан в разделе 4. Адрес табл.1 помещается в регистры А (старший байт) и Y (младший байт), после чего управление передается по адресу $3D9. Пример обращения к ЧЗТС (чтение 7 сектора 9 трека с НГМД на разъеме 3 без учета номера тома в буфер по адресу БУФЕР): *$1000: !LDA #< ТАБЛ1 !LDY #> ТАБЛ1 !JSR $3D9 !LDA ТАБЛ1+13 !STA ANSER !RTS !ТАБЛ1: $1300100; ТИП ТАБЛИЦЫ, РАЗЪЕМ, ПРИВОД, ТОМ !$0907; ТРЕК, сектор ! = ТАБЛ2 ! = БУФЕР !#2; НЕ ИСПОЛЬЗУЕТСЯ !$01 !#4; ОСТАЛИСЬ ОТ ПРЕДЫДУЩЕГО ОБРАЩЕНИЯ ! ТАБЛ2: $0001E 8 ! : CALL $1000 IF PEEK(ANSER)>0 THEN PRINT "ОШИБКА": STOP В ДОС таблица 1 размещается по адресу $B7E8, таблица 2 - по адресу $B7FB. 4. ВХОДНЫЕ И ВЫХОДНЫЕ ДАННЫЕВходными данными ДОС служат директивы диалога и параметры программных обращений, выходными данными - результаты обмена с ГМД и сообщения об ошибках обращения (см. разделы 3 и 5). Ниже приведена структура таблиц, используемых при обращениях к программе ЧЗТС (см. табл.1 и 2). Таблица 1 --------------------------------------------------- БАЙТ ! СОДЕРЖИМОЕ --------------------------------------------------- 1 ! тип таблицы = $01 2 ! номер разъема НГМД, умноженный на $10 3 ! номер привода НГМД на контроллере 4 ! номер тома НГМД. Если $00 - игнорировать номер тома 5 ! номер трека ($00 - $22) 6 ! номер сектора ( $00 - $0F) 7-8 ! адрес табл.2 9-10 ! адрес буфера для чтения/записи 11-12 ! не используются 13 ! код работы: ! 0-включить НГМД, подвести головку ! 1-чтение 256 байт в буфер ! 2-запись 256 байт из буфера ! 4-разметка ГМД 14 ! код завершения обмена: ! 0-нормальное завершение ! $10-ГМД защищен от записи ! $20-не тот номер тома ! $40-сбой ГМД ! $80-сбой при чтении 15 ! номер тома ГМД (предыдущее обращение 16 ! $10*S (номер разъема в старшей цифре - предыдущее обращение) 17 ! d (номер ГМД-предыдущее обращение) Таблица 2 --------------------------------------------------- БАЙТ ! СОДЕРЖИМОЕ --------------------------------------------------- 1 ! тип устройства (0) 2 ! число обращений на трек (I) 3-4 ! коды $EFD8 5. СООБЩЕНИЯ ОБ ОШИБКАХВсего ДОС индицирует 15 ошибок различного рода и на уровне языка "Бейсик" они распечатываются в развернутой форме, не требующей пояснений. На уровне монитора выводится код ошибки, при этом код ошибки имеет следующий смысл: 01 - язык не доступен системе (нет интерпретатора языка "Бейсик") 02,03 - ошибка в диапазоне 04 - ГМД защищен на запись 05 - чтение после конца данных 06 - файл не найден 07 - не тот том (неправильно указан параметр) 08 - ошибка ввода-вывода 09 - ГМД полностью использован и дальнейшая запись на него невозможна 0А - файл защищен на запись 0В - синтаксическая ошибка 0C - нет свободных буферов ввода-вывода 0D - команда не для этого типа файла 0E - нет конца программы 0F - команда недоступна в прямом диалоге * * ** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |