Набор утилит "UTILITIO" для организации диалога для ПК "ОРИОН-128" по журналу Радиолюбитель

Программа позволяет добавить новые функции работы с Орион-128

Продаю платы и наборы микросхем, куплю микросхемы Платы и комплектующие на ПК Орион-128

Публиковалось в журнале Радиолюбитель №11 - 1994 год

А. ДАВИДОВИЧ, 220047, г.Минск, а/я 40.

НАБОР УТИЛИТ "UTILITIO" ОРГАНИЗАЦИИ ДИАЛОГА ДЛЯ ПК "ОРИОН-128"

При написании системных и инструментальных программ много времени занимает организация диалога программы с пользователем. Для облегчения написания программ, особенно на ассемблере, и для расширения возможностей ПK "Орион-128" пользователям предлагается набор утилит-функций организации диалога с программой.

В набор входят функции по обработке меню, организации "окон", ввода данных и адресов, воспроизведений музыкальных фрагментов и многое другое. Утилиты объединены в один модуль, который хранится на диске "А" или "В" в виде файла. Для вызова утилит модуль необходимо загрузить в память при помощи подпрограмм OR DOS [11]:
NAMEUTIL:DB"UTILITIO" ; имя зарезервировано

Модуль размещается в ОЗУ по адресам AOOOH-A7FFH. Это связано с тем, что адресное пространство A800H-AFFFH уже зарезервировано под некоторые драйверы и подпрограммы (KEYALT$, LPT и др.).

При необходимости модуль можно дезассемблировать и изменить рабочие адреса или удалить некоторые функции. Однако при этом не следует присваивать полученному модулю имя "UTILITIO$" или включать утилиты непосредственно в тело программы. Все рабочие ячейки памяти, используемые утилитами, расположены в начале модуля но адресам A000H-A07DH. Их содержимое изменять не следует.

Набор программ UTILITIO$ для Ордос скачать Набор программ UTILITIO$ для Ордос скачать

Имена функций, их рабочие адреса и использование регистров приведены в табл. I. коды модуля с контрольными суммами - в табл.2.

При работе с модулем нужно учитывать следующее:

- модуль нельзя загружать в память непосредственно из ORDOS (по адресам A000H-A7FFH размещаются каталоги дисков);

- функции рассчитаны на работу со стандартной организацией экрана (25 строк, 64 символа. 1-й экран). При другой организации необходимо вносить поправки во входные и выходные значения регистров;

- необходимо выполнять все условия, предъявляемые функцией, иначе результат непредсказуем;

- вся текстовая информация выводится через подпрограмму монитора F809H, т.е. символ в регистре С, что позволяет использовать подгружаемые драйверы, например. "KEYALT$".

ФУНКЦИЯ I. Прорисовка "окна"

OKNO.0A28DH .

Очищается область экрана и изменяется цвет, прорисовывается рамка и тень от окна, в HL заносится адрес управляющего слова:

LXI H.OKNODAT

CALL OKNO

OK NO DAT: DB N,X,Y,XX.YY,CR,CS,C

где N - не используется, любое значение.

X.Y - координаты курсора левого верхнего угла окна, значение X должно быть в пределах 2...60 (01Н-ЗСП), Y - в пределах 2..,20 (01H-I4H);

XX,YY - размер окна в символах по горизонтали и вертикали соответственно, XX и YY должны быть в тех же пределах, что и X.Y, но при этом должны выполняться условия: X+XX+4<63(3EH), Y+YY+4< 24 (18 Н);

CR - код цвета рамки;
CS - код цвета всего экрана (например, для программ NC$ и VC$ - 1FH); СТ - код цвета тени.

Значения атрибутов цвета стандартные, фон/символ, 00H-FFH |2|. Если область цвета на диске "В" занята файлами, цвет не выводится.

ФУНКЦИЯ 2. Прорисовка рамки RAMKA: 0А1А2Н

На экране рисуется рамка, цвет не изменяется: LXI H.XY LXI D.XXYY CALL RAMKA

где X.Y - адрес экранного ОЗУ левого верхнего угла рамки (CI0BH-EEF0H);

XX, YY - размер рамки в байтах по горизонтали и вертикали соответственно, причем X+XX<EFH, Y+YY<FFH.

Рамку можно нарисовать, задав размер в символах: LXI H.YX ; координаты левого верхнего угла

LXI D.YYXX ; размер рамки в символах

CAU, ADRRAM ; см.функцию 3

CALL RAMKA

ФУНКЦИЯ 3. Вычисление адресов области экранного ОЗУ ADRRAM: 0A24FH

Преобразует размер области, заданный в символах, в адрес для экранного ОЗУ. Обращение к подпрограмме - см.функцию 2. Значения X.XX.Y.YY - такие же, как для функции 1. ФУНКЦИЯ 4. Вычисление адреса символа ADRSIM: 0А26ЕН

Преобразует координаты символа в адрес экранного ОЗУ: LXI H.YX ; координаты символа (0000Н-193FH)

CALL ADRSIM

Функция возвращает в HL адрес, в котором начинается символ (по Y - верхний байт). Например, если YX было равно 505Н, после

Набор программ UTILITIO$ для Ордос скачать Скачать в хорошем качестве дамп программы

выполнения функции в HL будет адрес CI 14Н.

ФУНКЦИЯ 5. Модификация области экранного ОЗУ OBLCLS: А203Н

Заполняет заданную облаем> экранного ОЗУ в 0-й или 1-й странице указанным кодом:

I.XI H.XY ; адрес левого верхнего угла (С000Н-...)

LX1 D.XXYY ; размер области в байтах (0101Н-2FFFH)

MVI A.NSTR ; номер страницы ОЗУ (0 или I) MVI С,КОП ; код заполнения (00H-FFH)
CALL OBLCLS

При помощи этой функции можно очистить экран, изменить цвет отображаемой информации и т.д. Если экранная область 1 -й страницы занята, модификация ОЗУ в этой странице производиться не будет.

По всем вопросам и для получения каталога ПО вышлите автору конверт с марками и Вашим обратным адресом.

Продолжение здесь...  решил не оцыфровыать

 

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

Стандарты Х2 и кросшины

 

 

 

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

 

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

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