Источник:
http://rdk.regionsv.ru/orion128-soft-ordos-ordos403-1.htmДанная статья описана в журнале "Радиолюбитель" 9, 1993 г.
Операционная система "OR DOS V4.00"для функционирования ос "ordos-4" (ос4) требуется подключение дополнительной платы - rom-диска. схема прилагается и находится в файле - romd.pc. На этом диске хранится сама операционная система, и часто используемые инструментальные (бейсик, ассемблер, редактор и др.) средства, а также служебные (загрузчики, дополнительные знакогенераторы, эмуляторы, сменные драйверы дисплея и т.д.)программы. для ос4 rom-диск является диском "a". вторая страница памяти компьютера интерпретируется как диск "в", третья - диск "c", четвертая - диск
"d". На rom-диске ос4 занимает обьем в 2 кбайта. в остальных микросхемах ппзу размещаются необходимые программы по усмотрению пользователя.
Структура ОС "ORDOS-4""ordos-4" состоит из трех частей (рис.1), в которых четко определены их функции.
рис. 1
Первая - ccp - (процессор консольных команд - по аналогии с cp/m) поддерживает диалог с пользователем, организовывает выполнение встроенных команд. при запуске прикладной программы, сср может быть затертым, однако после возвращения в ос4 его необходимо восстановить, иначе некому будет поддерживать диалог с пользователем. процедура восстановления (реинициализации) происходит автоматически. каждый раз при возврате в ос4 специальный "теплый" загрузчик считывает с rom-диска только ccp и передает ему управление. принудительно это можно сделать, если нажать одновременно ус+с, или клавишу {f4}.
Вторая часть ос4 - bdos (базовая дисковая операционная система). это самая ответственная часть ос4. Она всегда находится резидентно в озу и ни при каких обстоятельствах не должна быть повреждена или затерта. Если все же это произошло - необходим полный перезапуск ос4, т.е. "холодный" запуск. Это осуществляется при нажатии на клавишу "сброс".
bdos содержит набор программ-утилит которые ведут всю работу с диском на уровне файлов. пользовательские программы также могут воспользоваться этим набором программ - утилит, выполняя определенные соглашения. После запуска, ос4 переустанавливает верхнюю границу озу пользователя на уровне bdos, т.е. блокирует себя от несанкционированного размещения в этой области озу каких-либо программ или данных.
Третья часть ос4 - bios (базовая система ввода/вывода). Это набор программ обслуживающих интерфейсные устройства, т.е. "железо" - ввод символа с клавиатуры и вывод информации на экран дисплея, чтение и запись программ на магнитную ленту и др.. Конечно, все эти обязанности в компьютере выполняет программа монитор. Поэтому в качестве bios и используется набор стандартных подпрограмм монитора. После запуска ос4 производит первоначальную установку своих служебных ячеек и флагов. производится проверка дисков (b, c, d) на наличие в них информации. Если в первых трех ячейках диска находятся коды, которые можно отнести к символам ascii (кои-7: 20-7еh), то ос4 воспринимает это как наличие файлов на данном диске. В противном случае диск форматируется, т.е. в первую ячейку заносится значение - 0ffh. так проверяются все квазидиски при каждом "холодном" перезапуске (нажатии на кнопку "сброс"), а также при первом включении компьютера.
По окончанию процесса автоформатирования, ос4 производит поиск на диске "b" текстового файла "setup.tx", где содержатся инструкции по формированию начальной операционной среды. Более подробно о файле "setup.tx" мы поговорим далее, а сейчас заметим, что по окончании выполнения его bdos передает управление сср.
Перед тем как начать диалог с пользователем, сср производит поиск файла "ext" на диске "в". Работа с файлом расширения "ехт" происходит аналогично "ordos" v2.4. мы о нем тоже поговорим позднее.
Следующий этап работы сср - это поиск файла "vc$" на диске "А". это имя зарезервировано под экранную оболочку "ordos" "victor commander" (своего рода "norton commander"). При благополучном исходе поиска этого файла, последний запускается и пользователь входит в привычный диалог с компьютером. как видим весь процесс подготовки пользовательской среды происходит автоматически от момента включения компьютера, до появления привычных панелей "norton'а".
Однако, если файл "vc$" отсутсвует на диске "a", или при "холодном" запуске был заблокирован extend-механизм - управление принимает сср. В этом случае диалог с пользователем ведется на уровне команд операционной системы. при этом на экран будет выведено сообщение:
(c) 1992 orionsoft
ordos ver 4.03 2vs
а>
Символ "a" (в третьей строке) указывает на то, что в данный момент текущим (рабочим) является диск "a". Угловая скобка ">" - признак (промпт) нахождения ос4 в управляющем режиме и готовности к диалогу с пользователем. рядом с промптом должен мигать курсор. если промпт с мигающим курсором все же не появился - нажмите кнопку "сброс" и на любую символьную клавишу. Кнопку "сброс" отпустите первой, а символьную задержите на 1-2 секунды. Предложенный прием заблокирует весь extend-механизм ос4, а также автоформатирование.
Прежде чем рассматривать директивы ос4, рассмотрим процедуру изменения имени текущего диска - ведь у нас их четыре - b, c, d.
а>в:{вк} или a>d:{вк}
в> d>
После завершения ввода (нажатия клавиши {вк}) ос4 на следующей строке выведет уже новое имя диска и рядом промпт (смотри вторую строку примера). при таком формате переключения диска, сразу же после завершения ввода будет автоматически происходить и вывод каталога того диска на который вы переключились, если там уже хранятся файлы.
Изменить имя текущего диска можно и попутно с выполнением какой-либо команды. При этом необходимо твердо придерживаться следующего правила: имя диска вводят без пробела после промпта, затем вводят символ ":", далее тоже без пробела символ команды. остаток строки вводится согласно синтаксиса команды.
а>в:е text.tx{вк} - уничтожение файла
b> "text.tx" на диске "b"
Команды ОРДОС V4.03"ordos-4" имеет два типа команд - встроенные и транзитные или загружаемые.
Познакомимся с встроенными командами. Они еще называются резидентными, потому что являются частью ос4 и хранятся вместе с ней в той же области оперативной памяти.
Перечень команд ос "ordos-4" приведен в табл. 1.
таблица 1
f(ormat) - подготовка ("форматирование") "квазидиска"
d(ir) - вывод каталога диска на экран дисплея
l(oad) - чтение файла из диска в память компьютера
s(ave) - запись участка памяти в качестве файла на диск
r(en) - переименование файла
e(ra) - удаление файла, хранящегося на диске
т(ype) - просмотр текстовых файлов
Команды ос4 однобуквенные и вводятся без пробела, после угловой скобки (промпта). Затем можно ввести необязательный пробел и далее - имя (имена) файла, другие реквизиты. Завершается ввод нажатием клавиши {вк}. Рассмотрим более подробно синтаксис и работу встроенных команд.
Команда "f" - форматирование или скорее инициализация (подготовка) дисков (кроме диска "a") к работе. Используется как дополнительная возможность в ручном режиме произвести инициализацию (сброс) квазидиска. Учитывая наличие автоформатирования в ос4 используется крайне редко. В основном для быстрой очистки заполненного файлами диска.
а>b:f{вк} или d>f{вк}
да?{вк} да?{вк}
В первом примере предварительно устанавливается текущим диск "в" (именно его мы будем форматировать), а затем выполняется команда "f". В ответ ос4 выведет запрос на дополнительное подтверждение ваших намерений - "да?{вк}". При этом необходимо еще раз нажать клавишу {вк}, если вы действительно намерены инициализировать текущий диск. Такие условности необходимы для гарантий от ошибочных действий пользователя. Если будет выполнена команда "f" при наличии информации на диске, то все файлы уничтожатся. физически информация на диске не стирается (в первую ячейку диска "в" будет занесено значение "ff"), но на уровне ос4 она становится недоступной. Во втором примере команда "f" выполняется на текущем диске.
команда "d" - (dir) - наиболее часто используемая команда для вывода на экран данных о файлах, содержащихся на текущем диске.
а>d{вк}
Команда "d" будет выполняться и без ввода символа "d", а просто нажатием клавиши {вк}. Это сделано для упрощения диалога и повышения оперативности в работе. директива "d" выполняется автоматически при переходе на другой диск.
Посмотрим примерную структуру вывода оглавления.
а>d{вк} (или а>{вк})
m128$ b000 06e0 edit$ 0000 0f90
asmm$ 9000 0de0 dis$ b000 0a00
nc$ b000 0b00 basic$ 0000 1fc0
penx$ 0000 1ff0 osdos$ b000 01b0
a>
ОС4 выводит оглавление текущего диска в две колонки. Чтобы прервать вывод оглавления на экран дисплея - достаточно нажать любую клавишу. В каждой колонке содержится имя файла (м128$), адрес начала размещения в озу при запуске и размер файла. Напомним, что имя файла может содержать не более восьми любых символов, за исключением управляющих (меньше 20h), пробела и "$" (24н). Имя файла не может повторяться на одном диске. Символ "$" указывает на то, что данный файл самозапускаемый, т.е. после считывания его с диска в озу директивой "load" ос4 тут же передаст ему управление. Такой файл еще называется командным.
Следует иметь в виду, что символ "$" не является составной частью имени файла (но входит в количество восьми) и в индефикации (поиске) не участвует. Поэтому имена "nc" и "nc$" для ос4 при поиске равнозначны.
Другим файлам ос4 мы рекомендуем присваивать имена в следующем виде: имя - пять символов, затем точка и еще два символа расширения. расширение файла характеризует его принадлежность.
ordos.tx - текстовый файл
test.as - исходный текст программы на языке ассемблер
rekl.bs - файл интерпретатора языка basic
ris.pc - файл графического редактора "penx"
bloc.hx - файл, содержащий набор кодов из озу
Конечно это не полный перечень и пользователь может придумать свою систему наменования файлов из восьми символов, однако следует иметь ввиду, что многие уже существующие программы требуют придерживаться именно такой структуры. Продолжим рассмотрение структуры вывода оглавления. Цифра, идущая за именем файла (в000н) - начальный адрес размещения файла в озу при считывании его с диска. Этот же адрес является стартовым при наличии признака "$" (самозапуска). Управление будет передано на первую ячейку считанного файла, т.е. по адресу 0в000н. далее "06e0" - это длина (размер) файла в байтах. Адрес и размер файла выводятся в шестнадцатиричной системе счисления.
Команда "l" - считывание файла с диска в озу. Как считывается файл и как ос4 реагирует на признак ($) файла мы уже рассмотрели выше. Необходимо только добавить, что вместо символа "l" можно вводить пробел. Допустимость такой подмены повышает оперативность в работе.
а>l m128${вк} или
а> m128{вк}
Как видно из примера, символ "$" (если он присутсвует в имени файла) можно для упрощения не вводить.
Команда "s" - запись содержимого оперативной памяти на диск в виде файла.
а>s micron$ 0,fff{вк}
Рассмотрим синтаксис команды. после имени команды (s) и необязательного пробела, вводим имя файла не более восьми символов (остальные ос4 игнорирует), далее обязательный пробел и - начальный адрес, через запятую конечный адрес того участка памяти, который мы хотим сохранить на диске в виде файла. Незначащиеся нули можно опускать. команда "s" не проверяет адреса на корректность (какой из них должен быть больше). За этим должен следить пользователь. но если такая не корректность все же допущена - катастрофа не произойдет. Просто ос4 попытается создать огромный файл, который заведомо не уместится на диске и будет выведено сообщение об ошибке.
команда "r" - переименование имени файла.
а>r bru$ ch{вк}
Как видно из примера, первым вводится новое имя файла, а затем старое имя (в старом имени признак самозапуска ($) можно опускать), т.е. имя которое необходимо переименовать. Выполнение команды происходит по нажатию клавиши - {вк}.
команда "е" - удаление файла из диска.
а>e text.tx{вк}
да?{вк}
После нажатия клавиши {вк} ос4 выведет запрос на дополнительное подтверждение выполнения данной команды - "да? {вк}" (так же как и в команде "f").
Если пользователь файл уничтожает не случайно - необходимо подтвердить это повторным нажатием клавиши {вк}, в противном случае нажать любую другую клавишу. Следует помнить, что при случайном форматировании диска ошибку можно исправить (с помощью программы м128$), а вот восстановить уничтоженные файлы командой "e" не возможно никакими средствами. поэтому нестоит торопиться при использовании этой директивы.
Команда "т" - просмотр содержимого текстовых файлов на экране дисплея. команда удобна тем, что нет необходимости загружать редактор для просмотра текстовых файлов. Однако этой командой не стоит просматривать файлы, содержащие шестнадцатиричные коды. В этом случае на экран будет выводиться не предсказуемая информация.
а>т ordos.tx{вк}
Если текстовый файл больше одной страницы экрана и необходимо вывод временно остановить - нажмите любую символьную клавишу. Чтобы продолжить вывод - отпустите клавишу. Для отмены директивы (до окончания просмотра всего файла) - нажмите клавишу {f4}.
В качестве загружаемых команд используются командные файлы, т.е. программы выполняющие служебные функции. Это M128$, или М256$ stat$, view$ и др.
При умении программировать на языке ассемблер или в машинных кодах, пользователь может сам создавать свои команды, хранить их на диске "а" или магнитной ленте, дискете в виде библиотеки. По мере необходимости их загружают в один из квазидисков по своему усмотрению.
Пакетный файл и extend-системаПодготовленные пользователи знают, что в операционных системах, к примеру, "ср/м-80" и "msdos" есть механизм обработки пакетных файлов. называются они пакетными потому, что содержат
в символьном виде набор (пакет) команд. это по сути программа на языке "высокого" уровня, где пользователь предписывает порядок действий операционной системе наперед, в автоматическом режиме.
Среди пакетных файлов есть "особые" - выполняемые при запуске и инициализации операционной системы. Практически любой пакетный файл может стать "особым", если записанная в нем последовательность действий операционной системы устраивает пользователя при включении компьютера. Для этого необходимо присвоить ему специальное (зарезервированное) имя. при включении компьютера или реинициализации операционная система просматривает каталог диска и, если встречает пакетный файл с зарезервированным именем - обязательно его выполняет, прежде чем вступить в диалог с пользователем.
В качестве механизма выполнения пакетных файлов в операционной системе "ср/м-80", к примеру, применяется специальная внешняя команда "submit", для которой создается текстовый файл с перечнем необходимых команд для выполнения. В "msdos" этот механизм уже вмонтирован в систему, поэтому достаточно создать только текстовый файл и присвоить ему зарезервированное имя "autoexec.bat", чтобы операционная система могла его опознать при реинициализации.
Теперь вернемся к "ordos-4". Наличие квазидиска в качестве внешней памяти накладывает определенные ограничения на механизм выполнения пакетных файлов, т.к. в момент включения компьютера и инициализации операционной системы "ordos-4", пакетный файл в квазидиске еще отсутствует, но если это очень важно - его можно хранить в rom-диске, т.е. диске "а".
Малые размеры "oс4" не позволяют расположить в теле операционной системы полный механизм обработки пакетных файлов, как это сделано в "msdos". Чтобы найти приемлемый компромис, создан только механизм загрузки файлов (драйверов, знакогенераторов и других программ).
Рассмотрим последовательность действий ос "ordos-4" с момента включения компьютера.
Загрузчик программы "монитор-2" считывает с rom-диска первые 2 кбайта содержимого и размещает их под "потолок" озу пользователя в адресах 0в800н - 0вfffн. после этого передается управление по адресу 0вffdh.
После загрузки "ordos-4" проводит первичную инициализацию операционной системы, формирует каналы управления, форматирует диски. Далее производится поиск файла с зарезервированным именем setup.tx на диске "в". Если данный файл не найден - управление передается сср - процессору консольных команд. Мы умышленно упростили остальные операции.
Файл setup.tx - это текстовый файл, где перечислены имена программ и драйверов предназначенных для автоматической загрузки. Это могут быть как само- запускаемые, так и не самозапускаемые программы, всевозможные драйверы (клавиатуры, дисплея, магнитофона и пр.). Выход с этих программ производится как по команде ret, так и по адресу 0bffdh. программы могут вести диалог с пользователем и затирать сср. Создается файл setup.tx текстовым редактором. например:
а:ch-rr - загрузить знакоген. б-м русские
а:key$ - загрузить драйвер клавиатуры
b:cls$ - загруз. программу, которая очистит область озу и экран.
конец файла обозначается символом "."(точка) с "красной" строки.
Синтаксис построения строк такой же, как и при вводе командной строки ос4, т.е. между символом имени диска, двоеточием и именем файла не допустимо вводить пробелы. Строка не обязательно должна начинаться с имени диска, но в этом случае система будет считывать с ранее определенного диска.
Для выполнения текстовый файл ос4 размещает по адресу его посадки. Поэтому следует проанализировать последствия выполнения данного файла с тем, чтобы не допустить его самоуничтожения. Исходя из этого следует определить безопасную область озу и откорректировать посадочный адрес с помощью программы м128$.
Из-за малого размера ос4 отсутствует механизм по контролю за синтаксисом и корректностью построения пакетного файла setup.tx. Эта задача целиком возлагается на пользователя.
Механизм обработки пакетного файла не ограничивает использование его только для загрузки драйверов. Пользователь может определить любые программы - м128$, edit$, assm$ и т.д. для запуска. При этом после выхода из одной программы ос4 будет загружать следующую. следует только побеспокоится о месте размещения (адресе загрузки) пакетного файла, с тем, чтобы он небыл уничтожен работающими программами.
На выполнение пакетный файл запускается при "холодном" стартe, т.е. это будет происходить каждый раз при нажатии на кнопку "сброс", пока файл не будет уничтожен или переименован.
Не допустить его выполнение можно и с помощью блокирования. Для этого перед отпусканием кнопки "сброс" удерживают любую символьную клавишу.
После выполнения setup-файла "ordos-4" загружает сср и передает ему управление. процессор консольных команд начинает свою работу с поиска на диске "в" файла с именем "ехт" (от слова extend - расширение).
"ordos-4" считывает ехт-файл (файл с именем "ехт") по тем же правилам, что и директива "load". этот файл должен находиться на диске "в". если необходимо, чтобы ехт-файлу было передано управление - добавьте в конце имени символ "$" (exт$).
В этом случае файл должен заканчиваться командой "ret" (ассембл.). Eхт-файл не должен нарушать структуру стека и в любом случае - не затирать сср.
Самый простой пример применения extend-системы - это автоматическая загрузка нового знакогенератора, допустим, учитывающего национальные особенности языка. для этого файлу с таким знакогенератором присваивают имя "ехт". Напомним, что знакогенератор в озу размещается с адреса 0f000h и имеет размер - три блока, т.е. до адреса 0f2ffh, поэтому необходимо проследить, чтобы был соответствующий адрес старта ("посадки") в реквизитах файла. теперь, при каждом "теплом" (по {f4}) перезапуске системы, внутренний знакогенератор будет замещаться новым из файла "ехт". как видим это можно сделать более просто и без setup.tx.
Более сложный пример использования extend-системы - это выполнение функции "print-screen", т.е. распечатки содержимого экрана. Следует иметь ввиду, что это будет графическая копия, а не символьная. Как это можно сделать? программе, которая будет распечатывать или сохранять в виде файла на диске "в" изображение экрана, присваивают имя "ехт$". Затем запускают ту программу, копию экрана (допустим это игра) с которой необходимо зафиксировать. В необходимый сюжетный момент нажимают клавишу "сброс". Выполнение программы прервется, но на экране сохранится необходимая фаза изображения. затем начнется инициализация ос4 и extend-система загрузит и передаст управление файлу "ехт$", который и будет выводить информацию на печать, или создаст файл на диске "в". по окончанию работы управление операционной системе необходимо возвращать командой "ret", т.к. в стеке уже хранится адрес возврата. Если возвращаться командой безусловного перехода (jmp) по адресу старта - 0bffdh, операционная система не сможет выйти из цикла вызова ехт-файла.
После выполнения (или только загрузки) ехт-файла управление вновь будет возвращено "ordos-4".
Как завершающий этап - операционная система ищет в диске "а" файл с именем "vc$". это зарезервированное имя графической оболочки операционной системы (по примеру известного "norton-commander'а"), в которой вместо директив используется удобные меню и окна.
Файл графической оболочки может затирать сср, однако при этом должен брать на себя функции по ведению диалога с пользователем и выполнению команд по обработке файлов.
Существующая в настоящее время программа 'nc$' v6.3, расчитанная на работу с 128 кбайтами озу (т.е. работает с дисками "а" и "в"), формирует сама файл "ехт$". С его помощью производится автоматическая перезагрузка экранной оболочки. Для"ordos-4" - это излишество, т.к. опознавание экранной оболочки происходит непосредственно, по ее имени. Тем не менее атавизм "старого" "norton'а" не вызывает конфликтной ситуации, а лишь мешает использовать ехт-систему для других целей. Для ос4 разработана новая графическая оболочка - "vc$", которая учитывает особенности новой операционной системы и обслуживает четыре диска - "a,b,c,d". .
Графическая оболочка VC - волков коммандер
VC$ - Волков коммандер