ROM-BIOS V2.10 программы на Орион ПРО
Описание особенностей ROM1 V2.10
E:180400 (C) ORIONSOFT
ROM-BIOS V2.10 ДЛЯ "ORION-PRO"
Представляем очередную версию 2.10 базовой системы ввода-вывода, прошиваемой в ПЗУ ROM1 и ROM2 компьютера "Орион-Про".
BIOS на Орион ПРО описание программиста
Отметим, что в компьютер можно устанавливать ROM1 и ROM2 разных версий, при этом возможности компьютера будут ограничены возможностями ПЗУ младшей версии.
Описание особенностей ROM1 V2.10
Основное отличие ROM1 V2.10 от V2.00 заключается в изменении алгоритма загрузки ДОС. Теперь появилась возможность при входе в режим "Orion-Pro" загружать ДОС не только с дискеты и ПЗУ, но и с жесткого диска. Порядок загрузки зависит от положения DIP-переключателей SW1 (наличие дисковода - FDD) и SW2 (наличие жесткого диска - HDD). Если переключатель SW1 находится в состоянии "On", то сначала опрашивается дисковод (в противном случае опрос дисковода пропускается). При наличии в дисководе системной дискеты с нее происходит загрузка ДОС. Если же дискета не вставлена, или не закрыта дверца дисковода, то при нахождении переключателя SW2 в положении "On" производится загрузка ДОС с жесткого диска. Загрузку с жесткого диска можно отменить переводом переключателя SW2 в состояние "Off", назначив тем самым запуск ДОС из ПЗУ ROM2. Описанная последовательность загрузки может быть изображена в виде следующей таблицы (здесь НГМД - загрузка с накопителя на гибком магнитном диске, НЖМД - с накопителя на жестком магнитном диске, ПЗУ - запуск ДОС из ПЗУ ROM2):
Вид загрузки ДОС
┌───────────────────────────────┬─────────────────┐
│ SW1=On │ SW1=Off │
├───────────────────────────────┼────────┬────────┤
│ Наличие системной дискеты │ SW2=On │ SW2=Off│
├────────────┬──────────────────┤ │ │
│Есть дискета│ Нет дискеты │ │ │
│ ├────────┬─────────┤ │ │
│ │ SW2=On │ SW2=Off │ │ │
├────────────┼────────┼─────────┼────────┼────────┤
│ НГМД │ НЖМД │ ПЗУ │ НЖМД │ ПЗУ │
└────────────┴────────┴─────────┴────────┴────────┘
Заметим, что при SW1=OFF запуск ДОС с НЖМД или из ПЗУ происходит быстрее. Обратите внимание, что состояние DIP-переключателя SW7 не учитывается (как это было в V2.00). Теперь SW7 определяет только вид загрузки ORDOS - внутренняя из ROM2 (SW7=On) или внешняя - из ROM-диска (SW7=Off).
При загрузке ДОС с гибкого или жесткого диска анализируется флаговая ячейка, расположенная по смещению 2FH относительно начала считанного BOOT-сектора. Допустимыми значениями этой ячейки являются 0FFH (новые версии ORDOS), 0 (OSDOS 48K или ATLAS), 1 (OSDOS 60K) или 2 (PRODOS).
При назначении из системного меню режима "Orion-128" теперь формируется пауза около 0.5 сек, что с одной стороны предотвращает вход в режим командной строки ORDOS при случайной задержке нажатия на клавишу Enter, а с другой - при задержке более 0.5 сек - позволяет это сделать.
Из ROM1 исключены коды идентификации пользователя, которые использовались в ранних версиях ROM-BIOS, что позволило освободить память для доработок. Таким образом, теперь все пользователи имеют одинаковые прошивки ПЗУ.
И, наконец, в новой версии ROM1 введены команды инициализации таймера 580ВИ53, размещенного на карте COM-портов, что позволяет без проблем использовать канал 3 таймера в качестве дополнительного формирователя звука (гасится выходной сигнал, формируемый таймером при включении питания).
Перед прошивкой ПЗУ ROM1 убедитесь, что модификация ПЗУ соответствует версии компьютера: для "старых" моделей "Орион-Про" V2.20 (их немного) нужно использовать модификацию ПЗУ "03", а для последних моделей V3.10 - модификацию "1FH" (определяет номер сегмента служебного ОЗУ). Номер модификации кодов ROM1 легко проверить по содержимому ячеек ПЗУ 001EH,001FH (30H,33H - для модификации "03" и 31H,46H - для модификации "1FH").
Описание особенностей ROM2 V2.10
Как и в версии 2.00 ПЗУ ROM2 может иметь объем 32 или 64 Кбайта (в первом случае не обеспечивается загрузка ДОС из ПЗУ). Для получения прошивки объемом 32К можно просто записать в ПЗУ первую половину кода ROM2 для ПЗУ 64К.
Доработки коснулись как режима "Orion-128", так и режима "Orion-Pro".
В ROM2 версии 2.10 доработан Монитор для режима "Orion-128", при этом расширен вектор RESET (0F833H). Раньше этот вектор выполнялся только при A=0 (инициализация рабочих ячеек и получение кода идентификации компьютера). Теперь дополнительно при A=0FFH выполняется СЛУЖЕБНАЯ функция получения/установки номера текущего ROM-диска ORDOS (расположенного на Мультикарте). Если перед вызовом функции задано C=0FFH, то переустанавливается текущий ROM-диск, а в регистрах A=C возвращается его номер 0..3. При указании входного значения C=0..3 устанавливается соответствующий новый ROM-диск (другие значения C интерпретируются как C=0).
Введение в Монитор описанной новой функции позволило выполнить доработку ORDOS, обеспечивающую переключение ROM-дисков не только из программы Power Commander, но даже из командной строки. Для этого в командной строке нужно ввести с клавиатуры цифру от 0 до 3, двоеточие и ВК. Независимо от текущего квазидиска будет выбран ROM-диск с указанным номером. Данная возможность поддерживается также при обработке файла SETUP.TX.
Важно заметить, что текущий ROM-диск не меняется даже после нажатия клавиши "Сброс" на клавиатуре, что позволяет работать с выбранным ROM-диском "по полной программе".
Дополнительной особенностью новой ORDOS (кстати, ее версия 4.10) является более корректная работа функции WMAX (установка максимального размера диска). Раньше эта функция действовала только для квазидиска B: (для остальных квазидисков размер диска всегда был 0EFFFH). Теперь для каждого квазидиска можно установить конкретное значение его максимальной границы, что позволяет размещать различные данные и программы в отдельных сегментах ОЗУ, блокируя при этом их порчу путем ограничения объема квазидиска, занимающего эти сегменты.
При входе в командную строку ORDOS действует защита от повторного срабатывания нажатой клавиши. Теперь, чтобы при входе в режим командной строки ORDOS увидеть курсор, нужно отпустить нажатую клавишу. Клавиша Зб (Del) в командной строке работает теперь как и положено - удаляет символ слева от курсора.
Самой важной доработкой ROM2 явилась замена устаревшей программы Power Commander (PC) на более совершенную версию 2.00. Однако из-за значительного увеличения ее объема пришлось пересмотреть распределение памяти ROM2. Программа PC из сегмента 0 ROM2 "перекочевала" в сегмент 3, где раньше располагался набор знакогенераторов для режима "Оrion-Pro". Свободное место в сегменте 3 появилось за счет оптимизации размещения знакогенераторов (сейчас в сегменте 3 хранится всего один знакогенератор и четыре небольших перекодировочных таблицы). Новая программа PC размещается в ROM2 по адресам 6C00H..7FFFH.
PC V2.00 работает в цвете, как и ее предшественница VC на "Орион-128". При заполнении квазидиска B: включается режим псевдоцвета.
Поддерживается мышь, причем как параллельная, так и последовательная IBM-мышь. Двойной щелчок левой кнопки мыши обрабатывается аналогично клавише ВК (интервал между нажатиями кнопки не должен превышать 0.5 сек, а указатель мыши при этом не должен перемещаться), а одинарный щелчок устанавливает указатель файла в позицию курсора мыши. Правая кнопка мыши действует как АР2. Для назначения какой-либо команды необходимо подвести указатель мыши к ее названию в нижней строке меню и один раз нажать левую кнопку мыши. Для "прокрутки" длинного списка файлов в панели необходимо подвести указатель к верхней (или нижней)рамке панели и щелкнуть левой кнопкой мыши.
Для поддержки часов реального времени введена новая команда "O" (вкл/выкл отображения часов). Этой команды нет в меню, но для ее назначения с помощью мыши достаточно щелкнуть один раз левой кнопкой на изображении текущего времени. Необъявленными командами являются также "N" и "X", действующие одинаково - подобно команде "P" они выполняют переключение режима отображения панели, но в противоположном порядке.
Использование дополнительных устройств, таких как мышь и часы, потребовало задействования системы прерываний IM2, заложенной в архитектуре "Orion-Pro". Введена даже возможность использования будильника - при его срабатывании в течение минуты раздаются короткие звуковые сигналы (естественно, в момент работы программы PC V2.00). Для установки текущего времени и времени будильника должны использоваться дополнительно специальные программы.
Введена возможность ускоренного переключения квазидисков в каждой панели: если указатель находится на значке "..", то необязательно переключать квазидиски нажатием клавиши ВК - достаточно нажать клавишу, соответствующую имени диска (для включения ROM-диска - клавишу, соответствующую его номеру 0..3).
Так как Power Commander V2.00 работает непосредственно в ПЗУ ROM2, то размер используемого ОЗУ (для рабочих ячеек и резидентных подпрограмм) удалось свести к минимуму: они расположены, начиная с адреса 0B900H. Буфер каталогов квазидисков располагается с адреса 0B000H, а не 0A000H, как раньше. Таким образом, содержимое памяти до адреса 0B000H не портится.
И, наконец, еще одна новая возможность, предоставляемая ROM2 V2.10: внутреннюю программу PC можно заменить другой без перепрограммирования ПЗУ ROM2: для этого в ROM-диске номер 0 необходимо разместить внешнюю программу с именем PC$.
Описание подготовил В. Пушков
Читаем: BIOS на Орион ПРО описание программиста
На предыдущую страницу На главную страницу На следующую страницу