Описание монитора Орион-128, монитор 3.1

Платка переходник, вместо к573рф2 ставим ПЗУ большего размера, выборку информации (тесты и системные мониторы организуем с помощью дипсвичей или  электронно)

   

Новая платка, выборку делаем с помощь. дипсвичей и электронно!!!

Стандарты ПО, адресов и портов

Информация о Мониторе  3

Составил: В.Чистяков, 1991  монитор-3 для "Орион-128"

Скачать прошивки мониторов, тестов, программ

Полностью совместим с монитором-2. За счет более рационального программирования системных подпрограмм, удалось встроить несколько дополнительных подпрограмм, например подпрограмму ввода командной строки (до 32 символов).

Введена новая входная точка: вход в интерпретатор команд (так называемый - ccp, console command processor). Монитор содержит минимальный резидентный набор директив:

1. директива g[адрес] <вк>. Запуск программы с указанного адреса 2. Директива i. может использоваться в 2-х вариантах: 1 - без параметров - ввод блока с мг с автозапуском (при совпадении кс), и 2-й вариант i с параметром (любая цифра или буква) - ввод блока без автоматического запуска на исполнение. Однако главным преимуществом является то, что это кол-во директив (или команд ccp) можно расширять или заменять другими. Достигается это за счет того, что пользователь может подгружать свой командный процессор (содержащий дополнительный набор команд). с целью расширения возможностей монитора-3 был разработан загружаемый (с магнитофона или пзу) "monitor-ext" (версия 1.2). Этот монитор кроме всех директив для работы с памятью в hex-кодах (d, m, x, k, c, t, f) во всех страницах озу, команд позволяющих работать с магнитофоном в различных форматах записи (имеются форматы рк-86,changer) содержит директивы для работы с файлами ordos (форматирование, загрузка, запуск, удаление файлов) причем в отличие от ordos поддерживает работу во всех дополнительных страницах озу (ordos работает только в 1-й). Таким образом monitor-ext обьемом 2k заменяет ordos, changer, chr$ и m128$ обьемом 7k. Но самым важным является то, что monitor-ext (в отличие от ordos) для работы не требует наличия rom-диска, что многим упростит жизнь на начальном этапе сборки компьютера. С использованием этого монитора значительно облегчается работа по отладке программ, в то время как монитор m128$ рассчитанный на непрограммирующих пользователей, работает только с ordos, не имеет необходимого набора команд и не обеспечивает необходимой оперативности в работе. В мониторе-3 изменена процедура обработки сброса: после сброса (cold start) осуществляется инициализация портов, устанавливаются стандартные значения системных переменных (смотри далее) и управление передается на теплый старт (f86c). Не забываем про CP/M-80.

 При теплом старте (warm start) выполняются по порядку:

1. Проверяется нажатие <сс> или <ус> (только одной из них!) и если нажата, то управление передается резидентному ccp. (Это позволяет блокировать автоматическую загрузку ordos из rom-диска в мониторе-2 для этого приходилось отключать rom-диск).

2. Подсчитывается байт паритета (xor) области b800...bfff. Если он равен 0e6h (а это сигнализирует о наличии <и исправности> ранее загруженной системной программы - например: cp/m boot или загружаемого монитора), то управление передается на 0bffdh.

3. Если байт паритета не равен 0e6h, анализируется наличие rom-диска или хотя бы 2k пзу по адресу интерфейса rom-диска -0f500h. Если пзу есть, то его коды (первые 2к) загружаются в озу b800 - bfff и управление передается на bffd.

