Аргументами являются:
a) "адрес-конца" комбинируется с "текущим", чтобы образовать область повторения; эта область является подмножеством области адресов, как определено в 19.1.1.4 или 19.1.2.5. Адресом начала всегда является "текущий", а адрес конца должен быть больше или равен "текущему" (если они совпадают, эта операция полностью эквивалентна операции ТЕКСТ);
b) "строка_значений_первичного_атрибута" - это последовательность из одного или нескольких значений первичного атрибута, как определено для операции ТЕКСТ в 19.2.1.1.
Эта операция подчиняется управлению доступом, как определено в 19.3.
Если в ОО блоки не используются, то эта операция взаимодействует с окном обновления следующим образом. Перемещаясь к адресу конца, операция может проходить один или более массивов X по одному или более массивам Y. Во всех таких массивах X все элементы массива внутри текущего окна обновления будут обновлены. В любом таком массиве X, кроме массива, содержащего адрес конца, для которого нижняя граница окна обновления находится не в начале или выше начала, операция будет обновлять дополнительные элементы массива до тех пор, пока нижняя граница окна обновления не установится в начало. Аналогичное действие выполняется с любыми массивами Y, за исключением массивов, содержащих адрес конца. Операция завершится в адресе конца, перемещая соответственно окна обновления X, Y и Z.
Если в ОО блоки используются, то действует только окно Z. Если адрес конца находится над предыдущим самым высоким обновляемым элементом, то окно Z будет обновляться.
Для каждого обновляемого элемента массива значение первичного атрибута берется из параметра "строка-значений-первичных-атрибутов", начиная с первого значения в последовательности, продолжая по последовательности и в конце возвращаясь в начало последовательности. Если какое-либо значение вторичного атрибута "репертуар знаков", определенного в 19.2.1.1, неверно, то значение первичного атрибута в обновляемом элементе массива неопределено. Другие вторичные атрибуты обновляемых элементов массива задаются, как определено в 19.2.1.1 d - g.
После завершения операции ПОВТОРИТЬ ТЕКСТ, указатель отображения установлен в позицию, непосредственно следующую за последним обновленным элементом массива.
Примечание - Если в ОО используются блоки, то они могут перекрываться и это может привести к обновлению элементов массива более одного раза.
19.2.1.3 Операция АТРИБУТ
Эта операция имеет форму
АТРИБУТ идентификатор-атрибута значение-атрибута область-атрибута
Она присваивает вторичному атрибуту, заданному аргументом "идентификатор-атрибута", значение, определенное аргументом "значение-атрибута" для некоторых или для всех элементов массива, или присваивает соответствующее модальное или глобальное значение атрибута или определенную комбинацию действий, в соответствии со значением аргумента "область-атрибута".
Ее аргументами являются:
a) "идентификатор-атрибута" - идентификатор одного из вторичных атрибутов, перечисленных в 13.2;
b) "значение-атрибута" - разрешенное для этого атрибута значение (см. подпункты d - f), может быть или "нуль", если аргумент "область атрибута" является "модальным", или "глобальным" (см. подпункт с);
c) "область-атрибута" принимает одну из следующих форм:
1) любая допустимая область адресов, как определено в 19.1.1.4 или 19.1.2.5;
2) "глобальная" - неявно определяет область адресов "начало", "конец" для непосредственного действия, и глобальному значению атрибута присваивается значение аргумента "значение-атрибута"; значение аргумента "значение-атрибута" "нуль" является допустимым;
3) "модальная" - модальному значению атрибута присваивается значение аргумента "значение-атрибута" (этим значением области атрибута не определяются элементы массива для непосредственного действия; для аргумента "значение-атрибута" допустимо значение "нуль".
Эта операция подчиняется управлению доступом, как определено в 19.3.
Допустимыми значениями атрибутов являются:
d) для репертуара знаков, цвета изображения или цвета фона - целое от 1 до значения соответствующего параметра ФСВТ "возможность ххх" (см. 18.1);
e) для шрифта - целое, большее или равное 1;
f) для выделения - "печатная строка" АСН.1 (см. В.17).
Если аргумент "идентификатор-атрибута" имеет значение "репертуар знаков", то допустимым значением для аргумента "область-атрибута" является "модальное" значение.
Если модальное значение для атрибута "репертуар знаков" изменяется, модальное значение для атрибута "шрифт" устанавливается в явное модальное значение по умолчанию, принимаемое для атрибута "шрифт" при новом значении атрибута "репертуар знаков" во избежание несовместимых значений для этих двух атрибутов.
Если аргумент "идентификатор-атрибута" имеет значение "шрифт", а аргумент "область-атрибута" имеет "модальное" значение, то аргумент "значение-атрибута" должен принимать допустимое значение для текущего модального значения атрибута "репертуар знаков".
Если используемое аргументом "область атрибута" значение атрибута "шрифт" не "модальное", то для любого элемента массива оно является недопустимым для значения атрибута "репертуар знаков" в этом элементе массива, значение "шрифт" в этом элементе массива принимает явное модальное значение по умолчанию для значения атрибута "репертуар знаков" в элементе массива.
Если аргумент "значение атрибута" - "нуль" для атрибута или для одного и более податрибутов в случае атрибута "выделение", а аргумент "область-атрибута" - "глобальная", то операция не изменяет соответствующие значения атрибутов или податрибутов ни в каком элементе массива.
Если аргумент "идентификатор-атрибута" имеет значение "выделение", то аргумент "значение-атрибута" может вызвать общее обновление атрибута "выделение" или частичное обновление, если эта возможность существует (см. 13.2 и В.17) в обновленных элементах массива и/или в значениях модальных или глобальных атрибутах (см. подпункт с).
Операция АТРИБУТ не изменяет указатель отображения.
См. примечание к 19.2.1.2.
19.2.1.4 Операция СТЕРЕТЬ
Эта операция имеет форму
СТЕРЕТЬ область-стирания сброс-атрибута
Она отменяет присвоение значения первичного атрибута для некоторых или всех элементов массива в соответствии со значением аргумента "область-стирания" и может также влиять на значения вторичных атрибутов некоторых элементов массива в соответствии со значением аргумента "сброс-атрибута".
Ее аргументами являются
a) "область-стирания" - указывает любую допустимую область адресов, как определено в 19.1.1.4 или 19.1.2.5;
b) "сброс-атрибута" - принимает значение из множества ("да", "нет"). Если он принимает значение "да", вторичные атрибуты всех элементов массива после воздействия операции СТЕРЕТЬ восстанавливаются в свои явные модальные значения по умолчанию (см. 18.2). Если он принимает значение "нет", значения вторичных атрибутов не изменяются.
Операция СТЕРЕТЬ не изменяет указатель отображения.
19.2.1.5 Специальные операции для возможности определения блоков
Если в ОО используются блоки, то доступны следующие операции, и они подчиняются управлению доступом, как определено в 19.3.
19.2.1.5.1 Операция СОЗДАТЬ БЛОК
Эта операция имеет форму
СОЗДАТЬ БЛОК Z В X(0) Y(0) D(X) D(Y)
Аргументы Z и В задают адрес, в котором должен быть создан блок. Если в настоящий момент при этом значении (b, z) существует блок, то он будет удален и его заменит запрошенный новый блок.
X(0) и Y(0) задают начало блока, используемое в качестве базы для адресации р и q внутри блока (см. 13.1.2). X(0) и Y(0) - значения координат размерностей X и YОО. Они являются положительными целыми.
DxuDy задают размер блока; не может принимать значение, при котором блок перекрывает границы массива Y в любой из размерностях X или Y. Они являются положительными целыми.
Эта операция не изменяет содержимое любого из элементов массива, содержащего в новом блоке.