Мнемосхемы

Интерфейс оператора для узлов, которые исполняются мониторами в среде DOS, может быть разработан в виде мнемосхемы (набора строк с псевдографикой).

Профайлер без поддержки графических экранов (rtmg32.exe) обеспечивает отображение мнемосхем. Для корректной отработки ввода с клавиатуры не следует запускать профайлер из ИС.

Начальные операции задания мнемосхемы в ИС:

   в узле конфигурируются COM-порты связи с терминалом и клавиатурой (не требуется в случае работы на локальном компьютере под Windows);

   для узла задается тип терминала и клавиатуры (см. Задание параметров узла ). Для работы на локальном компьютере под Windows тип терминала – VGA, тип клавиатуры не задается;

   в узле создается числовой канал, который связан с переменной Terminal типа INPUT (см. Группа ‘Терминалы’ и Подтип 66 ) и вызывает шаблон мнемосхемы или шаблон программы (или канал CALL.Mnemo, который связан с переменной Terminal и вызывает шаблон мнемосхемы);

Мнемосхема без использования шаблона может быть создана с помощью канала CALL.Mnemo, для которого задана только связь с переменной Terminal.

   при необходимости ввода с клавиатуры в узле создается канал, который связан переменной Keyboard типа INPUT.

Первые три аргумента канала-мнемосхемы задают общие параметры отображения:

   arg0 и arg1 – номера начальной и конечной строк для вывода при старте МРВ. Величина arg1-arg0+1 задает число одновременно отображаемых строк (размер окна терминала);

   arg2 – флаги.

Объекты для вывода задаются последующими группами аргументов (до 4 аргументов в группе, одна группа задает один объект, разные объекты могут быть выведены в одну и ту же строку).

Если для любого из аргументов требуется задать постоянное значение, то эта операция должна быть выполнена в окне свойств канала-мнемосхемы (Значение по умолчанию).

В описании ниже указаны порядковые номера аргументов в группе.

Arg0 – сумма значений байта 0 этого аргумента и смещения по X (см. Подтип 66 ) задает начальное знакоместо для вывода объекта. Значение байта 1 задает длину строки.

Arg1 – сумма значений нулевого слова этого аргумента и смещения по Y (см. Подтип 66 ) задает номер строки для вывода объекта. Значение первого слова (SHOW) задает режим отображения.

Arg2 – байт 0 этого аргумента задает цвет объекта, байт 1 – цвет фона (значение фона больше 8 задает режим мигания):

 

Число

Цвет

Число

Цвет

0

Black (черный)

8

Gray (серый)

1

Blue (синий)

9

Light Blue (светло-синий)

2

Green (зеленый)

A

Light Green (светло-зеленый)

3

Cyan (голубой)

B

Light Cyan (светло-голубой)

4

Red (красный)

C

Light Red (светло-красный)

5

Magenta (фиолетовый)

D

Light Magenta (светло-фиолетовый)

6

Yellow (желтый)

E

Light Yellow (светло-желтый)

7

White (белый)

F

Bright White (ярко-белый)

 

Arg3 – привязка и формат вывода (см. ниже).

4 аргумента в группе должны быть созданы в том случае, если атрибут Параметр переменной Terminal равен 4 (см. Подтип 66 ).

Если Параметр=1, то не требуется создание аргументов, задающих знакоместо вывода и цвет (т.е. в группе должно быть 2 аргумента).

Если Параметр=2, то не требуется создание аргумента, задающего цвет (т.е. в группе должно быть 3 аргумента).

Значение Параметр=3 зарезервировано.

Формат вывода объекта зависит от типа данных аргумента arg3 следующим образом (см. Определение переменных и констант ):

   BOOL – если значение привязки равно 0, выводится слово "FALSE", в противном случае – слово "TRUE";

   1-байтовый – если к аргументу привязан канал FLOAT, выводится десятичное целочисленное представление его значения (%d). Если к аргументу привязан канал HEX16 или HEX 32, то формат вывода определяется по следующему алгоритму:

   если канал имеет вид представления DEC (см. Канал класса HEX16 ), то выводится десятичное целочисленное представление его значения (%d);

   если канал имеет вид представления HEX, то формат вывода зависит от значения SHOW:

0 – HEX

1 – BIN

   2-байтовый – аналог предыдущего для 2-байтовых значений;

   4-байтовый – аналог предыдущего для 4-байтовых значений за одним исключением – в этом случае нет вывода в двоичном формате (SHOW не анализируется);

   любой из временных – дата/время в стандартном формате;

   REAL или LREAL – формат вывода зависит от SHOW: 0 – d, 1 – 1f, 2 – 2f, 3 – 3f, 4 – 4f, 5 – 6.3f, 6 – 6.2f, 7 – e (см. Формат Си вывода чисел ).

Если для arg3 привязка не задана, используется значение аргумента по умолчанию или задаваемое в программе (с помощью этого механизма можно создать, например, цветовой индикатор).

Если значение байта 1 arg0 равно 0, длина строки максимальна (определяется атрибутом Размер строки переменной Terminal).

Если SHOW<128, перед выводимой строкой выводится имя привязанного канала.

Если к arg3 привязан канал, связанный с переменной Keyboard типа INPUT (см. Подтип 66 ), то возможен ввод с клавиатуры и выполнение ряда других функций.

Если объектов Keyboard несколько, для перехода между ними используется клавиша Tab. Если вывод имени канала разрешен, активная клавиатура маркируется знаком "=" (после имени канала), пассивная – знаком "*".

Набираемое на клавиатуре значение записывается во вход канала Keyboard и отображается после знака "=". В ходе набора могут быть использованы следующие клавиши: ESC – очистить ввод, DEL или BACKSPACE – стереть последний символ. Если для канала Keyboard заданы границы LL и HL, то при нажатии клавиши  к текущему введенному значению прибавляется HL, а при нажатии клавиши  – LL. Для ввода нужно нажать клавишу ENTER – по этой команде введенное значение копируется в выход канала (атрибут Q), а атрибут In обнуляется.

Код нажатой клавиши, не имеющей кода ASCII, записывается в канал @Key_Code (см. Группа СИСТЕМНЫЕ ).

Дополнительные командные клавиши:

   / – прокрутка мнемосхемы в окне терминала;

   HOME – отображение в окне терминала начальных строк мнемосхемы;

   ESC – многократное нажатие этой клавиши приводит к останову МРВ и выходу в DOS (в WINDOWS – только останов).