4. Если и rom-диска нет, то осуществляется выход в резидентный командный процессор - ccp с двумя доступными командами (g, i). Кроме перечисленных возможностей монитор расширен за счет организации доп.векторов системных подпрограмм - так теперь наряду с п/п ввода/вывода символов сделаны программно-определяемыми и подпрограммы ldbyte и svbyte - п/п ввода/вывода байтов с магнитофона, что позволяет без переделки прикладных программ (например редактора) применять другой (более надежный) формат записи данных на магнитную ленту. Но наверное самым интересным расширением монитора является введение так называемых системных программных прерываний. Теперь не имея в самом компьютере аппаратных прерываний, можно прервать исполнение прикладной программы, исполнить другую программу и вернуться в первую программу (в том же состоянии, что было на момент прерывания). Теперь монитор перед выполнением системных функций (rdkey, cout, inkey, beep) осуществляет проверку на программное прерывание - осуществляется проверка на одновременное нажатие клавиш <сс> и <ус>. Если эти клавиши не нажаты, то все как и ранее - выполняется системная функция. Если-же эти клавиши нажаты то выполняется проверка на наличие прерывания. В самом мониторе зашиты всего 3 программирования прерывания, однако как и для директив монитора кол-во программных прерываний может быть значительно расширено путем подключения дополнительной таблицы прерываний. Резиденты же в мониторе - три программных прерывания: <ус/сс> + <с> - break, горячий старт системы (яч.f86c) <ус/сс> + <s> - pause, пауза до нажатия клавиши <вк> <ус/сс> + <space> - выход в монитор из любой программы резидентные прерывания нельзя программно блокировать, что дает возможность вскрытия защит коммерческих программ (использующих системные функции пзу f800). Теперь немного дополнительной информации для программистов, желающих использовать новые возможности ленинградского монитора. Для расширения директив монитора необходимо знать следующее: если введенная директива не совпадает ни с одной из вышеперечисленных команд резидентного ccp, то управление передается по адресу, находящемуся в ячейках 0f3e3/e4. При этом информация о введенной директиве передается в регистрах: регистры a - код символа директивы, hl - 1-й параметр директивы, de - 2-й, bc - третий параметр эта же информация дублируется в рабочих ячейках ccp: f320/21 - 1-й например, f322/23 - 2-й, f324/25 - 3-й, а в ячейке f326/27 - 4-й пар-р директивы (он передается только в озу). В адресах f300...f31f хранится полная символьная строка введенной директивы. f300 - код символа директивы. если какой-либо параметр не может быть интерпретирован как hex-число, то в соответствующий старший регистр регистровой пары (h,d или b) заносится код 0ffh. разделителем в директивах кроме запятой <,> может быть символ пробела <space>. Используя эту информацию можно расширить набор директив. Это в частности используется в загружаемом расширении монитора-3 - "ext" и других дополнительных утилитах. для желающих расширить количество программных прерываний надо знать, что после обнаружения одновременного нажатия клавиш <ус> и <сс> (при выполнении п/п-м f800) проверяется нажатие клавиш <с>, <s> и пробела. Если ни одна из этих клавиш не нажата то управление передается по адресу из ячеек f3df/e0. Это позволяет вам расширять систему программных прерываний. Но!!! Если вы хотите чтобы был возврат в точку прерывания - сохранять регистры!!! Это далеко не полный перечень возможностей нового монитора-3, полностью все его возможности вы сможете оценить только при его совместной работе с утилитами (расширениями, драйверами) а также при работе в дисковой операционной системе cp/m-80.

По всем вопросам обращаться к Чистякову Владимиру по тел: 106-35-24, Санкт-Петербург с 21.00 до 22.30, или письменно: 192238 Санкт-Петербург а/я 175.

Делайте ваш выбор монитора и помните : "правильный выбор монитора - залог успешной работы программиста ! "билл гейтс" основатель фирмы microsoft

Расширение монитора-3 : "monitor-ext" Описание Монитора Ext

