Радио-86РК/Радио 03-93/ДОС: различия между версиями
Panther (обсуждение | вклад) (http://retro.h1.ru/RK86/DOS_RK/DOS_RK.php) |
Panther (обсуждение | вклад) |
||
Строка 98: | Строка 98: | ||
Пример: | Пример: | ||
А> RENAME START.TXT. AUTOEXEC.BAT | А> RENAME START.TXT. AUTOEXEC.BAT | ||
В> RENAME A:START.TXT START.DOC | В> RENAME A:START.TXT START.DOC | ||
Строка 108: | Строка 108: | ||
Пример: | Пример: | ||
А> ERASE START.TXT | А> ERASE START.TXT | ||
А> ERASE В:*.BIN | А> ERASE В:*.BIN | ||
'''FORMAT диск:(/SN)''' — форматирование (разметка) диска. Диск подготавливается для работы с ДОС ПЭВМ «РАДИО-86РК», ранее записанная на нем информация теряется. Операция сравнительно продолжительная и зависит по времени от качества дискеты. Параметр '''/SN''' задает длину каталога, где N — длина в секторах от 1 до 99. По умолчанию длина каталога при форматировании 4 сектора. По завершении операции выводится сообщение о количестве годных свободных секторов. Если дискета хорошего качества и ДОС при форматировании не забракует ни один сектор, а под каталог отведено 4 сектора, то количество свободных секторов будет равно 795. | '''FORMAT диск:(/SN)''' — форматирование (разметка) диска. Диск подготавливается для работы с ДОС ПЭВМ «РАДИО-86РК», ранее записанная на нем информация теряется. Операция сравнительно продолжительная и зависит по времени от качества дискеты. Параметр '''/SN''' задает длину каталога, где N — длина в секторах от 1 до 99. По умолчанию длина каталога при форматировании 4 сектора. По завершении операции выводится сообщение о количестве годных свободных секторов. Если дискета хорошего качества и ДОС при форматировании не забракует ни один сектор, а под каталог отведено 4 сектора, то количество свободных секторов будет равно 795. |
Версия от 13:38, 12 декабря 2008
Данный материал защищён авторскими правами!
Использование материала заявлено как добросовестное, исключительно для образовательных некоммерческих целей. Автор: Е. СЕДОВ, А. МАТВЕЕВ |
Дисковая операционная система (ДОС) ПЭВМ «Радио-86РК» совместно с контроллером [Л] обеспечивают запись, считывание и обработку информации, хранящейся в виде файлов на гибких магнитных дисках (ГМД) диаметром 5,25 дюйма (130 мм).
ДОС может работать с одним или двумя накопителями с логическими именами А: и В: и номерами 0 и 1. Если имеется один накопитель, ему присваивается номер 0 и имя А:. Буквы латинские (нижний регистр клавиатуры), двоеточие после букв являются признаком накопителя и при диалоге с операционной системой обязательны.
ДИАЛОГ С ДОС
Диалог с ДОС заключается в вводе команд набором на клавиатуре и выводе ответных системных сообщений на экран дисплея.
Адрес запуска ДОС Е000Н. По команде МОНИТОРа GE000 активизируется накопитель с логическим номером 0 и, если это первый запуск ДОС после включения ПЭВМ, начинается поиск на диске файла автозапуска системы AUTOEXEC.BAT (см. раздел статьи «Исполняемые файлы»). Если на диске его нет, на экран дисплея будет выведено сообщение FILE NOT FOUND и приглашение ДОС к вводу команд:
А>
Это означает, что система готова к выполнению операций с накопителем А:. Для смены текущего накопителя при работе с двумя НГМД достаточно набрать имя второго накопителя, двоеточие и нажать клавишу «ВК». Переходе накопителя А: на В: на экране дисплея отобразится так:
А>В:
Если второй накопитель существует и в нем установлен ГМД он станет активным и появится приглашение к работе с накопителем В:
В>
В противном случае последует сообщение:
NO DISK
а текущим останется накопитель А:.
Если за именем накопителя указать одну из команд ДОС, то после смены накопителя она будет выполнена, например:
А>В: DIR
Произойдет смена текущего накопителя с А: на В: и на экране появится каталог ГМД, установленного в накопитель В:. Смена текущего накопителя не произойдет, если имя накопителя указать после команды:
А> DIR В:
Отметим, что пробел между командой и именем накопителя обязателен. ДОС игнорирует пробелы, но в этом и других подобных случаях без пробела она не сумеет правильно идентифицировать команду, так как слитное написание DIRB: будет воспринято ДОС как неизвестная команда.
ФАЙЛЫ
Файл — это любая поименованная информация на физическом носителе (в данном случае ГМД): тексты, коды или данные. В зависимости от характера информации файлы классифицируются по типу (расширению имени). Расширение имени дается файлу программой, его создавшей, или же оператором. В имени допускается использовать от 1 до 10 алфавитно-цифровых символов, в обозначении типа 1—3 символа. Тип может отсутствовать. Имя и тип образуют полное имя файла. Идентификация файлов производится ДОС по имени и типу.
ШАБЛОНЫ ИМЕН ФАЙЛОВ
Очень часто при работе с ГМД возникает необходимость обработки группы файлов, имеющих сходные имена или типы. В этих случаях удобно пользоваться шаблонами. В шаблонах применяются символы «*» (звездочка), заменяющие любое количество любых, в том числе и отсутствующих символов, и «?» (знак вопроса), заменяющий любой один символ. Поясним роль этих символов на примере использования шаблонов в команде DIR :
А> DIR А*.* — вывод всех файлов, имена которых начинаются с буквы «А», независимо от расширения; A> DIR *ON.* — вывод всех файлов, имена которых оканчиваются на «ON», независимо
от типа файла;
А> DIR ?.TXT — на экран выведутся все файлы с расширением ТХТ, имена которых
состоят из любого одного символа;
А> DIR L?L.* — все файлы, имена которых состоят из трех символов, начинающиеся
и оканчивающиеся буквой «L», независимо от типа.
КОМАНДЫ ДОС
Общий формат команд ДОС следующий:
КОМАНДА (ИМЯ НАКОПИТЕЛЯ:)
Параметр (ИМЯ НАКОПИТЕЛЯ:) является необязательным, при его отсутствии подразумевается текущий (активный) накопитель. Здесь и далее необязательные параметры команд ДОС заключены в фигурные скобки.
Команды ДОС подразделяются на встроенные и внешние. Подпрограммы выполнения встроенных команд хранятся в ПЗУ ДОС, в то время как подпрограммы внешних команд — на гибком диске.
ВСТРОЕННЫЕ КОМАНДЫ
DIR {диск:} (имя.тип) — вывести на экран каталог диска, где {диск:} —накопитель А: или B :, логическое имя диска и имя файла могут отсутствовать. При исполнении команды DIR выводится список имен файлов с указанием типа. Справа от имени — размер файла в секторах, а в конце списка — количество файлов и количество свободных секторов на диске. Нажатие клавиши «ПРОБЕЛ» приостанавливает вывод на экран, любой другой после этого — продолжает его, нажатие «F4» приводит к досрочному завершению исполнения команды. Вывод по этой команде «каталога» одного файла производят дня получения информации о его размере.
TYPE {диск:} имя [.тип) — распечатать содержимое файла на экране. Действие клавиш «ПРОБЕЛ» и «F4» аналогично их действию в команде DIR . Если тип файла не указан, то будет распечатан первый встреченный на диске файл с указанным именем. Использование шаблонов здесь не допускается.
Пример:
А> TYPE ОПИСАНИЕ1.ТХТ
LOAD {диск:} имя(.тип) —загрузить файл в память компьютера. Если тип файла не указан, будет загружен первый встреченный на диске файл с указанным именем. Использование шаблонов не допускается.
Пример:
А> LOAD BASIC
SAVE {диск:} имя(.тип), адрес начала, адрес конца — запись содержимого области памяти на диск. Адреса начала и конца программы задаются так же, как и в команде O системного МОНИТОРа компьютера. Допускается работа с интервалами ОЗУ 0000-71FFH и 76D0H −7FFFH . Следует помнить, что верхняя граница 71FFH может быть значительно меньшей во всех случаях, когда команда выполняется из пакетного файла (а не после ввода с клавиатуры ПЭВМ) либо когда открыт файл для чтения или записи.
Примеры:
А> SAVE В:BASIC.COM,0,22FF А> SAVE PACMAN.COM,6000,71FF
При попытке указать недопустимые значения параметров команды на экран будет выведено сообщение о синтаксической ошибке: SYNT ERR
ВНЕШНИЕ КОМАНДЫ
При выполнении внешней команды операционная система загружает необходимый файл с диска в ОЗУ компьютера и запускает его на исполнение. Очевидно, что предварительно необходимо установить в накопитель диск, на котором находятся файлы с внешними командами.
RENAME {диск:} имя1.тип1, имя2(.тип2) — переименовать файл. Здесь имя1.тип1 — старое полное имя файла, а имя2(.тип2) — новое. Если файл с присваиваемым именем на диске уже имеется, то последует сообщение об ошибке. Шаблоны использовать нельзя.
Пример:
А> RENAME START.TXT. AUTOEXEC.BAT В> RENAME A:START.TXT START.DOC
Во втором случае файл с подпрограммой внешней команды RENAME будет загружен с накопителя В: и переименует файл START.TXT на накопителе А:.
ERASE {диск:} имя.тип — удалить файл. Команда допускает использование шаблонов, в этом случае будут удалены все файлы, имена которых соответствуют указанному шаблону. При использовании шаблона «*.*» удаляются все незащищенные от записи файлы (см. описание команды ATTRIB).
Пример:
А> ERASE START.TXT А> ERASE В:*.BIN
FORMAT диск:(/SN) — форматирование (разметка) диска. Диск подготавливается для работы с ДОС ПЭВМ «РАДИО-86РК», ранее записанная на нем информация теряется. Операция сравнительно продолжительная и зависит по времени от качества дискеты. Параметр /SN задает длину каталога, где N — длина в секторах от 1 до 99. По умолчанию длина каталога при форматировании 4 сектора. По завершении операции выводится сообщение о количестве годных свободных секторов. Если дискета хорошего качества и ДОС при форматировании не забракует ни один сектор, а под каталог отведено 4 сектора, то количество свободных секторов будет равно 795.
ATTRIB {диск:} имя(.тип), W/N или
ATTRIB {диск:} имя(.тип}, R/N — запись атрибутов файла. Возможно применение шаблонов.
W — установить (N=1) или снять (N=0) защиту от удаления файла или от записи новой информации под тем же именем. Защищенные файлы в каталоге помечаются звездочкой слева от имени.
R — установить (N=1) или снять (N=0) защиту от вывода имени файла на экран командой DIR . В случае длинного каталога удобно часть файлов, например системных, для более компактного вывода «скрыть».
Примеры:
А> ATTRIB ASM.COM,W/1 А> ATTRIB *.SYS,R/1 A> ATTRIB В:*.COM,W/0 А> ATTRIB *.*,R/0
FCOPY имя.тип — копирование файлов на одном дисководе. После чтения файла с эталонного диска-образца произойдет остановка для установки диска-копии. На запросы ДОС отвечают после установки соответствующего диска нажатием любой клавиши. На диске-оригинале должен быть файл с подпрограммой команды копирования FCOPY.SYS.
Пример:
А> FCOPY ASM.COM
FCOPY2 имя.тип — копирование файле с текущего накопителя на второй. Копирование происходит без остановки, в накопителях заранее должны быть установлены диски (оригинал — в текущем). На диске-оригинале должен быть файл FCOPY2.SYS.
Пример:
А> FCOPY2 FORT.COM >
TCOPY2 {диск:} имя.тип — копирование файла с диска на магнитофон в формате директивы О МОНИТОРа компьютера. Файл TCOPY2.SYS должен находиться на диске оригинале. После загрузки копируемого файла сразу же начнется его вывод для записи на магнитофон.
Пример:
А> TCOPY2 BASIC.COM
LOADA {диск:} имя(.тип) —то же, что LOAD, но с выдачей адресов начала и конца загруженного файла. На диске-оригинале должен быть файл LOADA.SYS.
SE — запуск операционной оболочки ДОС, состоящей из двух файлов:
- SE.COM — стартовый файл;
- SE.EXE — операционный файл.
Эти файлы должны находиться на одном диске. После запуска оболочки на экране появляется таблица из трех колонок, в которых перечислены имена всех файлов диска, выше таблицы расположена строка подсказок, ниже — имя текущего накопителя.
Управление оболочкой с клавиатуры осуществляется клавишами алфавитно-цифровых символов (ими вводятся команды обычным способом) и клавишами управления курсором (ими можно выбрать в таблице требуемый исполняемый файл и нажатием «ВК» запустить его). Программы, требующие для нормальной работы указания после имени дополнительной информации, например подпрограммы некоторых внешних команд ДОС, вызывать установкой курсора нельзя. Операционная оболочка SE использует и функциональные клавиши:
- «F2» — очищает экран и переводит ДОС в режим ожидания ввода команды;
- «F3» — копирует выбранный файл с запросом имени накопителя-приемника. На запрос следует отвечать нажатием клавиш «А» или «В». Если указано имя текущего накопителя, производится копирование с остановкой для смены диска-оригинала на диск-копию (аналогично FCOPY), иначе копирование с текущего дисковода на второй без остановки (аналогично FCOPY2);
- «F4» — распечатывает выбранный файл на экране (аналогично команде TYPE);
- «ПС» — удаляет выбранный файл после утвердительного ответа на запрос DEL (Y / N)— Y, после отрицательного ответа N удаление отменяется;
- «СТР» — выбор текущего накопителя. Используется для смены накопителя или чтения каталога нового диска, для чего достаточно нажать клавишу с именем выбираемого накопителя или (если накопитель не меняется) клавишу «ВК»;
- «УС» — при нажатии и удержании происходит переход к групповым операциям. Верхняя строка (подсказка) изменяется соответствующим образом;
- «УC+F2» (одновременное нажатие клавиш «УС» и « F2»)—удаляет все файлы, выведенные в таблице оболочки;
- «УС+FЗ» — копирует все файлы, выведенные в таблице, с запросом имени накопителя-приемника (выбор накопителя аналогично — «F3»);
- «УС+F4» — включает фильтр таблицы. Требуется ввод шаблона полных имен файлов, затем, после нажатия клавиши «ВК», в таблице остаются только имена файлов, удовлетворяющие шаблону. При старте пакета SE автоматически устанавливается фильтр *.* (вывод всех файлов);
- «УС+ПС» — выход из оболочки в ДОС;
- «УС+СТР» — удаляет из таблицы отмеченное курсором имя файла. Как и фильтр, используется для операций группового копирования или группового удаления файлов;
- «АР2» — отмена выбранной, но еще не исполненной команды.
Если при запуске программы из оболочки SE будет выведено сообщение об ошибке из-за нехватки места в ОЗУ, то следует выйти в ДОС и повторить запуск программы непосредственно из ДОС.
ПОСЛЕДОВАТЕЛЬНЫЕ КАНАЛЫ ВВОДА-ВЫВОДА
Важнейшее свойство любой ДОС — способность управлять потоками информации. Источниками или приемниками потоков могут быть файлы, клавиатура, экран, принтер, а при наличии драйверов и другие абоненты. ДОС «РАДИО-86РК», кроме файлов, использует два стандартных устройства:
CON — (консоль) клавиатура для источника и экран монитора для приемника информации;
PRN — принтер.
Имена этих устройств можно использовать в командах ДОС.
Заметим, что ДОС «РАДИО-86РК» снабжена простейшей программой вывода информации на принтер. Для ее использования достаточно приемником информации назначить принтер, например указав его в командной строке, как показано ниже в первом примере. Вывод происходит через порт D14 компьютера, через линии канала А передаются данные, через линию РСЗ — сигнал готовности (READY) и через РС7 — строб (STROBE). При необходимости пользователь ДОС может воспользоваться и более совершенными драйверами.
Примеры:
А> DIR, PRN — распечатать на принтере каталог диска; А> TYPE имя{.тип}, PRN — вывести на принтер текст файла; А> TYPE CON.PRN — включить вывод с клавиатуры на принтер (эхо-печать), выход
из режима — клавиша «F4»;
А> TYPE ТЕКСТ.ТХТ,В:КОПИЯ.ТХТ - вывести файл TEKCT.TXT с накопителя А: в файл
КОПИЯ.ТХТ на накопителе В:
А> DIR *.TXT, CATALOG.DIR — сформировать на диске файл CATALOG.DIR из имен всех
текстовых файлов;
А> TYPE CON, CONSOL.TXT —создать файл CONSOL.TXT набором с клавиатуры.
ИСПОЛНЯЕМЫЕ ФАЙЛЫ
Расширение имени исполняемого файла может, как отмечалось ранее, состоять из любых 1-3 символов или отсутствовать. Три типа файлов ДОС поддерживает непосредственно: COM, SYS, ВАТ.
Файлы этих типов загружаются и запускаются автоматически, достаточно набрать имя файла без расширения и нажать клавишу «ВК». Если на диске имеются файлы с одинаковым именем, будет запущен первый встретившийся. Для вызова конкретного файла нужно указать полное имя, с указанием типа.
Файлы типа СОМ — это обычные исполняемые файлы: интерпретаторы и компиляторы языков программирования, прикладные и игровые программы в машинных кодах. Обычно такие файлы создаются записью на диск по команде SAVE . При запуске коды загружаются с адреса, указанного в SAVE, и управление передается на первый адрес загруженных кодов.
Файлы типа SYS — перемещаемые, могут работать в любом месте памяти и загружаются в верхнюю область ОЗУ, не занятую системой в данный момент.
Файлы типа ВАТ — пакетные (командные), состоящие из списка команд ДОС или имени файла, который допускает обработку ДОС. Это обычные текстовые файлы, созданные, например, редактором «МИКРОН», которым оснащены ассемблер, макроассемблер, СИ и другие программы. Создав такой файл, не забудьте записать его на диске типом (расширением) ВАТ.
Для исполнения файла типа ВАТ на том же диске должен находиться и файл интерпретатора команд COMMAND.COM.
Если в пакетном файле вызываются другие файлы типа ВАТ, то при исполнении каждого загружается еще одна копия COMMAND.COM и верхняя граница ОЗУ понижается с каждым разом на 500Н байт.
Пакетные файлы могут содержать комментарии, выводимые на экран по мере поступления. Каждая строка комментариев должна начинаться со слова REM, на диске должен быть файл REM.SYS .
Примером пакетного файла является файл автозагрузки AUTOEXEC.BAT, который автоматически исполняется при первом запуске ДОС. Один из его вариантов:
DIR *.TXT REM ЗАГРУЗКА ФАЙЛА TEXT LOAD TEXT.TXT ASM
При автозапуске AUTOEXEC.BAT при первом включении ДОС или запуске с клавиатуры произойдет следующее:
- будет распечатан список всех файлов типа ТХТ;
- загрузится файл ТЕХТ.ТХТ;
- загрузится и запустится ассемблер.
СООБЩЕНИЯ ОБ ОШИБКАХ
При общении пользователя с ДОС иногда возникают ошибочные ситуации, распознать которые можно по выдаваемым ДОС сообщениям:
- I/O ERR — ошибка ввода/вывода;
- DISK LOCKED — диск закрыт на запись;
- NO DISK — нет готовности дисковода (не установлена дискета, не закрыт замок дисковода или нет накопителя с текущим именем);
- FILE NOT FOUND — файла с указанным именем нет на диске;
- SYNT ERR — ошибка в синтаксисе команды;
- DISK FULL — диск заполнен полностью;
- NO EXT — не указан тип файла, где он обязателен;
- RLE LOCKED — файл защищен от записи или удаления;
- END DATA — конец файла, открытого на чтение (попытка получить информацию за пределами открытого файла);
- HAVE OPEN — файл уже открыт;
- NO OPEN FILE — файл закрыт, сообщение выдается при попытке записи или чтения из неоткрытого файла.
- NO MEM — мало памяти для работы с ДОС, возникает, например, при многократном вложении файлов типа ВАТ.
Порядковый номер сообщения равен коду ошибки (см. описание переменной ERRORS), обрабатываемому подпрограммой ER_MAN .
ПОДПРОГРАММЫ ДОС
Дисковая операционная система, подобно системному МОНИТОРу ПЭВМ, имеет целый ряд подпрограмм, которые могут быть задействованы пользователем в оригинальных программах. В отличие от подпрограмм МОНИТОРа, вызов подпрограмм ДОС осуществляется по одному адресу — Е001Н, а выбор подпрограммы определяется числом, записанным в аккумулятор микропроцессора компьютера. Наименование подпрограмм ДОС и их краткие описания приведены в табл. 1. Следует заметить, что во всех случаях, когда в табл. 1 упоминается буфер с текстом командной строки, в ее конце должен присутствовать код 00Н. Перед обращением к подпрограммам WRSKT и RDSKT необходимо исполнить подпрограмму ПУСК.
Cодержимое регистра А | Подпрограмма ДОС | Выполняемая операция |
---|---|---|
00 | START | Вход в ДОС с начальной установкой параметров системы |
01 | START2 | Вход в ДОС без начальной установки. Номер дисковода и все каналы ввода/вывода принимают текущие значения, закрываются незакрытые файлы, освобождается
память, занятая ранее для работы ДОС. Позиционирование головки на нулевой трек не производится |
02 | ВХОД2 | лог с ДОС. ДОС переходит в режим анализа командной строки, вводимой
с клавиатуры. После нажатия клавиши «ВК» команда выполняется, затем происходит возврат в исходное состояние, при возникновении ошибки — возврат по адресу системной переменной BREAK (см. табл. 2) |
03 | DIR | Вывод каталога диска. В регистре DE должен быть адрес буфера командной
строки, содержащей текст (диск): {имя} {.тип} (канал вывода). Вместо имени можно использовать шаблоны |
04 | TYPE | Распечатать (вывести) файл. В регистре DE должен быть адрес буфера командной
строки с именем файла и, если необходимо, каналы ввода/ вывода (аналогично п/п DIR ) |
05 | SAVE | охранить содержимое части ОЗУ как файл на диске. В регистре DE должен
быть адрес буфера с именем файла и адресами начала и конца интервала памяти |
06 | LOAD | Загрузить файл с диска в память по адресу, заданному п/п SAVE . В регистре
DE должен быть адрес буфера, содержащего имя файла |
07 | OPFREE | Освобождение памяти, занятой ДОС при выполнении подпрограмм OPWR, OPRD,
RDCAT, КОММ, которые во время исполнения запрашивают у диспетчера памяти ДОС З00Н ячеек, устанавливают все оперативные переменные (см. табл. 2) для обрабатываемого файла (кроме п/п RDCAT ). Поэтому после того, как необходимость в оперативных переменных файла отпадает, необходимо выполнить эту п/п |
08 | WRSKT | Записать сектор на диск. Перед обращением должны быть установлены значения
переменных TTRK, TSKT, BEGS, LENGTS, OPDRV. Результат операции возвращается
в аккумуляторе: |
09 | RDSKT | считать сектор диска, начиная с адреса BEGS. Подпрограмма устанавливает
системную переменную LENGTS. Сектор, трек и диск должны быть указаны переменными
TSKT, TTRK и OPDRV соответственно. Результат операции в аккумуляторе:
|
0А | OPWR | одготовка файла к записи на диск. В регистре HL должен быть указан адрес
буфера строки: {диск:} имя {.тип} Подпрограмма запрашивает З00Н байт. Имя записывается в каталог, один свободный сектор отводится под T/SLIST. Подпрограмма возвращает в регистре ВС номера сектора и трека первого сектора T/SUST |
0В | OPRD | Подготовка файла к чтению. HL указывает на буфер строки: {диск:} имя (.тип)
Подпрограмма загружает в память T/SLIST, возвращает в DE адрес, который указывает на первый трек и сектор файла, в HL — адрес загрузки файла |
0С | KANR | Анализ и инициализация канала ввода данных. Регистр HL должен указывать
на буфер с логическим именем канала ( CON, PRN ) или файла, если это файл — открывает его для чтения. Устанавливает переменную OPKANR |
0D | KANW | Инициализация канала вывода. В HL должен быть указан адрес буфера с логическим
именем канала или файла. Если это файл, то он будет открыт для записи. Устанавливает переменную OPKANW |
0Е | SAVE2 | Вместе с OPWR образует подпрограмму SAVE . После выполнения OPWR обращение
к п/п SAVE2 сохраняет содержимое области памяти. |
0F | LOCVT | Найти и занять на диске свободный сектор. Поиск производится с использованием
оперативных переменных, устанавливаемых п/п RDCAT, DIR и т. п. Возвращает
номера сектора и трека в регистрах В и С соответственно. При изменениях
сектор VTOC должен быть записан на диске параметрами: |
10 | VSYMB | Сравнить три символа, адресуемых регистровой парой HL, с тремя символами,
адресуемыми парой DE, результат сравнения возвращается в регистре признаков
F: |
11 | FRSVT | Освободить сектор. В регистрах В и С нужно указать номер сектора и трека
соответственно. Использование FRSVT аналогично использованию n/n LOCVT |
12 | DELF | Удалить файл по оперативным переменным файла, установленным одной из подпрограмм,
например КОММ |
13 | RDCAT | Считать карту диска VTOC и первый сектор каталога с дисковода, указанного
переменной OPDRV. Устанавливает переменные: ВООТА, BOOTV, ТСАТ, SCAT. Данные помещаются в верхнюю свободную область ОЗУ и занимают объем З00Н байт |
14 | RCAT | Чтение очередного сектора каталога. Если конец каталога, А=04, иначе А=00 |
15 | ANSTR | Поиск в таблице (или в секторе каталога), адресуемой регистровой парой
DE, записи, идентичной записи в буфере. Адрес буфера указан регистровой
парой HL. В регистр ВС записывается значение шага между двумя записями
в таблице. Признак конца таблицы — 00. Подпрограмма возвращает: |
16 | ANEXT | Элемент подпрограммы ANSTR . Производит сравнение двух записей, адресуемых
HL и DE. Глубина анализа задается в регистре С |
17 | CONTLD | Вместе с OPRD образует п/п LOAD. После обращения к OPRD содержимое HL
(адрес начала загрузки) может быть изменено и затем использовано CONTLD. Системная область ОЗУ освобождается автоматически |
18 | КОММ | оиск файла на диске. Устанавливаются оперативные системные переменные.
При обращении регистр HL должен указывать адрес буфера с именем. Переменная
FLAG определяет возможность использования шаблонов имен аналогично п/п
ANSTR . Возвращает в аккумуляторе: |
19 | КОМ2 | оиск очередного имени, удовлетворяющего шаблону |
1А | SELBUF | Запрос одного или нескольких блоков памяти no 100H байт в верхней части
ОЗУ. В регистре В— количество блоков. Возвращаете регистровой паре HL адрес начала первого блока, имеющего минимальный адрес |
1В | FREBUF | Освободить несколько блоков памяти, занятых ранее (количество блоков
— в регистре В, адрес первого — в HL ) |
1C | RAMTOP | Возвращает в регистре увеличенное на 1 значение верхней границы свободной
памяти |
1D | OPENR | Открыть файл для чтения. HL указывает адрес буфера с именем файла |
1Е | OPENW | Открыть файл для записи аналогично п/п OPENR |
1F | APPEND | Открыть файл для записи дополнительной информации, аналогично п/п OPENR
и OPENW |
20 | READ | очитать 1 байт из файла, открытого п/п OPENR, байт возвращается в аккумуляторе.
Регистр: В=0 — байт достоверный, |
21 | WRITE | Записать байт из регистра С в последовательный файл, открытый ранее п/п
OPENW или APPEND |
22 | CLOSER | Закрыть файл, открытый ранее п/п OPENR, освободить память, использовавшуюся
в системной области |
23 | CLOSEW | Аналогично CLOSER, но для п/п OPENW или APPEND |
24 | INKAN | Обращение к подпрограмме ввода байта. При старте ДОС канал ввода — клавиатура.
Он может быть изменен (временно) подпрограммой KANR или изменением системной переменной OPKANR. указывающей адрес программы ввода байта. П/п OPFREE устанавливает значение OPKANR таким же, как KANALR |
25 | OUTKAN | Передача байта из регистра и в канал вывода, при старте ДОС вывод устанавливается
на дисплей с опросом клавиатуры при печати символа 00Н. Если при этом была нажата клавиша «F4», происходит выход по адресу BREAK. Если нажата клавиша пробела, происходит остановка до нажатия любой другой клавиши |
26 | К | Выбор дисковода, указанного оперативной переменной OPDRV |
27 | STOP | нять выбор диска |
28 | COPYNG | Используется в системных программах. Копирование имени из буфера, адресуемого
регистром HL например, в прочитанном секторе каталога), в память, начиная с адреса, указанного в DE по установленным системным переменным (ВООТА) |
29 | ER_МАN | Обработка ошибок, вывод на экран дисплея сообщения об ошибке. Код ошибки
должен быть записан в регистр В. Освобождает всю занятую ДОС память, закрывает открытые файлы. Выход из подпрограммы по адресу переменной BREAK . Переменная RIPERR запрещает (при равенстве 0) или разрешает печать сообщения. Устанавливает переменную ERRORS |
2А | ADRESS | обращении к ДОС по команде CALL (в аккумуляторе 2АН) возвращает в регистре
HL адрес ячейки, следующей за командой CALL. Используется для построения программ, способных работать независимо от адреса загрузки. Значения регистров DE и ВС сохраняются |
2В | LD1 | Подпрограмма загрузки (вместе с п/п КОММ составляет п/п OPRD): MVI A,18H ; КОММ |
2С | ВХЗ | Анализ и выполнение командной строки, адресуемой регистровой парой HL
(см. п/п ВХОД2) |
СИСТЕМНЫЕ ПЕРЕМЕННЫЕ
При работе дисковой операционной системы область ОЗУ с адресами в интервале от 7540Н до 75BFH отводится под размещение системных переменных. По ним пользователь, при необходимости, может определить параметры ДОС, необходимые ему при разработке собственных программ. В табл. 2 перечислены системные переменные ДОС и их характеристики. Следует заметить, что переменные по адресам 754С и 754D устанавливаются и используются ДОС и изменять их бесполезно.
Адрес (HEX) | Имя переменной | Кол-во байт | Значение системной переменной |
---|---|---|---|
7540 | DRIVE | 1 | Номер дисковода (0 или 1) |
7541 | OPDRV | 1 | Оперативный номер дисковода (0, 1). Используется
подпрограммами чтения и записи сектора. При выполнении подпрограммы OPFREE или при входе в ДОС по п/п START2 принимает значение DRIVE |
7542 | TTRK | 1 | Текущий номер трека, должен быть установлен
перед записью или чтением сектора |
7543 | TSKT | 1 | Текущий номер сектора, как и TTRK устанавливается
перед чтением или записью |
7544 | BEGS | 2 | Адрес начала сектора в ОЗУ. Должен быть установлен
перед чтением и записью сектора при выполнении п/п WRSKT и RDSKT |
7546 | LENGTS | 2 | Длина сектора (1 — 200Н байт), должна быть
установлена перед записью сектора. При чтении устанавливается ДОС |
7548 | KS | 2 | Контрольная сумма сектора, прочитанная с диска |
754В | ERRORS | 1 | Результат обмена с диском. ERRORS — 0 — ошибок
обмена нет, иначе — код ошибки |
754С | NWR | 1 | Количество попыток записи сектора |
754D | NRD | 1 | Количество попыток чтения сектора |
754Е | TCAT | 1 | Номер трека каталога с найденным именем (например,
п/п КОММ или КОМ2) |
754F | SCAT | 1 | Номер сектора каталога с найденным именем |
7550 | FLAG | 1 | Флаг шаблона имени. (FLAG — 0 — запрет использования
шаблонов при поиске в каталоге) |
7551 | BREAK | 2 | Адрес выхода по ошибке. При выходе вне ДОС
должен быть восстановлен указатель стека SP |
7553 | ADRNM | 2 | Адрес начала найденного имени в прочитанном
секторе каталога. Устанавливается п/п КОММ, КОМ2 |
7555 | ADBUF | 2 | Адрес имени во входном буфере, по которому
производится поиск файла |
7557 | ENDNAM | 2 | Адрес байта, следующего после имени во входном
буфере, по которому производится поиск в каталоге (см. п/п OPRD, OPWR, LOAD, SAVE, OPENR, OPENW, APPEND, DIR) |
7559 | FLEXT | 1 | Флаг расширения. Если при поиске файла во
входном буфере в имени был указан тип, принимает значение 2ЕН |
755А | SPCDIR | 2 | Адрес свободного места в секторе каталога,
возникшего в результате удаления файла. Устанавливается при поиске любого имени (если в каталоге нет удаленных файлов, то принимает значение 0000) |
755С | SPCTRK | 1 | Номер трека с удаленным именем (см. переменную
SPCDIR) |
755D | SPCSKT | 1 | Номер сектора с удаленным именем (см. переменную
SPCDIR ) |
755Е | ВООТА | 2 | Адрес начала буфера, выделенного ДОС для чтения
и записи сектора каталога и T/SLIST. Устанавливается при операциях обращения к диску по имени файла |
7560 | BOOTV | 2 | Адрес начала буфера, выделенного ДОС для чтения
и записи карты диска VTOC |
7562 | RIPERR | 1 | Вывод сообщения об ошибке, если переменная
равна 0 — вывод запрещен, не равна 0 — разрешен |
7564 | KANALW | 2 | Адрес канала вывода байта |
7566 | OPKANW | 2 | Адрес временно установленного канала вывода |
7568 | KANALR | 2 | Адрес канала ввода байта |
756А | OPKANR | 2 | Адрес временно установленного канала ввода |
758С | KSTRT | 1 | Если при запуске ДОС переменная KSTRT не равна
DDH, то произойдет холодный старт с позиционированием головки на нулевой трек и выполнением AUTOEXEC.BAT |
758D | ВАТF | 2 | Используется для передачи адреса имени файла
типа ВАТ командному процессору |
7590 | BEGFL | 2 | Адрес начала файла, загруженного в память |
7592 | ENDFL | 2 | Адрес конца файла, загруженного в память |
РАСПРЕДЕЛЕНИЕ ПАМЯТИ ДОС
Системная область ДОС занимает область ОЗУ 7500H — 75FFH и распределяется так:
буфер клавиатуры ДОС 7500H—753FH; системные переменные 7540Н—75BFH; служебные ячейки диспетчера ОЗУ 75С0Н—75FFH.
В процессе работы ДОС по мере необходимости занимаются и освобождаются блоки по 100Н байт в верхней части свободной памяти. При выполнении команд DIR, SAVE, LOAD занимается З00Н ячеек памяти в области ОЗУ 7200Н—74FFH, TYPE — 400H байт (7100Н—74FFH). Открытый файл для чтения занимает 400Н байт, для записи — 500Н байт.
В процессе работы пакетного файла занимается 500Н байт. Если в пакете выполняется операция DIR, то занято З00Н+500Н=800Н байт (6000Н—74FFH), а в случае вызова еще одного исполняемого файла — А00Н байт.
Е. СЕДОВ, Д. МАТВЕЕВ, г. Москва
ЛИТЕРАТУРА
- Е. Седов, А. Матвеев. Контроллер накопителя на гибких магнитных дисках для «РАДИО-86РК». — Радио, 1993, № 1, 2.