НІНІ
Р а з д е л З
•НИ
Д И А Л О Г П Р О Г Р А М М И С Т О В
А. ДАВИДОВИЧ,
220047, г.Минск, а/я 40.
Н А Б О Р У Т И Л И Т " І І Т і и Т Ю "
О Р Г А Н И З А Ц И И Д И А Л О Г А
Д Л Я П К " О Р И О Н - 1 2 8 "
(Продолжение. Начало в N11/94)
Ф У Н К Ц И Я 6. Прорисовка вертикальной линии
ІЛМУІЇТ: 0АІЕ5Н
Рисует вертикальную линию сверху вниз, причем модифицирует
весь байт, т.е. ширина линии может быть от 1 до 8 точек:
LXI
H ,XY
; см.ФЛ .4
MVÏ
В,KOL
; длина линии в байтах
MVI
C,KOD
; код, определяющий вид линии
; (00Н-РРН)
MVI
A.NSTR
; для прорисовки линии всегда
; ^ т а - о
CALL
LINVRT
Если \ !5ТР -1, будут модифицироваться атрибуты цвета линии,
однако предварительно нуж но проверить экранную область 1-й
страницы на наличие в ней информации, иначе она будет запорчена
(см.функцию 8).
Ф У Н К Ц И Я 7. Прорисовка горизонтальной линии
ЬШОСТ:
0А1Е4Н
Рисует вертикальную линию слева направо. Обращение к функ-
ции и ее действия аналогичны предыдущей.
Если необходимо нарисовать таблицу, сначала рисуются верти-
кальные, а затем горизонтальные линии.
Ф У Н К Ц И Я 8. Проверка экранного ОЗУ 1-й страницы
ОгеКВС:
0А2В1Н
Проверяется возможность модификации атрибутов цвета экрана:
CALL
DISKBC
JNC
MONO
; переход, если диск В заполнен
;после
или
; адреса С000Н, изображение
;монохром
JC
COLOR
; модификация возможна,
;изобр.цветное
Ф У Н К Ц И Я 9. Обработка меню выбора функций
МЕОТ:
0А07ЕН
Позволяет организовать управление работой рабочей программы.
На экран выводится в столбик перечень команд. После обращения к
функции в А возвращается номер выбранной команды:
LXI
CALL
ORA
JZ
DCR
JZ
H.M ENYDAT
; в HL заносится адрес
;перечня команд
MENY
А
КОМАНДА 1
А
К О МАНД А2
;в А номер команды
'.переход, если выбрана
команда 1
;переход,если выбрана
команда 2 и т.д.
Формат блока данных OKMNDAT такой же, как для функции 2
(MENY), но используются все параметры. Требования к управляю-
щим кодам такие же, как для функций OKNO и MENY.
Данной функцией следует пользоваться при организации много-
уровневых “ окон” , т.е. когда команда меню вызывает следующее
“ окно” . В этом случае обращение к функциям 1
Ои 11 происходит без
указания управляющего слова.
Ф У Н К Ц И Я 11. Выход из активного “ окна”
DRMENC:
0А0В0Н
Восстанавливает атрибуты цвета области экрана, в которой нахо-
дится “ окно” , и удаляет тень:
CALL
DRMENC
; если предварительно было
обращение к функции 10
;DRMENY
Активным “ окном” является то, которое выделяется цветом, имеет
тень и в котором вы находитесь в данный момент, т.е. то, которое бы-
ло открыто последним.
При дизактивации “ окна” само меню и рамка остаются на экране.
Функция обрабатывает последнее “ окно” , поэтому если необходимо
дизактивировать предыдущие “ окна", то:
LXI
H.OKNMDA
; адрес управляющего
;слова “ окна”
; адрес 0А091Н
; адрес 0А0СЕН
CALL
USTADR
CALL
OKNUST
CALL
DRMENC
Для дизактивации следующего “ окна” выполняются аналогичные
действия.
Ф У Н К Ц И Я 12. Возврат в “ окно”
DRMENK:
0А0А6Н
Возвращает управление активному “ окну” :
CALL
DRMENK
; если предварительно было
'.обращение к функции
; 10 DR.MENY
Функция не требует предварительной установки HL и не прорисо-
вывает повторно “ окно” .
Ф У Н К Ц И Я 13. Ввод строки символов
INPSTR:
0A5FFH
Обрабатывает строку символов :
LXI
H,YX
; координаты курсора
LXI
D.ADRTXT
; адрес буфера строки
MVI
AJN V
; отображение строки с
;инверсией или без
CALL
INPSTR
; в А возвращается код
управляющей клавиши
; (конец ввода/редактирования)
.\DRTXT:
ОВ“ текст тли пробелы” ,0; длина строки до 63
;символов.
На экран выводится текст (пробелы) без инверсии при А=0 или с ин-
версией при А>0. Ввод и редактирование осуществляется клавишами:
- перемещение по строке —
- удаление символа над курсором — “ Р2” ;
- вставка символа над курсором — “ Р4” ;
- конец ввсда/редактировапия — “ ВК” “ СТР” “ АР2”
Ф У Н К Ц И Я 14. Бегущая строка
ВЕОЗТД:
0А54АН ’
Организует вывод бегущей строки:
DB N,X,Y,XX,YY,CR,CS,CT
LXI
H,YX
; координаты курсора
;коды управления,
LXI
D, PAUSА
; скорость бегущей строки
DB “ Команда 1 ”
;см.ф.1 список команд,
LXI
В, ADRTXT
; адрес текста
DB “ Команда 2”
; название команд, режимов
MVI
A.PROBEL
; пустой пробег
;и т.д., любая текстовая
ADRTXT :
DB
ZNGY,ZNGX, “ Текст. .
.” ,0
информация
Вывод и сдвиг строки начинаются с позиции, заданной YX,
DB “ Команда Z”
Назначение и значение кодов управления аналогичны управляю-
щему слову функции 1, но атрибуты цвета не используются и могут
иметь любое значение, N — номер активной команды (отОдо Z-1). В
эту ячейку памяти записывается после выполнения MENY номер вы-
бранной команды. Активная команда выделяется на экране инверс-
но. При обращении к MENY указатель устанавливается в команду,
номер которой указан в N. Значение XX должно быть равно количе-
ству символов наименования команд (“ Команда 1 ” Х Х -9 ), причем
длина наименований должна быть одинакова. Значение YY должно
быть равно количеству команд в списке.
Выбор команды осуществляется клавишами “ f ” и “ i ” , фиксация
— “ ВК” .
Ф У Н К Ц И Я 10. Работа с меню в “ окне”
DRMENY:
0А095Н
Выполняются последовательно функции 1 (OKNO) и 9 (MENY) :
LXI
Н ,OKMNDAT ;в H L адрес блока данных
CALL
DRMENY
; после выполнения в А
;находится номер команды
1 0
Радиолюбитель 12/94
чем значение X меньше или равно ЗЕН. После вывода всей строки
строка продолжает сдвигаться на количество символов, заданное в А
(PROBEL), т.е. можно организовать разные формы сдвига. Пара-
метр PAUSA (0000H-FFFFH) задает скорость сдвига. Параметры
ZNGY и ZNGX зависят от типа знакогенератора: для стандартного
ZNGY-8 (высота символов в точках), ZNG X-6 (ширина).
Ф У Н К Ц И Я 15. Перемещение области экрана
OBLSDV:
0А5С1Н
Заданная область экрана сдвигается влево:
LXI
H .XXYY
'.адрес начала области
экранного ОЗУ
LXI
В,Х1Х2
;размер области по горизонтали
MVI
A,Y
; размер области по вертикали
LXI
D ,PAUSA
; задержка
CALL
OBLSDV
Значение
ХУХХ
задает правый верхний угол области (0000Н-
ЕБЕЕН); X 1
определяет размер области по горизонтали в байтах
(00Н-2РН); Х2 указывает на сколько точек сдвинуть заданную об-
ласть. Необходимо учитывать, что Х 2/8 должно быть меньше ЕРН-
предыдущая страница 11 Радиолюбитель 1994-12 читать онлайн следующая страница 13 Радиолюбитель 1994-12 читать онлайн Домой Выключить/включить текст