📂 Документ: orion128-soft-m41-m41_clean.html


 

Описание мониторов м4.1 - м4.1 на Орион-128 - 2кБт

Описание различных мониторов для Ориона вместо штатного (авторского V2.0 объемом 2к)

Внимание не забываем про: Стандарты ПО, адресов и портов

Монитор прошивается в 2716 или к573рф2 (5)

 1999 MIFVI

ROM-BIOS для ПРК "Орион-128"
============================
Монитор V4.10

Скачать комплект монитора 4-1+ описалово

Время, прошедшее с момента создания авторского варианта Монитора "М2" показало, что эта программа несколько устарела и требует модернизации. В частности, уже давно стали доступны дисководы, и ими оснащено очень много "Орионов". К тому же, теперь мало кто пользуется магнитофоном, а штатный Монитор вообще не ориентирован на дисковод. В связи с этим предлагается новый Монитор версии 4.10 для "Ориона-128" (версия 3 в свое время была разработана В.И.Чистяковым из Санкт-Петербурга), позволяющий значительно повысить удобство работы с ПК.

При разработке ставилось основное уcловие: объём Монитора должен остаться прежним - 2 Кб. Кроме того, компьютер должен иметь возможность работать с СР/М-80 без ROM-диска. Если пользоваться только CP/M-80, то ROM-диск оказывается лишним, в то время как с Монитором-2 без него не обойтись. Одновременно новый Монитор ориентирован на новую версию ORDOS, качественно отличающуюся от существующих версий. Новая ORDOS предполагает прямое обращение к НГМД и НЖМД, много различных полезных доработок.

По основным рабочим ячейкам и подпрограммам Монитор совместим с Монитором-2 для "Орион-Про", за исключением того, что нет подпрограмм перемещения блока данных и заполнения области ОЗУ константой.

В Мониторе несколько доработан драйвер дисплея и клавиатуры. Изменена форма курсора и снижена частота его мигания, что более приятно для восприятия. Драйвер клавиатуры поддерживает оба варианта клавиатуры: как РК-86, так и МС7007, для чего в ПЗУ необходимо прошить соответствующие коды. При использовании процессора Z80 для прошивки также выбирается соответствующий вариант программы. Кодировка оставлена КОИ-7, так как, с одной стороны, для всех программ, требующих другие кодировки, есть большое число драйверов, с другой стороны, это потребовало бы значительно увеличить объём Монитора, что считается нецелесообразным.

Из Монитора удалены подпрограммы работы с магнитофоном, поэтому обращающиеся к ним программы работать не будут. Однако, при необходимости может быть создан загрузчик для работы с магнитофоном.

В Мониторе размещён стартовый загрузчик операционных систем. Стартовый загрузчик обеспечивает загрузку с НГМД и НЖМД всех известных реализаций СР/М-80 фирмы Орионсофт.

Перечень подпрограмм нового Монитора с описанием входных и выходных параметров приведен в Таблице 1.

Теперь о работе с новым Монитором. После включения питания или нажатия на клавишу "Сброс" Монитор инициализирует рабочую область, программирует порты клавиатуры и ROM-диска, и затем происходит проверка флаговой ячейки холодного загрузчика для определения вида загрузки: ROM-диск, НГМД или НЖМД. Система построена таким образом, что при инициализации рабочих ячеек флаговая ячейка не изменяет свое состояние. Изменить её состояние можно, удерживая при сбросе клавишу "R" (ROM-диск), "F" (FLOPPY DISK - НГМД) или "H" (HARD DISK - НЖМД). При включении питания загрузка всегда будет производиться с ROM-диска, но, если пользователю необходима начальная загрузка с НГМД или НЖМД, то следует поменять содержимое указанной ниже ячейки с кода 0CAH на код 0С2Н (это можно сделать и без очистки ПЗУ):

монитор для процессора ВМ80, загрузка с НГМД - 0F871H
монитор для процессора ВМ80, загрузка с НЖМД - 0F877H
монитор для процессора Z80, загрузка с НГМД - 0F870H
монитор для процессора Z80, загрузка с НЖМД - 0F875H

Затем, если установлена загрузка с ROM-диска, проверяется исправность ROM-диска и возможность старта ORDOS. При наличии ORDOS происходит ее считывание и запуск, в противном случае экран очищается, и выводится знак вопроса "?", сигнализирующий об ошибке, после чего появляется приглашение к выбору вида загрузки: "R/F/H?". Для повторения загрузки с ROM-диска следует нажать клавишу "R", для загрузки с НГМД - клавишу "F", а для загрузки с НЖМД - клавишу "H". Необходимо отметить, что при этом не происходит изменения флаговой ячейки загрузчика.