Пока в наличии монитор ЕХТ  1.3 (монитор ЕХТ зашивается в в ромдиск (первые 2к) вместо ОРДОС!!!!

Monitor EXT1.3 описание программиста Monitor EXT1.3 описание программиста

Для расширения резидентного набора команд монитора-3 был разработан работающий из озу модуль расширения - "monitor-ext". операционная система ordos предназначена для работы на прк "Орион-128" на уровне файлов и, по сути дела отгораживает пользователя от машинных ресурсов. У программистов довольно часто возникает необходимость доступа непосредственно к ячейкам памяти. Имеется разработанная авторами "Ориона" программа "м128$", но для оперативной работы она неудобна, т.к всякий раз, когда нужно просмотреть или изменить участок памяти, приходится производить много действий. А если у пользователя нет программ "м128$" и "changer" в rom-диске то ему остается только посочувствовать ... кроме того у многих пользователей вообще нет rom-диска - для них и ordos остается недоступной ... но - не расстраивайтесь! специально для вас, а также для облегчения труда программистов на "Орионе", был разработан "monitor-ext" версии 1.2. (версия 1.0 не поддерживала квазидиски, версия 1.1 неправильно определяла константа чтения). Программа monitor-ext является системным расширением Ленинградского монитора-3 и располагается в озу по адресам b800-bfff, т.е вместо ordos. Что дает пользователю monitor-ext?

Судите сами:

1. Имеется набор привычных директив работы с памятью: d, m, f, t, k, c, x которые более совершенны, чем аналогичные директивы других мониторов (директивы "к" вообще нет в м128$)

2. Все эти директивы работают с любой страницей памяти

3. Имеются директивы работы с магнитофоном, осуществляющие запись и чтение с магнитофона в формате рк-86 и в формате changer, причем файл загружается сразу в свои рабочие адреса и, если это программа ее можно запустить на исполнение. При чтении с магнитофона автоматически определяется константа ввода. 4. monitor-ext предоставляет также возможность работать с rom- и ram-дисками. Причем, если ваш компьютер имеет 4 страницы озу (полный вариант), то вы можете организовать 3 ram-диска - в ordos этого нет! Важно, что форматы файлов monitora-ext идентичны формату файлов ordos. Как видите, если у вас есть monitor-ext то вам не нужны m128$, ch$, chr$ (рк86) и !!! Становится в общем-то ненужной сама ordos. Выбирайте 2 к/байта monitora-ext или 7 к/байт в пзу для ordos, ch$, chr$ и m128$.

В то время как для ordos необходим rom-диск, с monitorom-ext вы обойдетесь и без него, причем и в озу у вас останется больше свободного места для программ. Но это не призыв отказаться от ordos, т.к. это "нерушимый стандарт" для "Ориона" (по крайней мере для читателей журнала "Радио" и "Радиолюбитель"). Кроме того уже существуют две прикладные программы использующие ordos (через входные точки) - пакет Сафронова редактор, ассемблер и дизассемблер и его же бэйсик (в 1.1). Ordos нужно будет загружать только для работы с этими программами. Что касается редактора, ассемблера и дизассемблера, то пакет screen, работающий с монитором-3, гораздо удобнее и лучше Сафроновского (и не "лезет" в ordos, а сам работает с ram-диском, причем со всеми 3-мя доп. страницами), бэйсик же - пока сырая версия (хорошая графика, но дохлая математика). А теперь более подробно о загрузке и работе monitora-ext. monitor-ext работает только с монитором-3. Монитор "ext" может загружаться с ленты (командой i), автоматически грузиться при включении компьютера из rom-диска (когда он установлен на место 1-го пзу рф2, вместо ordos) а также грузиться как файл из ordos. Однако такая загрузка монитора "ext" необходима только один раз, т.к. далее по нажатию на сброс осуществляется автоматическое определение наличия в озу модуля "ext" и передача ему управления независимо от наличия rom-диска и ordos. Чтобы все же иметь возможность перезагрузить ordos (не выключая питание) в monitore-ext предусмотрена команда q, которая передает управление на горячий старт (f86c) предварительно изменив озу по адресам b800-bfff, после чего байт паритета этой области не равен 0e6h и выход в монитор "ext" не происходит.

Директивы монитора "ext" (версии 1.2):

после запуска монитора экран очищается и выводится сообщение:
* monitor-ext v1.2 *
* peterburg - 1991 *

Monitor EXT1.3 описание программиста Monitor EXT1.3 описание программиста

После чего кроме двух резидентных команд становятся доступны следующие директивы:

Директивы для работы с озу:

d<нач.адр>,[<кон. адрес>],[<n стр. озу>] - дамп озу указанной страницы памяти (по умолчанию основной). Если конечный адрес не указан, то выводятся 128 байт. Дамп содержит ascii- и hex -
представления байтов f<нач.адр>,<кон. адрес>,<байт>,[<n стр>] - заполнение области памяти указанной страницы одним кодом.
директива f имеет еще одно назначение (смотри ниже)
m<адрес>,[<n стр>] - модификация ячеек памяти озу указанной страницы. В отличие от "убогих" аналогичных директив рк-86 и монитора-1 осуществляется ввод и переход на следующий адрес по набору 2-х цифр, без нажатия <вк>. Кроме этого с помощью курс. клавиш "вверх"/"вниз" можно переходить к следующей и предыдущей ячейкам. Кроме этого директива позволяет вводить текст - для ввода ascii-кода клавиши надо нажать сначала <ар2>, затем клавишу t<нач.адр.ист>,<кон. адр. ист>, <адр. пр-ка>,[<n стр>] - копирование блока данных в озу (в пределах страницы). в отличие от "убогих" аналогичных директив рк-86, м-1,специалиста и m128$ возможно копирование в любую сторону и с любым перекрытием
k<нач.адр>,<кон.адр> - подсчет контр. суммы блока ! Только в основной странице памяти.
p<нач.адр>,<кон. адр>,<n стр.ист.>,<n стр. пр-к> - копирование блоков данных из страницы в страницу.
c<нач.адр>,<кон. адр>,<обл. срвн>,[<n стр>] - сравнение областей озу
x<нач.адр>,<кон. адр>,<байт>,[<n стр>] - поиск заданного байта

Директивы для работы с мг:

y[<смещ-е>],[<к.чт>] - диретива чтения блока с мг в формате рк-86. выводит адреса загрузки (в отличие от аналогичной резидентной команды i). директива подобна директиве "i" рк-86, но имеет весьма важное преимущество - перед вводом блока, по пилот тону осуществляется автоматическое определение и установка константы чтения (совместно с директивой "o" позволяет копировать программы, использующие защиту за счет разных скоростей ввода блоков -конст. чт. в ячейке - f3db) - выше надежность. кроме этого не требуется ждать появления пилот-тона, чтобы запустить эту директиву (что, крайне неудобно в мониторе-1); директиву "y" можно запускать до появления сигнала с мг - директива сама определяет начало записи в отличие от м-1 можно прервать ввод - клавиша <ус>. В случае несовпадения контрольных сумм - сообщение "error" o<нач.адр>,<кон. адр>,[<конст. зап>] - вывод блока данных на мг в формате рк-86. (256 байт пилот- тон, синхро-байт 0e6h,адреса загрузки, блок, три нулевых байта, 0e6h, к.с.)
r[<нач.адр>],[<к.чт>] - чтение файла с мг в формате "orion-changer". Автоматическая настройка на скорость, выводит имя, начальный и конечный адреса загрузки. Загрузка осуществляется сразу по рабочим адресам (указанным в файле). при необходимости можно указать другой адрес загрузки (в отличие от директивы y - адрес, а не смещение). Загруженную программу можно запустить по директиве g (необходимо помнить, что ordos-программы без ordos не работают).
файлы загружаются в основную страницу и при необходимости вы сами должны записать его в ram-диск. остановка ввода <ус>.
w<имя>,<нач. адр>,<кон. адр>[,<кнст. зап>] - запись блока на мг в формате "orion-changer". имя до 8 символов.

Директивы работы с квазидисками:

a (без пар-в) - сделать rom-диск текущим и распечатать его каталог b[<n стр>] - сделать ram-диск текущим и распечатать его каталог. если n стр (1,2,3) не указан, то по умолчанию - 1. Таким образом, при наличии 4-х страниц озу вы можете иметь 3 независимых ram-диска, которые обозначаются b/01 - b/03. если у вас только одна доп.страница -
b/02 и b/03 всегда будут пустыми
l<имя файла> - считать файл из текущего диска в озу. Печатаются адреса файла в озу. Можно считывать и $-файлы без запуска <пробел><имя файла> - запуск $-файла на исполнение
s<имя.файла>,<нач.адр>,<кон.адр> - записать файл на текущий диск
f[<n стр>] - форматирование ram-диска, по умолчанию b/01. выводится запрос - отвечать y, а не <вк> как в ordos (это страховка против дребезга контактов клавиши)
e<имя файла> - удаление файла из текущего каталога, выводит запрос. если имя файла не указано удаляется первый по каталогу файл нажатие <вк> на пустой строке дает информацию о текущем квазидиске.

q (без пар-в) - удаление из озу "monitor-ext" и выход на 0f86сh.
h (без пар-в) - help. если загружен модуль помощи, то осуществляется вывод на экран справки по командам монитора. пользователь может сам набрать себе текст (например перечень системных функций). По запуску директивы осуществляется вызов п/п, адрес которой хранится в ячейках b7fc/fd, предварительно определяется факт наличия модуля help в озу: для этого считается байт паритета области, начальный адрес которой содержится в ячейках b7fc/fd, а конечный адрес в ячейках b7fe/b7ff; если он не равен 0e6h, то осуществляется возврат из директивы.

Дополнительная информация о файлах для "асов":

При необходимости испорченные каким либо образом файлы можно восстановить, используя директивы d, m, t с указанием соответствующей страницы. Для этого нужно знать структуру файлов. в rom- и ram-дисках файлы располагаются последовательно, один за другим. каждый файл в начале имеет заголовок из 16 байт. Назначение байтов в заголовке: 8 байт - имя, пустые символы содержат код 20h (пробел) 2 байта - адрес загрузки файла в озу 2 байта - длина файла в байтах с округлением до 16 в большую сторону 4 байта - резерв атрибутов файлов, для прикладных программ далее идут коды самого файла в количестве, указанном в заголовке как длина. сразу за последним байтом файла идет заголовок следующего файла и т.д. признаком конца списка является байт с единичным старшим битом в первом символе имени очередного файла (в ordos - обязательно - 0ffh). Таким образом файлы организованы в виде связанного списка, структура которого одинакова для rom-диска и всех трех ram-дисков.

Монитор-3 для "Ориона-128". руководство программиста.

Монитор-2 (радио/01.91) содержит хороший набор драйверов ввода/вывода, обслуживающих клавиатуру, дисплей, магнитофон. подпрограмма консольного вывода (на экран) обрабатывает, как esc-y последовательность для прямой адресации курсора так и обрабатывает управляющие коды терминала vt52, что позволяет использовать ее при установке операционной системы CP/M-80. Однако автор монитора-2 В. Сугоняко, разрабатывая его, не оставил никаких "шансов на выживание" пользователям, не имеющим rom-диска. с учетом этого, а также для обеспечения возможности расширения был разработан монитор-3 (т.н. "Ленинградский вариант"). Он полностью совместим с монитором-2, выполняет все его функции, но кроме этого обеспечивает ряд дополнительных возможностей. Следует отметить, что почти все системные подпрограммы были переписаны заново, что позволило как увеличить их быстродействие, так и сократить в объеме, за счет чего и стало возможным добавление новых п/подпрограмм и функций. Автором монитора-3 является известный (для работавших на рк-86 и "специалисте") программист из Ленинграда - Ивинских В.Р., который выражает благодарность за предоставленные материалы и помощь в работе над монитором В. Сафронову (г. Электросталь).

Системные ячейки монитора-3 (инициализируется по сбросу)

адрес нач. зн. назначение
f3c3 - c3 (jmp)
f3c4/c5 - -- - адрес п/п beep
f3c6 - c3 (jmp)
f3c7/c8 - -- - адрес п/п ввода символа с клавиатуры
f3c9 - c3 (jmp)
f3ca/cb - -- - адрес п/п ввода строки символов
f3cc - c3 (jmp)
f3cd/ce - -- - адрес п/п вывода символа на экран
f3cf - c0 - старший байт адреса начала экрана
f3d0 - 30 - ширина экрана, байт
f3d1/d2 - f000 - адрес знакогенератора
f3d3 - 00 - признак инверсии печатаемых символов
f3d4 - 00 - номер первой строки экрана
f3d5 - 19 - кол-во строк в окне экрана
f3d6 - 00 - вертикальная координата курсора
f3d7 - 00 - горизонтальная координата курсора
f3d8/d9 - -- - адрес перехода при выпадении сигнала мг
f3da - 40 - константа записи на мг
f3db - 60 - константа чтения с мг
f3dc - 00 - признак инверсного сигнала с мг
f3dd - 00 - рабочая ячейка п/подпрограммы вывода символа
f3de - 00 - рабочая ячейка для обработки esc-кодов
f3df/e0 - -- - адрес п/п доп. обработки системных прерываний
f3e1/e2 - -- - адрес внутр. п/подпрограммы вывода символа
f3e3/e4 - -- - адрес п/подпрограммы обработки директив монитора
f3e5 - 00 - признак рус (0ffh)/лат (00)
f3e6 - 00 - рабочая ячейка для автоповтора
f3e7 - 48 - константа п/подпрограммы beep
f3e8/e9 - -- - адрес п/подпрограммы чтения байта с мг
f3ea/eb - -- - адрес п/подпрограммы записи байта на мг

Рабочие ячейки монитора-3 (не инициализируется по сбросу)

f300...f31f - буфер ввода директив
f320/21 - 1-й параметр директивы
f322/23 - 2-й параметр директивы
f324/25 - 3-й параметр директивы
f326/27 - 4-й параметр директивы
f3c1/c2 - врем. хранение sp при работе п/п scroll
f3ec/ed - ramtop, значение макс.доступной памяти

Стандартные подпрограммы монитора-3

Монитор-3 содержит подпрограммы, которые пользователь может вызывать, соблюдая определенные соглашения. Эти п/программы являются стандартными и совместимыми с монитором-1 и монитором-2. f803 - rd-key, ввод символа с клавиатуры. выход: a - введенный символ. все регистры (кроме a) сохраняются. проверяется нажатие клавиш <ус>/<сс> и выполняется обработка программного прерывания. Выполняется переход по адресу в ячейках f3c7/c8. В п/п реализован автоповтор. В мониторе-2 используется простейший и крайне неудобный алгоритм автоповтора. Этот недостаток был устранен в мониторе-3. в отличие от аналогичной п/п м-2, звуковой сигнал подается и код символа возвращается при нажатии, а не при отпускании клавиши, что очень существенно, например при быстром наборе текста.
f806 - ldbyte, ввод байта с мг. вход: a=0ffh - с поиском синхро-байта 0e6h; a=08 - без поиска. выход: a - введенный байт. все регистры (кроме a) сохраняются. Осуществляется переход по адресу, содержащемуся в яч. f3e8/e9. П/п должна вызываться только при наличии сигнала на магнитофонном входе. При "выпадении" сигнала осуществляется переход по адресу, содержащемуся в яч. f3d8/d9, причем стек остается "засоренным" на 6 байт !
f809 - cout, вывод символа на экран. вход: c - код символа. все регистры сохраняются.
проверяется нажатие <ус>/<сс>. Осуществляется переход по адресу содержащемуся в ячейку f3cd/ce. обрабатываются все управляющие коды и esc-последовательности м-2 описанные в "радио" (01.1991).
Может быть определено окно, внутри которого действуют операции очистки и роллинга. В отличие от м-2 матрица символов 6*8, а не 6*7,что позволяет использовать более красивый шрифт и главное буквы кои-8; а также очищается (цветом фона) пространство между строками.
f80c - svbyte, запись байта на мг. Вход: c - записываемый байт. Все регистры сохраняются. Переход по адресу в яч. f3ea/eb.
f80f - вывод символа на экран. Вход: a - код символа. Все регистры сохраняются. Переход на стандартную п/п вывода символа (т.е вектора перехода на имеет). Проверяется наличие вызова прогр. прерывания с клавиатуры - <ус> или <сс>.
f812 - status, опрос состояния клавиатуры. Все регистры (кроме a) сохраняются. Выход:
a=00 - никакая клавиша не нажата, a=0ffh - нажата какая-то клавиша. К сожалению не имеет вектора, что "блокирует" применение аппаратной клавиатуры.
f815 - pr_hex, печать на экране байта в шестнадцатеричном виде. Вход: a - байт. все регистры, кроме регистра a! Сохраняются.

4

f818 - pr_msg, вывод на экран сообщения. вход: hl - адрес первого байта сообщения, последний байт - 00h. все регистры, кроме hl, сохраняются. hl указывает по выходе на следующий за сообщением байт.
f81b - inkey, ввод кода нажатой клавиши (чтение на лету). проверяется нажатие <ус>/<сс>. выход: a=0ffh - клавиша не нажата, a=0feh - нажата рус/лат; иначе код клавиши, сформированный с учетом состояния клавиатуры (рус/лат), нажатия <сс>/<ус>
f81e - запрос положения курсора. выход: рег. h - номер строки, рег. l - номер позиции (столбца). Остальные регистры сохраняются
f821 - п/п пользователя. По сбросу (мон-3) п/п ввода строки символов. Вход: hl-начало буфера, de - конец. возврат по <вк> или концу буфера. Строку можно редактировать с пом. клавиши "<-"; при загрузке cp/m подменяется п/п print (эхо-печать в cp/m вкл-ся ctrl/p).
f824 - ld_mas, чтение массива с мг. Адреса считываются с ленты
f827 - стандартная п/п sv_mas, запись массива на мг. заглушена.
f82a - ch_sum, подсчет контр.суммы блока. Вход: hl - нач. адрес, de -кон. адрес. выход: de -кон. адрес, hl=de, bc=контр. сумма
f82d - распаковка внутреннего знакогенератора. Распаковка осуществляется по более быстрому и короткому алгоритму.
f830 - запрос верхней границы озу пользователя. Выход hl=ramtop
f833 - установка верхней границы озу пользователя. вход: hl=адрес верхней границы озу.
f836 - чтение байта из доп. страниц озу. вход: hl - адрес, a - номер доп. страницы (1-3). выход: c - считанный байт
f839 - запись байта в доп.страницу озу. вход: hl - адрес, a - номер доп. страницы (1-3). c - записываемый байт.
f83c - установка курсора. вход: h - номер строки (y), l - номер позиции (x).
f83f - beep, вывод звука с частотой опред. константой (f3e7). имеет вектор перехода f3с4/c5.
f842 - четыре ячейки содержат номер версии монитора-3 (v3.1).

Для проверки исправности монитора-3 используйте контр. сумму - 7e00. Кроме этой версии монитора существовала более ранняя версия монитора-3: с контр. суммой 24a3/29а7 (02.1991) - п/п вывода символов выводит символы в матрице 6*7 /при этом невозможно применение драйвера вывода символов кои-8, маленькие буквы с "хвостиками" например: p, ё, q при этом получаются на высоте заглавных. Монитор-3 рассчитан на работу с клавиатурой рк-86. К сожалению В. Сугоняко опубликовал драйвер мс7007, считая, что Орион не должен иметь стандартной клавиатуры, а все программы должны работать через bios-f800. однако для игр п/подпрограммы f800 работают слишком медленно (особенно м-2),и п/п в играх обращаются непосредственно к порту клавиатуры. То 3/4 существующих игр работают только с клавиатурой рк86. (драйвер клавиатуры мс7007 сделан неправильно т.к программирует порты а и b отлично от драйвера рк, что приводит к полной несовместимости, если этот драйвер переделать возможно использование на мс7007 программ стандартного Ориона). Исходя из вышеизложенного все наши программы ориентированы на рк-клавиатуру (в т.ч. и драйвер кои7). Независимо от автора монитора-3 сделана его версия для клавиатуры мс7007 (Владимир Иванов и Андрей Мостовой), которая позволяет использовать c мс7007 все игры для рк-клавиатуры. Для работы с монитором-3 (годится и для м-2) целесообразно применение загружаемого оконного драйвера. Данный драйвер загружается по адресам a800-afff и обеспечивает следующие функции: изменение размера выводимых на экран символов - большие буквы (формат 8*8, вместо 5*7 - красивый ibm-шрифт кои-7, значительно меньше утомляется зрение), загрузка полного оконного драйвера п/п вывода на экран.

В мониторе-2 (и мониторе-3) сделаны попытки введения оконных функций, здесь они реализованы полностью. Пользователь имеет возможность определить на экране окно для вывода (в т.числе и в центре экрана) - в пределах этого окна будет осуществляться вывод символов и обрабатываться упр.коды и подпрограммы (роллинга, очистки, адресации). Кроме этого драйвера, для пользователей имеющих принтер целесообразно применение драйвера "основной" кодировки кои-8 для персональных компьютеров (см. мпсс 1986 n4). этот драйвер обеспечивает вывод символов кои-8 (заглавные и строчные русские и латинские буквы) и символов псевдографики ibm-pc (дает возможность украшать тексты и программы красивыми рамками). Данные драйверы могут использоваться с редактором "screen" (версий 2.0 - 2.4).

Санкт-Петербург, апрель 1991

Монитор ЕХТ

СОФТ, прошивки, программы

ОрДос V2.4 Орион 128  CMP/80 авторская cpm/80 2.30

ОР ДОС и CP/M-80 фото экрана

 

Полезные ссылки

Даташит по операционным усилителям

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