ГИ ЭКВМ, вывод текста


Главная / ЭКВМ / Программы / Примеры

Графический интерфейс (ГИ) представляет собой набор структур. Структуры (экранные формы) пронумерованы и перечислены в главной таблице меню. Для работы с ГИ требуется инициализация некоторых регистров функций.

В таблице перечислены регистры функций ГИ, инициализация которых требуется для вывода текста.

Номер регистра
Назначение
Примечание
9200 Разрешение графического интерфейса Для разрешения использования ГИ необходимо записать ненулевое значение
9201 Адрес главной таблицы меню Таблица состоит из трёхбайтовых записей, содержащих номер формы и адрес её начала в памяти. Должна быть ограничена байтом 0FFh в поле номера формы
9202 Номер экранной формы Требуется указать перед обращением к ГИ
9203 Номер активного элемента Требуется указать перед обращением к ГИ
9208 Регистр команд интерфейса Для вывода формы на экран следует записать команду перерисовки 40h (6410)

Пример программы

Следующий пример демонстрирует работу с ГИ в программе, которая выводит текстовую строку в определённое место экрана. Текст программы снабжён комментариями и демонстрирует основные приёмы программирования ГИ.

пример вывода текста при помощи ГИ ЭКВМ

Файл программы primgui4.mkp на ЯМК - 57 байт, КС 16167/7

  0 1 2 3 4 5 6 7 8 9
00 Cx PP П 92 02 PP П 92 03 1 PP П 92
10 00 3 5 PP П 92 01 6 4 PP П 92
20 08 БП 21 8Fh 'П' E0h 'р' A8h 'и' ACh 'м' A5h 'е' E0h 'р' 20h ' '
30 E4h 'ф' AEh 'о' E0h 'р' ACh 'м' EBh 'ы' 00h 00h 39h FFh 00h
40 08h 08h 08h 08h 08h 09h 11h 00h 60h 20h
50 14h 53h 10h 00h 23h FFh 10h      

00-15 - инициализация регистров ГИ;

16-20 - вывод формы на экран;

21-22 - бесконечный цикл;

23-35 - строка "Пример формы", нулевой байт конца строки пересекается с главной таблицей форм.

35-38 - главная таблица форм, содержит номер и адрес единственной формы;

39-46 - заголовок формы 0, адреса структур отсчитываются от начала формы;

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

48-55 - программа вывода формы на языке ГИ;

56 - указатель на программу активного элемента - команду END (0FFh).


Текст программы primgui4.mkl для кросс-компилятора:

.CHARSET 1251
; Файл primgui4
; Пример работы с графическим интерфейсом пользователя
; Пример вывода формы с текстовым сообщением
; Версия 1.0 от 12.03.14
; Компилятор mkl2mkp v0.27+

; ====================================================== Начало программы
.ORG 0	
	CX		; Обнулить RX и сбросить признак ввода числа
	PP M 9202	; Текущая форма - 0 
	PP M 9203	; Активный элемент - 0
	1
	PP M 9200	; Разрешение графического интерфейса
	.NUML TFORM	; Адрес на первой странице
	PP M 9201	; Главная таблица форм == TFORM
	64		; Код принудительной перерисовки формы
	PP M 9208	; Перерисовать форму
A1:	GOTO A1		; Бесконечный цикл

;======= Тексты строк могут располагаться в произвольном месте памяти

F0T1:	.TEXT "Пример формы"
	; Нулевой байт для окончания строки - первый в таблице форм 

;===== Главная таблица форм
TFORM:
	.DB 0	; в этой программе только одна форма (с номером 0)
	.DA F0	; адрес начала формы 0
	.END	; конец таблицы

;===== Форма 0
	 
	; Заголовок формы
F0:	.FORM 0, F0DE, F0PI, F0PO, F0PL, F0PR, F0RI, F0KM ; максимальный элемент и таблица смещений

F0DE:				 
F0PI:	
F0PO:
F0PL:
F0PR:	.DB 0			; Запрет обработки

F0RI:	; основная программа экранной формы 
	.TAB  32, 20 		; позиция (X=32,Y=0)
	.TXTP 16, F0T1 		; TXTP - вывести строку из области памяти программ
				; атрибут 16 - перерисовка, расстояние между символами 1
				; F0T1 - адрес строки 
F0KM0:	.END			; конец программы ГИ

F0KM:	; Таблица смещений программ элементов
	.DBB F0KM0

.ENDP

Пример вывода текста без ГИ

Программа для вывода текста может быть выполнена и без использования ГИ.

пример вывода текста без помощи ГИ ЭКВМ

Файл программы primgui4a.mkp на ЯМК - 35 байт, КС 20319/245

  0 1 2 3 4 5 6 7 8 9
00 Cx 2 PP П 90 10 2 0 B↑ 3 2
10 PP П 90 00 2 1 PP П 90 21 K ГРФ БП
20 19 8Fh 'П' E0h 'р' A8h 'и' ACh 'м' A5h 'е' E0h 'р' 20h ' ' E2h 'т' A5h 'е'
30 AAh 'к' E1h 'с' E2h 'т' A0h 'а' 00h          

00-12 - инициализация регистров графического экрана;

13-18 - вывод текста на экран;

19-20 - бесконечный цикл;

21-34 - строка "Пример текста".


Текст программы primgui4a.mkl для кросс-компилятора:

.CHARSET 1251
; Файл primgui4а
; Пример вывода текстового сообщения без использовангия ГИ
; Версия 1.0 от 12.03.14

; ====================================================== Начало программы
.ORG 0	
	CX		; Обнулить RX и сбросить признак ввода числа
	2
	PP M 9010	; Инициализация графического экрана
	20 ENT 32
	PP M 9000	; Координаты вывода
	.NUML T1	; Адрес на первой странице
	PP M 9021	; Вывод строки
	K GRPH
A1:	GOTO A1		; Бесконечный цикл

T1:	.TEXT "Пример текста\0"
.ENDP

НПП "СЕМИКО" (383) 271-01-25 (многоканальный)