Главная Дока Микро-80 Радио-86РК ЮТ-88 Орион-128 Ссылки Новости Письмо

Описание компьютера Орион-128
Журнал РАДИО

Графический редактор PENX

Остановимся на нескольких моментах, связанных с установкой программы PENX$ на ваш компьютер. Несмотря на то что переназначение управляющих клавиш можно сделать непосредственно при запуске программы, довольно неудобно будет делать это каждый раз, если ваша клавиатура отличается от клавиатуры "Радио-86РК". Переназначить клавиши управления можно непосредственно заменой кодов в программе. Коды управляющих клавиш занимают в программе PENX$ десять ячеек, начиная с ячейки с адресом 000ЗН и по ячейку 000СН включительно. Заметим, что большинство программ для ОРИОНА рассчитаны на работу под операционной системой ORDOS и при загрузке программ с диска и запуске они чаще всего производят изменение каких-либо ячеек непосредственно в самих себе, а оригинал всегда хранится в неизменном виде на диске. Поэтому запустить программу, потом выйти из нее и сохранить директивой S область памяти, где располагается программа вместо оригинала, нельзя. Если вы решите заменить коды управляющих клавиш, вам надо будет сделать эти изменения либо до набора кодов программы, либо непосредственно в файле.

Произвести изменения в файле можно, пользуясь программой М128$, а директивой FILE DUMP определить адреса модифицируемых ячеек на диске. Полный формат этой команды будет выглядеть так:

FILE DUMP В: PENX$ [ВК).

Затем, узнав по каким адресам дополнительной страницы (квазидиска) расположены ячейки, требующие модификации, выполняют директиву MODIFY <АДРЕС>, 1 [ВК) и вводят новые значения.

ПРЕДСТАВЛЕНИЕ ГРАФИЧЕСКИХ ОБРАЗОВ В ПРК "ОРИОН-128"

Создание образов-картинок с помощью программы PENX не является самоцелью. Созданные графическим редактором спрайты нужны для их дальнейшего использования в самых различных областях приложения ПРК. Однако, если вы просмотрите коды, записанные в созданный редактором файл, вряд ли вы сможете увидеть в, них что-то напоминающее то, что вы рисовали. Для того чтобы иметь возможность в полной мере использовать графические объекты, постараемся разобраться как можно более подробно, что же представляет собой созданный редактором спрайт и какие преобразования происходят с картинкой при записи ее на диск в виде стандартного файла ORDOS, заметим, что информация, которую мы даем ниже, предназначена для тех пользователей ПРК ОРИОН, которые достаточно хорошо представляют себе структуру памяти ПРК и, кроме того, имеют навыки в программировании на языке АССЕМБЛЕРа.

Наличие промежуточного этапа - хранения развернутого массива в буфере обусловлено тем, что многие операции, например создание перемещающихся по экрану образов или преобразование изображения в инверсное, невозможно проделать с упакованной информацией. С другой стороны, развернутый графический массив обычно занимает большой объем ОЗУ, и упаковка таких массивов совершенно необходима при одновременной работе с несколькими образами.

При упаковке для записи на диск сформированный массив обрабатывается следующим образом: сначала (теперь уже первыми) записываются 2 байта начального адреса буфера - Х2 и X1, затем размеры (это делается затем, чтобы программа распаковки могла сразу определить, куда распаковывать массив, если он распаковывается в буфер, либо "знала" размеры картинки при распаковке непосредственно на экран). Далее идет собственно упаковка по следующей схеме: если подряд друг за другом следуют несколько одинаковых байтов, записывается байт, в котором старший бит равен 1, а 7 младших бит определяют количество одинаковых (от 1 до 128). Далее записывается само значение повторяющегося байта. Если же в массиве имеется серия различных байтов, то записывается байт со старшим битом, равным 0, и 7-ю битами, представляющими собой длину (опять же от 1 до 128) серии, и далее сама серия байтов. После этого операция повторяется, и так до тех пор, пока не будет исчерпан весь буфер. Распаковка массива проделывается в обратном порядке, причем сделать это можно несколькими способами, в зависимости от того, как и для каких целей используется спрайт. В табл.2 приведена в качестве примера программа, которая работает следующим образом: ищет на диске В файл с именем RIS1.PC, распаковывает его в буфер, а затем выводит на экран.

Однако для прикладных программ чаще всего нужна такая схема: поиск файла по имени, распаковка и вывод. Несколько упакованных спрайтов, например, могут быть объединены в один информационный блок и в таком виде включены непосредственно в программу. В этом случае в подпрограмме распаковки можно исключить все команды работы с диском, и сама подпрограмма будет начинаться не с метки UNPACK, а с метки UNPCK1, кроме того, команды "CALL RDISK" (чтение байта с диска по адресу, задаваемому регистровой парой HL) нужно будет везде заменить на команды MOV А, М. Может быть и так, что для ваших целей не, нужен вывод на экран атрибутов цвета, а необходимо вывести только черно-белое изображение. В этом случае часть программы, отмеченную как "вывод на экран атрибутов цвета", надо заменить на два вложенных "холостых" цикла по счетчикам, задаваемым регистрами В и С, с тем, чтобы пропустить блок атрибутов и вычислить начало собственно изображения. Еще один вариант - распаковка с непосредственным выводом на экран, минуя буфер спрайтов. При таком выводе вместо команд, помеченных в листинге программы комментарием "пропустить 2 байта (размеры)", нужно будет как раз прочитать эти значения размеров картинки и использовать их в качестве счетчиков. Подпрограмма UNPACK при этом довольно существенно усложнится из-за большого количества счетчиков.

В. САФРОНОВ, В. СУГОНЯКО

Московская обл.

Отсканировано с журнала Радио №9 1991 г.
Отредактировано Лесных Ю. 2001 г.

Описание компьютера Орион-128
Журнал РАДИО



(C) 2003-2010 www.danbigras.ru Наш адрес: info@danbigras.ru
Всё о старых компьютерах