|
Описание монитора Орион-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к) вместо ОРДОС!!!! Для расширения резидентного набора команд монитора-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): после запуска монитора экран очищается и выводится сообщение: После чего кроме двух резидентных команд становятся доступны следующие
директивы: Директивы для работы с мг: y[<смещ-е>],[<к.чт>] - диретива чтения блока с мг в формате рк-86.
выводит адреса загрузки
(в отличие от аналогичной резидентной команды i). директива подобна
директиве "i" рк-86,
но имеет весьма важное преимущество - перед вводом блока, по пилот тону
осуществляется
автоматическое определение и установка константы чтения (совместно с
директивой "o" позволяет копировать программы, использующие защиту за счет разных
скоростей ввода блоков -конст. чт. в ячейке - f3db) - выше надежность. кроме этого не требуется
ждать появления
пилот-тона, чтобы запустить эту директиву (что, крайне неудобно в
мониторе-1); директиву
"y" можно запускать до появления сигнала с мг - директива сама
определяет начало записи
в отличие от м-1 можно прервать ввод - клавиша <ус>. В случае
несовпадения контрольных сумм -
сообщение "error"
o<нач.адр>,<кон. адр>,[<конст. зап>] - вывод блока данных на мг в формате
рк-86. (256 байт пилот-
тон, синхро-байт 0e6h,адреса загрузки, блок, три нулевых байта, 0e6h,
к.с.) Директивы работы с квазидисками: a (без пар-в) - сделать rom-диск текущим и распечатать его каталог
b[<n стр>] - сделать ram-диск текущим и распечатать его каталог. если n
стр (1,2,3) не указан,
то по умолчанию - 1. Таким образом, при наличии 4-х страниц озу вы
можете иметь 3 независимых ram-диска, которые обозначаются b/01 - b/03. если у вас только
одна доп.страница - q (без пар-в) - удаление из озу "monitor-ext" и выход на 0f86сh. Дополнительная информация о файлах для "асов": При необходимости испорченные каким либо образом файлы можно восстановить, используя директивы 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 (инициализируется по сбросу) адрес нач. зн. назначение Рабочие ячейки монитора-3 (не инициализируется по сбросу) f300...f31f - буфер ввода директив Стандартные подпрограммы монитора-3 Монитор-3 содержит подпрограммы, которые пользователь может вызывать,
соблюдая определенные
соглашения. Эти п/программы являются стандартными и совместимыми с
монитором-1 и монитором-2.
f803 - rd-key, ввод символа с клавиатуры. выход: a - введенный символ. все
регистры (кроме
a) сохраняются. проверяется нажатие клавиш <ус>/<сс> и
выполняется обработка программного прерывания. Выполняется переход по
адресу в ячейках f3c7/c8. В п/п реализован
автоповтор. В мониторе-2 используется простейший и крайне неудобный алгоритм
автоповтора. Этот
недостаток был устранен в мониторе-3. в отличие от аналогичной п/п м-2,
звуковой
сигнал подается и код символа возвращается при нажатии, а не при
отпускании клавиши, что
очень существенно, например при быстром наборе текста. 4 f818 - pr_msg, вывод на экран сообщения. вход: hl - адрес первого байта
сообщения,
последний байт - 00h. все регистры, кроме hl, сохраняются. hl указывает
по выходе на
следующий за сообщением байт. Для проверки исправности монитора-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 Даташит по операционным усилителям На предыдущую страницу На главную страницу На следующую страницу
|
||