При загрузке с диска считывается BOOT-сектор. Если считывание произошло с ошибкой, или операционная система отсутствует, то, как и при загрузке с ROM-диска, на экран выводится знак "?" и приглашение к вводу "R/F/H?". При успешной загрузке BOOT-сектора анализируется флаговая ячейка ВООТ-загрузчика, определяющая страницу загрузки ДОС: 0, 1 или 2. В случае загрузки 60-кбайтной версии операционной системы в 1 или 2 страницу ОЗУ Монитор выводит запрос "DOS 60K Y?". При необходимости продолжить загрузку нажимают клавишу "Y", для прерывания загрузки - любую другую. Если пользователь работает только с СР/М без ORDOS, то запрос на подтверждение старта СР/М-60К может только мешать работе. В этом случае следует заблокировать выдачу запроса записью нулевых байтов в указанные ниже ячейки:

монитор для процессора ВМ80 - 0F94CH..0F95CH
монитор для процессора Z80 - 0F936H..0F945H

при этом старт СР/М-60К будет происходить сразу, без выдачи запроса.

Если флаговая ячейка содержит другое значение, дискета считается неопознанного формата, и происходит блокировка старта ДОС с выводом сообщения об ошибке. Исключение составляет случай, когда данная ячейка содержит значение 0FFH, при этом считается, что считанный BOOT-загрузчик должен стартовать с адреса 0В000Н нулевой страницы (без перемещения в адреса 0000Н). Такой способ загрузки предусмотрен, например, для загрузки и старта ORDOS непосредственно с диска.

Монитор разработан в четырех модификациях: для клавиатур РК-86, МС7007 и для процессоров ВМ80 и Z80. Клавиатура МС7007 подключается по авторскому варианту, так же, как и для Монитора 2.

М4.1 Орион 128 М4.1 Орион 128

 

Таблица 1

ПОДПРОГРАММЫ МОНИТОРА V4.10

