Приложение 11
Вектор для строкового редактора / edstr(#7F) WIND.SYS / подается в IX.
|
Смеще-ние |
Имя |
Длина |
Комментарий |
|
-23 |
KDEV |
1 |
Логический номер драйвера клавиатуры |
|
-22 |
KCSR |
1 |
управляющий регистр для драйвера клавиатуры (K_CSR) |
|
-21 |
MCSR |
1 |
(M_CSR) (см. ПРИЛОЖЕНИЕ 2) |
|
-20 |
XS |
1 |
X-координата начала редактируемой области экрана в знакоместах 6x8 |
|
-19 |
YS |
1 |
Y-координата (от левого верхнего угла экрана) начала редактируемой области экрана |
|
-18 |
LN |
1 |
Длина редактируемой области экрана в знакоместах 6х8 |
|
-17 |
HT |
1 |
Высота редактируемой области экрана |
|
-16 |
SCSR |
1 |
Регистр состояния строкового редактора. Биты (0/1): 7 - mod - признак модифицированной строки (1) 6 - s_e - smbgt/edstr 1 - c_i - change/insert 0 - t_d - text/document - отрабатывать(1) или нет(0) логические границы |
|
-15 |
DBUF |
2 |
адрес ASCII-буфера строки |
|
-13 |
XC |
1 |
текущая Х-координата курсора в буфере |
|
-12 |
XMAX |
1 |
максимальная длина строки-2 |
|
-11 |
LM |
1 |
левая логичесая граница |
|
-10 |
RM |
1 |
правая логическая граница |
|
-9 |
XO |
1 |
число пропускаемых символов |
|
-8 |
SZ |
1 |
ширина поля требования скроллинга |
|
-7 |
CODE |
1 |
код, возвращаемый редактором |
|
-6 |
LNST |
1 |
длина строки с <ENTER> |
|
-5 |
COM |
1 |
команда, которую должен выполнить редактор при входе |
|
-4 |
TYPE |
2 |
адрес подпрограммы отображения текущего состояния (если 0, то не вызывается) |
|
KDEV: может принимать 2 значения: (0/1). При входе edstr переключается на указанный, на выходе восстанавливает текущий. При загрузки iS-DOS устанавливает 0-ой. Программа edstr(#7F) является внутренней точкой входа рестарта smbgt(#6E) (см. ПРИЛОЖЕНИЕ 14). Предполагалось его использование в базах данных прямо в файловых панелях, для чего их вектора совместили (см. ПРИЛОЖЕНИЕ 18). (Коды, с которыми edstr возвращается см. ПРИЛОЖЕНИЕ 13). |
|||
Приложение 13
Коды, формируемые edstr (#7F) / WIND.SYS /
|
Значение |
Комментарий |
|
XMAX=32 |
Попытка передвинуть курсор за правую физическую границу XMAX |
|
XMIN=33 |
Попытка передвинуть курсор за левую физическую границу (0) |
|
PDEL=34 |
Попытка удаления за левой физической границей |
|
RMRG=35 |
Попытка передвинуть курсор за правую логическую границу (RM) |
|
LMRG=36 |
Попытка передвинуть курсор за левую логическую границу (LM) |
|
LDEL=37 |
Попытка удаления за левой логической границей |
|
RSCR=38 |
Требование правого скроллинга |
|
SDEL=40 |
Требование левого скроллинга |
|
PINS=41 |
Попытка выдвинуть текст за правую физическую границу |
|
LINS=42 |
Попытка выдвинуть текст за правую логическую границу |
|
ELNS=43 |
Длина строки превышает XMAX+2 |
Приложение 14
Вектор 3-го уровня "Оконная технология" / g_scr (#72) WIND.SYS /
|
Смеще-ние |
Имя |
Длина |
Комментарии |
|
-2 |
|
2 |
Адрес таблицы функций пользователя для $panel (#6A) (см. ПРИЛОЖЕНИЕ 15) |
|
0 |
PAPER |
1 |
Атрибуты экрана |
|
1 |
BORD |
1 |
Атрибуты бордюра |
|
2 |
|
9 |
Не используются |
|
параметры для smbgt (#6E): |
|||
|
11 |
SMDRV |
1 |
Логический номер драйвера клавиатуры |
|
12 |
SMKCS* |
1 |
Управляющий регистр для драйвера клавиатуры (K_CSR) |
|
13 |
SMMCS* |
1 |
M_CSR (см. ПРИЛОЖЕНИЕ 2) |
|
14 |
SMXS* |
1 |
Левая верхняя координаты редактируемой строки на экране в знакоместах |
|
15 |
SMYS* |
1 |
|
|
16 |
SMLN* |
1 |
Длина редактируемой области экрана |
|
17 |
SMHT* |
1 |
Высота редактируемой области экрана |
|
18 |
SMCSR |
1 |
Регистр состояния строкового редактора. Биты (0/1): *6 - s_e - smbgt/edstr - режим работы (0) 7 - c_i - change/insert |
|
19 |
SMDBF* |
2 |
Адрес строки |
|
21 |
SMXC* |
1 |
Текущая X-координата курсора в тексте |
|
22 |
SMXMX* |
1 |
Максимальная длина строки - 2·(LN·HT-1) |
|
23 |
SMLM* |
1 |
Левая логическая граница |
|
24 |
SMRM |
1 |
Правая логическая граница |
|
25 |
SMXO* |
1 |
Число пропускаемых символов |
|
26 |
SMSZ |
1 |
Ширина поля требования скроллинга |
|
27 |
SMCOD |
1 |
Код, возвращаемый редактором |
|
28 |
SMLNS |
1 |
Длина строки с кодом 13 |
|
29 |
SMCOM |
1 |
Команда, которую должен выполнить редактор при входе |
|
30 |
SMTYP |
2 |
Адрес подпрограммы отображения текущего состояния (если 0, то не вызывается) |
|
Параметры для строкового редактора smbgt полностью дублируют вектор для edstr (#7F), в чем можно убедиться, ознакомившись с ПРИЛОЖЕНИЯМИ 11 и 18 Значения всех границ могут изменяться в пределах от 0 до 253 * Все параметры, отмеченные "*" smbgt инициализирует сам. |
|||