Скачиваний:
67
Добавлен:
16.04.2013
Размер:
3.38 Mб
Скачать

Методы структурно – символического кодирования

Широко используются в САПР и основаны на использовании стандартных (типовых) графических элементах, составляющих библиотеки для проектирования. Изображения строятся при вызове из библиотеки элементов и установке его в нужную (базовую) точку и, в дальнейшем, присоединении к нему очередного элемента с целью синтеза требуемого изображения.

Типичная система команд дисплейного процессора

Программой дисплейного процессора мы называем последовательность команд, которая требуется для вывода изображения с заданными визуальными свойствами на экран монитора.

Эти команды можно разделить на два класса: команды, содержащие адреса памяти, и команды, не содержащие таких адресов. Однако, более целесообразно разделить команды дисплейного процессора на команды организации файла и команды генерации примитивов.

В программе дисплейного процессора, имеются лишь константы, представляющие собой управляющие параметры, или координаты точек, или же коды символов, при выполнении такой программы новые данные не формируются.

Поэтому, если бы в командах, генерирующих примитивы, упоминались адреса, по которым располагаются данные, это привело бы к нерациональному использованию памяти. Более экономно и эффективно упаковывать эти данные непосредственно в слово команды. По этой причине адреса памяти используются только в командах, которые организуют поступление потока слов из памяти дисплейного файла для непрерывной регенерации изображения.

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

К типичным командам такого рода относятся, в частности, следующие:

ADDRESS REGISTER Установить адресный регистр

INTERRUPT COMMAND Команда прерывания

JUMP Перейти

JUMP AND STORE Перейти и запомнить

JUMP ТО SUBPICTURE Перейти к подпрограмме

JUMP RETURN Перейти с возвратом

SKIP NEXT WORD Пропустить следующее слово

Адресный регистр играет роль счетчика команд ЭВМ общего назначения. Прерывания могут использоваться для синхронизации генерации изображения с «часами повторения кадров». Они используются также для обнаружения диалоговых прерываний от аппаратных средств, таких как функциональная кнопка, мышь, клавиатурные команды или переключатель светового пера.

Кроме этих аппаратных прерываний, имеются и программные прерывания, которые могут произойти, когда в программе дисплейного процессора встречаются команды INTERRUPT COMMAND, JUMP TO SUBPICTURE или JUMP RETURN.

Некоторые прерывания могут передаваться вместе с кодом, определяющим источник прерывания. Одновременно с этим вывод на дисплей приостанавливается.

Код прерывания фактически представляет собой адрес памяти, начиная с которого хранится соответствующая процедура обработки прерывания.

Команды JUMP и SKIP аналогичны соответствующим командам безусловного перехода и пропуска команды в процессоре общего назначения. Это означает, что в командах перехода может использоваться прямая, относительная или косвенная адресация; кроме того, в командах JUMP и SKIP, как и в команде INTERRUPT, в случае необходимости может быть обеспечена синхронизация с часами повторения кадров.

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

Команды генерации примитивов можно разделить на два класса:

1) команды инициализации сегментов;

2) команды задания примитивов.

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

Типичный набор команд инициализации может быть, например, таким:

SET CONTROL REGISTER Установить управляющий регистр

POSTION X Позиция X

POSTION Y Позиция Y

В управляющем регистре хранятся параметры, от которых зависит выполнение следующих управляющих функций:

  • Активировать (дезактивировать) мерцание (специальный разряд устанавливается в 1 или 0).

  • Выбрать уровень яркости линий или тонового изображения или же цвет (комбинация из k разрядов для 2к уровней яркости из трех разрядов для трех основных цветов).

  • Выбрать тип линии (комбинация из двух разрядов для четырех типов линий).

Яркость может быть: слабой, средней, сильной, очень сильной.

Линии могут быть: сплошными, пунктирными, штриховыми, штрихпунктирными.

В командах POSITION X и POSITION Y флаговый разряд может указывать, каким будет изменение текущего содержимого соответствующего регистра — абсолютным или относительным. В первом случае в регистр заносится новое значение, во втором случае к текущему содержимому регистра прибавляется приращение.

Команды задания примитивов. Команды задания примитивов осуществляют генерацию примитивов в заданном месте экрана и при заданных атрибутах. Эти команды состоят из кода операции и данных - кода литеры или значений координат. Характерный набор таких команд может быть, например, следующим:

SHORT POINT Близкая точка

SHORT VECTOR Короткий вектор

SHORT BLANK Короткий пробел

LONG POINT Дальняя точка

LONG VECTOR Длинный вектор

LONG BLANK Длинный пробел

CHARACTER DATA Текстовые данные

Команды для "коротких" (близких) "длинных" (дальних) примитивов позволяют экономно использовать имеющуюся память дисплейного файла. При задании ""короткой" точки приращения по х и у относительно предыдущей точки ограничены, например, ±31 единицей растра, тогда как при задании "длинной" точки приращение может иметь максимальное число растровых единиц, например ±1023. В "коротких векторах" аналогичным образом ограничиваются приращения, определяющие длину вектора.

В командах SHORT POINT и SHORT VECTOR оба приращения X и Y могут уместиться в одном слове, а для задания дальней точки или длинного вектора требуется два слова. Разумеется, в командах SHORT POINT и SHORT VECTOR координаты всегда задаются в виде приращений. С другой стороны, для выполнения преобразования изображений, за исключением переноса, требуются абсолютные координаты. Кроме того, при повороте и масштабировании длина короткого вектора после преобразования может оказаться больше максимально допустимой. Поэтому короткие векторы используются в основном в подкартинках, предназначенных для генерирования достаточно сложных «символов». Примером может служить аппроксимация окружности многоугольником, составленным из большого числа коротких векторов.