┌──────────────────────┬────────────────────────────┬─────────┐
│ Подпрограмма                                   │ Параметры                                                         │Сохр.рег        .│
├──────────────────────┼────────────────────────────┼─────────┤
│ 1.Ввод символа с │ вых: А - введённый символ │ HL,DE,BC│
│ клавиатуры 0F803H │ яч.ключ: 0F3C7H,0F3C8H │ │
├──────────────────────┼────────────────────────────┼─────────┤
│ 2.Не используется │ │ │
│ 0F806H │ │ │
├──────────────────────┼────────────────────────────┼─────────┤
│ 3.Вывод символа на │ вх: С - выводимый символ │ HL,DE,BC│
│ экран 0F809H │ яч.ключ: 0F3CDH,0F3CEH │ A,PSW │
├──────────────────────┼────────────────────────────┼─────────┤
│ 4.Не используется │ │ │
│ 0F80CH │ │ │
├──────────────────────┼────────────────────────────┼─────────┤
│ 5.Вывод символа на │ вх: А - выводимый символ │ HL,DE,BC│
│ экран (А) 0F80FH │ яч.ключ: 0F3EEH,0F3EFH │ A,PSW │
├──────────────────────┼────────────────────────────┼─────────┤
│ 6.Опрос состояния │ вых: А=FFH нажата, 00Н нет │ HL,DE,BC│
│ клавиатуры 0F812H │ яч.ключ: 0F3ECH, 0F3EDH │ │
├──────────────────────┼────────────────────────────┼─────────┤
│ 7.Вывод на экран │ вх: А - выводимый байт │ HL,DE,BC│
│ байта НЕХ 0F815H │ │ │
├──────────────────────┼────────────────────────────┼─────────┤
│ 8.Вывод на экран │ вх: HL - адрес сообщения │ DE,BC │
│ сообщения 0F818H │ 00H - конец сообщения │ │
├──────────────────────┼────────────────────────────┼─────────┤
│ 9.Ввод кода нажатой │ вых: А=FFH не нажата │ HL,DE,BC│
│ клавиши 0F81BH │ А=FEH рус/лат или код │ │
│ │ яч.ключ: 0F3F0H,0F3F1H │ │
├──────────────────────┼────────────────────────────┼─────────┤
│10.Запрос положения │ вых: Н - номер строки Y │ DE,BC │
│ курсора 0F81EH │ L - номер позиции Х │ │
├──────────────────────┼────────────────────────────┼─────────┤
│11.Универсальный вход │ ячейка ключ: 0F3CAH,0F3CBH │ │
│ 0F821H │ │ │
├──────────────────────┼────────────────────────────┼─────────┤
│12.Не используется │ │ │
│ 0F824H │ │ │
├──────────────────────┼────────────────────────────┼─────────┤
│13.Не используется │ │ │
│ 0F827H │ │ │
├──────────────────────┼────────────────────────────┼─────────┤
│14.Подсчёт контроль- │ вх: HL - адрес начала │ HL,DE │
│ ной суммы 0F82AH │ DE - адрес конца │ │
│ │ вых: BC - контр.сумма │ │
├──────────────────────┼────────────────────────────┼─────────┤
│15.Распаковка внутр. │ │ │
│ знакоген. 0F82DH │ │ │
├──────────────────────┼────────────────────────────┼─────────┤
│16.Чтен./зап. рабочей │ вх: A=0 - чит.страницу │ HL,DE,BC│
│ страницы ОЗУ │ A=/=0 - зап.страницу и │ │
│ │ переход по верш.стека │ │
│ │ вых:чт. A - номер страницы │ │
│ 0F830H │ зп. A - предыд.состоян.│ │
└──────────────────────┴────────────────────────────┴─────────┘
┌──────────────────────┬────────────────────────────┬─────────┐
│17.Инициализация │ вых: A - код идентификации │ │
│ рабочих ячеек │ версии компьютера │ │
│ 0F833H │ │ │
├──────────────────────┼────────────────────────────┼─────────┤
│18.Чтение байта из │ вх: А - № страницы │ HL,DE,B │
│ дополнительной │ HL - адрес байта │ PSW │
│ страницы 0F836H │ вых: С - считанный байт │ │
├──────────────────────┼────────────────────────────┼─────────┤
│19.Запись байта в │ вх: А - № страницы │ HL,DE,B │
│ дополнительную │ С - записываемый байт │ PSW │
│ страницу 0F839H │ HL - адрес записи │ │
├──────────────────────┼────────────────────────────┼─────────┤
│20.Установка положе- │ вх: H - номер строки Y │ HL,DE,BC│
│ ния курсора 0F83CH │ L - номер позиции Х │ │
├──────────────────────┼────────────────────────────┼─────────┤
│21.Подача звукового │ частота - ячейка 0F3E7H │ HL,DE,B │
│ сигнала 0F83FH │ яч.ключ: 0F3C4H,0F3C5H │ │
├──────────────────────┼────────────────────────────┼─────────┤
│22.Вектор передачи │ вх: А - номер страницы ОЗУ │ HL,DE,BC│
│ управления │ M(SP) - адрес перехода │ │
│ 0F84BH │ │ │
├──────────────────────┼────────────────────────────┼─────────┤
│23.Резерв-вектор иден-│ │ │
│ тификации версии │ │ │
│ Монитора 0F84EH │ │ │
└──────────────────────┴────────────────────────────┴─────────┘

Рабочие ячейки 0F3D8H..0F3DDH не разрешается использовать в программах, так как они будут задействованы в ORDOS версии 6 и выше.

Замечание.
При работе процессора с тактовой частотой 2.5 МГц скорость ввода с клавиатуры может оказаться недостаточной (это заметно на автоповторе). Для устранения этого недостатка можно уменьшить константу автоповтора (3FH) в указанной ниже ячейке:

монитор для процессора ВМ80 - 0FB0AH
монитор для процессора Z80 - 0FAEDH

В. Михаловский

 - с загрузкой драйверов устройств.

2. Операционной системы Windows-OR, которая будет иметь следующие полезные приемущества перед существующими версиями ORDOS:
- прямое обращение к дисководам;
- поддержку внешних энергонезависимых RAM-дисков;
- поддержку винчестера;
- под

 

 

Внимание не забываем про: Стандарты ПО, адресов и портов

Купить конструкторы для сбора ЛК Орион-128 Орион ПРО, куплю микросхемы КР565РУ5В, КР565ру7В, к565ру5г AU, к565ру7г М530, М531, М533 в Au в позолоте, куплю микропроцессоры

 

Полезные и интересные статьи

На предыдущую страницу  На главную страницу  На следующую страницу