BIOS,CRDOS. Часть 3.
ZXNet echo conference «zx.spectrum»
From Alexander Shherbakov → To All 2 April 1998
■ All, ты меня yважаешь?
ОПЕРАЦИОHHАЯ СИСТЕМА CR-DOS версия 1.5
-+--+--+--+--+--+--+--+--+--+--+--+---
Смысл разработки новой операционной системы (в дальней-
шем ДОС) для 8-разрядных компьютеров с процессором ВМ80, зак-
лючался в:
- устранении недостатков, характерных для ДОС CP/M;
- приближении с сервиса и возможностей к ДОС MS-DOS;
- удобстве конфигурирования (с точки зрения пользователя
и программиста) операционной системы.
Hазвание операционной системы CR-DOS переводится как
Кассетная RAM-Дисковая Операционная Система.
Отметим, что ДОС CR-DOS работает с накопителем на маг-
нитной ленте (МЛ), эмулируя реальный диск. Поэтому, большинс-
тво дисковых функций и команд работают с HМЛ как с диском.
Более того комфортно работать с HМЛ возможно и при отсутствии
других дисков, так как (в частности) драйвер HМЛ позволяет не
только копировать файлы с кассеты на кассету (как при 2-х на-
копителях), но и используя специальный программный механизм
(ноу хау) осуществлять свободный доступ к любому блоку файла
на МЛ при записи или чтении.
Многолетний опыт автора использования различных ПК пока-
зала, что работа ПК типа IBM PC с floppy дисководом осущест-
вляется с очень низкой скоростью. Для более медленных 8 раз-
рядных ПК с частотой 2МГц на процессоре 580ВМ80 скорость об-
мена с floppy диском не превышает 2 - 5 килобайт в секунду.
Исходя из этого, представляется более оптимальным использо-
вать RAM-диски вместо реальных floppy дисков.
CR-DOS способна поддерживать до 26 электронных дисков.
Для работы с ПК предлагается использовать нижеследующие
типы электронных дисков с указанием оптимального размера (ис-
пользование понятия "электронный диск" более правомочно, не-
жели RAM-диск, но для краткости будут употребляться слова
RAM-диск):
ROM, 16 - 64Кб -является загрузочным, содержит ДОС, сис-
темные и ряд прикладных программ.
RAM, 64 - 256Кб -электронный диск, организуемый в допол-
нительной памяти, используется для повседневной работы.
Статич. RAM, 32 - 128Кб -электронный диск на микросхемах
статической памяти с резервным питанием от батарей типа СЦ,
может служить для промежуточного хранения файлов.
EPROM, 32 - 256Кб -электронный диск на электрически реп-
рограммируемых микросхемах. Может использоваться в качестве
архивного диска (ввиду малой скорости обмена).
Помимо указанных квазидисков для хранения архивов можно
применять 3-х дюймовый floppy дисковод на 720Кб или 1.44Мб. А
для файлового обмена между квазидисками и floppy диском ис-
пользовать специальную сервисную программу, т.к. CR-DOS вер-
сии 1.5 не может эффективно работать с реальными дисками. Ис-
пользование 3"-го дисковода нами основывается на трех причи-
нах:
1. 3" дисковод меньшего размера, в отличии от 5", и для
его размещения требуется меньший объем.
2. 3" дискеты более удобны в использовании, т.к. они
меньшего размера и твердый пластмассовый кожух лучше защищает
магнитный диск от механических повреждений.
3. Хранение информации на 3" дисководе надежнее чем на
5".
4. Хранение информации на 3" дешевле, нежели на 5" дис-
кетах, ввиду большей емкости 3" дискет.
Программно ДОС состоит из 3-х частей, каждая из которых
расположена в своем файле, что упрощает конфигурирование сис-
темы и перенос ее на другой компьютер. ДОС состоит из следую-
щих частей:
1. BIOS -базовая система ввода/вывода, дополняющая воз-
можности встроенной BIOS, файл: IO.SYS.
2. BDOS -базовая дисковая операционная система, содержа-
щая файловую структуру, файл: CRDOS.SYS.
3. CCP -командный процессор, обрабатывающий команды опе-
ратора, файл: COMMAND.COM.
BIOS
BIOS входящий в состав ДОС осуществляет связь BDOS с
BIOS'ом, расположенным в ПЗУ. Поскольку, операционная система
может устанавливаться на компьютеры с разным уровнем сервиса
встроенного BIOS'а, то помимо связи BDOS с ROM BIOS конкрет-
ной машины, BIOS, входящий в состав ДОС, может выполнять
функции обмена с "железом" компьютера. Hапример обмен с дис-
ководами, накопителем на магнитной ленте, расширенный обмен с
консолью, принтером, т.е. те функции, которые отсутствуют в
стандартном ROM BIOS'е.
Обмен между BIOS и BDOS включает нижеследующие функции,
реально выполняемые BIOS'ом или эмулируемые им:
- инициализация системы при загрузке (холодном старте);
- инициализация системы при "горячем" старте;
- опрос состояния клавиатуры, принтера;
- ввод символа с клавиатуры;
- вывод символа на дисплей, принтер;
- чтение и запись ленточного маркера на МЛ;
- чтение и запись блока информации на МЛ;
- чтение загрузочного сектора и выдача параметров диска;
- чтение и запись сектора на диск;
- выдача начального адреса таблицы дисков;
- выдача начального адреса таблицы устройств I/O;
Причем, последние две функции выдают адрес в ОЗУ, по ко-
торому расположены указанные таблицы (ноу хау), с описанием
поддерживаемых RAM-дисков и устройства ввода/вывода. Структу-
ра данных таблиц достаточно проста и даже начинающий програм-
мист способен с их помощью легко подключить необходимые для
работы устройства к компьютеру.
BDOS
ДОС CR-DOS обладает такими же функциональными возможнос-
тями, что и ДОС CP/M, и обеспечивает 99% совместимость прог-
рамм написанных для CP/M, но работающих в среде CR-DOS. Одна-
ко, есть ряд отличий, связанных с особенностями CR-DOS. В
частности, CR-DOS может обслуживать до 26 RAM-дисков, 16
внешних последовательных и параллельных устройств ввода/выво-
да. Помимо этого, предполагается ввести в BDOS Handle ориен-
тированные функции обмена с файлами и внешними устройствами,
что значительно упрощает работу с ДОС на уровне файлов, неже-
ли громоздкие FCB функции. Возможно, в будущем, Handle функ-
ции могут стать стандартом для 8 разрядных ПК.
Структура RAM-диска.
Минимальным адресуемым пространством на RAM диске явля-
ется физический сектор:
┌────────────────────────────────────────┬────────────┐
│ Область данных 128 байт │контрольная │
│ (логический сектор) │сумма 1 байт│
└────────────────────────────────────────┴────────────┘
Объем физического сектора составляет 129 байт. Первые
128 байт из них являются областью данных и образуют логичес-
кий сектор, содержимое которого доступно для чтения и модифи-
кации ДОС. Последний (129-ый) байт предназначен для хранения
контрольной суммы (по модулю 256) логического сектора.
Работу на уровне физических секторов, как и обработку
контрольной суммы производит драйвер RAM диска. Однако в ДОС
передается только 128 байт области данных и биты состояния
устройства.
RAM-диск состоит из следующих частей:
- загрузочный сектор, (BOOT)
- область данных (Data Area).
Загрузочный сектор содержит информацию о формате RAM
диска и служебную информацию, и имеет длину, кратную 128:
128, 256, 512 байт, в зависимости от длины программы-загруз-
чика ДОС. Стандартный BOOT сектор имеет размер 128 байт или 1
логический сектор.
Способ размещения файлов на RAM-диске, аналогичен ДОС
ORDOS для ПК "Орион", т.к. является наиболее оптимальным для
RAM-дисков. Область данных диска содержит информацию в форма-
те:
┌───────────┬────────────┬───────────┬────────────┬- ─┐
│ Заголовок │ Содержимое │ Заголовок │ Содержимое │ ... │
│ файла │ файла │ файла │ файла │ │
└───────────┴────────────┴───────────┴────────────┴─ ─┴
Заголовок файла имеет длину 32 байта и содержит:
1. имя (8 символов) и расширение (3 символа) файла,
2. аттрибуты файла (1 байт),
3. дату создания файла (2 байта),
4. длину файла (3 байта),
5. начальный адрес загрузки в ОЗУ (для исполняемых фай-
лов) (2 байта).
Hеиспользуемые байты составляют резерв, часть которого
используется ДОС при записи файлов на МЛ, и в качестве рабо-
чих ячеек при работе с конкретным файлом. Остальная часть мо-
жет использоваться по усмотрению пользователя ПК.
Содержимое файла может иметь длину от 0 байт до макси-
мально возможной длины, определяемой размером RAM-диска, но
составлять не более 65536 секторов или около 8Мбайт.
CCP
Командный процессор осуществляет диалог с пользователем
через командную строку. Исходя из модульности ДОС, можно ус-
тановить вместо стандартного CCP, свой командный процессор,
наделенный дополнительными функциями.
Команды выполняемые CPP следующие (синтаксис описания
общепринятый - {|} означает или, [] -параметр может отсутс-
твовать):
MOTOR [{ ON | OFF }] -переключение, включение,
выключение мотора HМЛ (не-
обходимо при перемотке,
подмотке МЛ и т.п.).
DIR [маска] -выдача каталога диска.
ERA [маска] -удаление файлов.
REN прежний_файл новый_файл -переименование файла.
FORMAT диск [параметры] -форматирование RAM-диска.
- 6 -
LOAD { имя_файла | . }[, адрес] -загрузка файла данных в
ОЗУ.
имя_исполн._файла [параметры] -запуск файла на исполнение.
SAVE имя_файла, адрес1-адрес2 -запись участка ОЗУ на диск.
TYPE { имя_файла | . } [парам.] -просмотр содержимого файла.
COPY источник приемник -копирование информации.
BUFMEM адрес1-адрес2 -резервирование памяти под
буфера I/O.
SYS диск -установка системного диска.
PATH диск [диск [...]] -указание путей поиска сис-
темных файлов.
VER -вывод номера версии.
{ HELP | ? } -выдача помощи.
Обозначения:
маска -[<диск>]<имя_файла>[.[<расширение>]]
диск -<буква_диска>:
имя_файла -неявное: использование глобальных символов '?'
и '*',
явное: стандартное имя файла
источник -{ маска | устройство }
приемник -{ маска | устройство }
устройство -поддерживаемое устройство I/O: PRN, CON, AUX,
NUL и т.п.
адрес -шестнадцатеричное число, незначащие нули опус-
каются и маркер шестнадцатеричного числа (сим-
вол 'H') не ставится.
Alex немного побыл с Вами.