Вычислительная техника и её применение 1991-1 1990 г.

А.М. Надежин - графические средства БК-0010.


А.М.Надежин

Графические средства
БКО010

Несомненно БК0010(-01) сейчас
является самым распространенным и
доступным домашним компьютером
в нашей стране. Ведь он единствен-
ный из бытовых компьютеров (не
считая довольно дорогих УК-НЦ и
МС-1502), который оснащен 16-раз-
рядным микропроцессором.

Пользователей привлекают в БК и
его графические средства. БК0010
имеет четырехцветную графику с до-
статочно большим разрешением, что
приближает его по графическим
возможностям к IBM PC с графиче-
ским контроллером CGA компьюте-
ра IBM PC.

Графический экран БК имеет фор-
мат 512x256 точек в черно-белом ре-
жиме и 256x256 точек в цветном ре-
жиме. Большая скорость вывода на
экран и удобство работы с графикой
достигнуто за счет использования в
качестве видеопамяти части ОЗУ,
расположенного в основном адрес-
ном пространстве процессора. В
цветном режиме возможно отобра-
жение четырех цветов (черный, крас-
ный, зеленый, синий) или трех града-
ций яркости на черно-белом монито-
ре.

Для подключения монитора у БК
имеется два разъема "ТВ" и "ЦТВ".
На первом формируется черно-бе-
лый полный видеосигнал, на вто-
ром — три цветовых видеосигнала
"R'V'G'V'B" и синхросмесь Удовлет-
ворительное качество отображения
графической информации в формате
512x256, и текста в формате 64 сим-
вола в строке возможно только при
подключении черно-белого монитора
к разъему "ТВ". Это связано с тем,
что цветной и черно-белый режимы
работы экрана переключаются не
программно, а чисто аппаратно. Для
этого подключают монитор к одному
из разъемов "ТВ" либо "ЦТВ". Поэто-
му для получения удовлетворитель-
ного качества изображения в черно-
белом режиме на цветном мониторе
можно подключить один из его цве-
товых каналов к выходу "ТВ". Лучше
всего подключить зеленый канал, так
как этот цвет наиболее приятен для
глаз. Для того, чтобы цветной мони-
тор мог работать с БК и в цветном и
в монохромном режиме можно со-
брать простейшую схему приведен-
ную на рис.1. В качестве переключа-
теля режима можно использовать
кнопочный переключатель типа П2К с
фиксацией в нажатом положении.

У владельцев черно-белых мони-
торов возникает другая пробле-
ма — в цветном режиме синий и зе-
леный цвета отображаются одинако-
во, поэтому некоторые детали цвет-
ного изображения практически не-
различимы. Для решения этой про-
блемы можно собрать схему, приве-
денную на рис.2. В нижнем по схеме
положении переключателя черно-бе-
лый монитор работает в псевдоцвет-
ном режиме, когда на экране цвета

Графические возможности БХ0010 на аппаратном уровне (под-
ключение мониторов, разнообразные технические средства) в
совокупности с программным общением с графикой на уровне
АССЕМБЛЕРа и с богатым набором существущих сервисных
графических программ — необходимый электронный инстру-
ментарий программиста.

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

Теперь поговорим о графических
возможностях БК с точки зрения про-
граммиста, работающего на языке
ассемблера. У БК существует ре-
гистр, управляющий работой экрана,
в описании он называется регистром
смещения. Восьмеричный адрес это-
го регистра 177664. Девятый разряд
регистра управляет режимом ото-
бражения на экране (в описа-
нии — режим расширенной памяти)
При записи в этот разряд "1" в ад-
ресном пространстве компьютера эк-
ран занимает восьмеричные адреса
40000-77777; при записи "0" адреса
70000-77777, в этом режиме работает
1/4 часть экрана и адреса
40000 — 67777 предоставлены поль-
зователю. Первые восемь разрядов
регистра смещения управляют рабо-
той аппаратного скроллера. С по-
мощью этих разрядов можно заста-
вить БК сдвигать вверх или вниз изо-
бражение, находящееся на экране.
При сдвиге вниз все изображения
сдвигается, а последняя строка изо-
бражения становится первой, анало-
гично при сдвиге вверх первая строка
станет последней. По значению
младшего байта регистра смещения
устанавливается, с какого адреса эк-
ранного ОЗУ, будет осуществлятся
вывод на экран. В исходном состоя-
нии в регистр записывается число
1330, при этом адресу 40000 соответ-
ствует левый верхний угол экрана
Каждая строка экрана представляется
64 байтами.

С точки зрения программиста су-
ществуют два режима работы с экра-
ном: черно-белый (512x256) и цвет-
ной (256x256). В режиме 512x256 точ-
ка кодируется одним битом, причем
младшему биту соответствует самая
левая точка из восьми, представляе-
мых байтом. Таким образом, чтобы
загорелась крайняя левая верхняя
точка на экране нужно записать по
адресу 40000 байт 1, а байт 200 запи-
санный по этому адресу вызовет по-
, явление в первой строке экрана
восьмой точки слева. Девятой же
точке в первой строке будет соответ-
ствовать байт 1, записанный по адре-
су 40001.

В цветном режиме каждая точка
кодируется двумя битами, в которых
задается один из четырех возможных
цветов.

В драйвере ТВ-монитора БК име-
ются два системных прерывания ЕМТ
30 и ЕМТ 32, предназначенные для
рисования на экране точки и отрезка,
однако почти всегда предпочтитель-
ней работать непосредственно с эк-
ранным ОЗУ, так как упомянутые
функции драйвера ТВ-монитора ра-
ботают очень медленно. Существует
также режим "текстовой графики",
управляемый выдаваемыми на экран
с помощью EMT16 или ЕМТ20 управ-
ляющими кодами. К сожалению этот
режим практически не приемлем из-
за большого объема памяти, расхо-
дуемого на хранение управляющих
кодов, неудобства кодирования гра-
фических изображений и малой ско-
рости вывода на экран.

Необходимо отметить, что для
серьезного использования графиче-
ских возможностей недостаточно зна-
ния принципов организации графики
БК, нужны еще и сервисные про-
граммы. Точно так же, как и для
программирования на ассемблере
недостаточно знания машинных ко-
дов — нужна еще программа-транс-
лятор (хотя есть еще люди, програм-
мирующие непосредственно в ма-
шинных кодах, и рисующие картинки
на бумаге в клеточку с последую-
щим ручным переводом их в вось-
меричные числа).

За семь лет существования БК со-
здано большое количество про-
грамм, облегчающих жизнь програм-
мисту, работающему с графикой.
Первой такой программой был гра-
фический редактор О.Туйкина ГРЕДО,
написанный в марте 1987 года и по-
зволяющий с помощью "линзы" (уве-
личенного участка изображения) со-
здавать изображения и записывать их
на магнитофон в удобном формате,
в последующем ставшем для БК
стандартом (первое слово содержит
количество байт в строке, второе сло-
во — количество строк, далее сле-
дуют графические данные построч-
но). После ГРЕДО было создано
большое количество графических ре-
дакторов, позволяющих в удобной
форме создавать и редактировать
графические изображения. Для со-
здания мелких изображений (напри-
мер спрайтов в игровых программах)
наиболее удобны графические ре-
дакторы московского программиста
А.В.Бакерина — GREDIT (V003) и
MULTIPAINT, созданные осенью 1988
года. Половину экрана во время ра-
боты этих программ занимает графи-
ческая линза, в которой в увеличен-
ном виде воспроизводится участок
экрана вокруг курсора. Степень уве-
личения линзы может изменяться.
Редакторы позволяют:

- работать в черно-белом и в
цветном режимах, кроме того
MULTIPAINT имеет восьмицветный
режим работы при котором дополни-
тельные цвета формируются из соче-
тания основных;

- рисовать линии, прямоугольники,
заливать замкнутые участки;

- хранить в буфере до девяти изо-
бражений одновременно;

- инвертировать изображение, пе-
реворачивать его по осям X и Y;

- выводить на экран текст с по-
мощью знакогенератора ПЗУ мони-
тора и внутреннего знакогенератора,
шрифты которого можно редактиро-
вать и хранить на магнитной ленте в
виде отдельного файла;

- считывать и записывать изобра-
жения в стандартном формате ре-
дактора ГРЕДО.

В 1989 году А.В.Бакериным был
создан ныне весьма популярный гра-
фический редактор БК-PAINT, пред-
назначенный в основном не для про-
граммистов, а для простых пользова-
телей БК Вид экрана при работе ре-
дактора, основные режимы его рабо-
ты и типы шрифтов показаны на рис.3
Существуют три модификации редак-
тора: Р1.0К, Р1.0М и P1.0J управляе-
мые соответственно клавиатурой,
мышью и джойстиком. Для класса
КУВТ-86 существует версия редакто-
ра PAINT.BIN, распространяемая в
пакете "Альтернатива" барнаульской
фирмой АЛТ, поддерживающая ра-
боту с локальной сетью и имеющая
универсальное управление (мышь
или клавиатура). По идеологии ре-
дактор близок к графическим редак-
торам IBM-совместимых ма-
шин — редактор не имеет каких-ли-
бо команд набираемых с клавиатуры,
а управляется с помощью пиктог-
рамм и "выпадающих" меню. Редак-
тор имеет 24 псевдоцвета, 4 толщины
линий, 2 типа шрифта при 9 размерах
каждого типа, 20 типов кистей. Ос-
новные режимы редактора:

- линза — при нахождении курсо-
ра в определенной, заранее установ-
ленной части изображения на экране
появляется лупа с изображением,
увеличенным в 2 раза;

мусорная корзина — отмена
промежуточной фазы команды;

- ножницы — перенос или удале-
ние части изображения;

копирование — дублирование
части изображения;

- звездочка — размазывание изо-
бражения;

- буква "А" — печать текста;

- ведро — закрашивание замкну-
той области;

пульверизатор — "напыление"

точек;

- кисть — рисование установлен-
ной кистью;

- карандаш — рисование установ-
ленной толщиной линии белым цве-
том;

- ластик — стирание части изобра-
жение;

ломаная — рисование линий,
конец которых является началом для
последующих;

- вертикальная или горизонтальная
линия;

- пустой прямоугольник;

- закрашенный прямоугольник;

- окружность;

- круг;

- установка толщины линии;

- установка текущего цвета;

- установка шага перемещения
курсора от мыши;

- чтение файла;

- запись файла;

- чтение спецалфавита;

- инверсия изображения;

- печать изображения;

- очистка экрана;

- выход из редактора;

- установка типа кисти;

- установка типа шрифта и его раз-
мера.

Предусмотрена печать изображе-
ния на принтере, совместимом с
robotron СМ 6329. Однако у этого
редактора есть несколько существен-
ных недостатков: отсутствие цветного
режима работы, некорректная про-
грамма печати, искажающая соотно-
шение сторон изображения, неудоб-
ный и нестандартный формат хране-
ния изображения на магнитной ленте
(рисунок записывается в пять после-
довательно идущих файлов), нераци-
ональное использование кнопок мы-
ши (кнопки задублированы).

Далее будут кратко описаны до-
стоинства отдельных графических ре-
дакторов:

- графический редактор москвича
В.Савина ГРАФРЕД имеет линзу раз-
мером во весь экран;

- графический редактор ленинг-
радца В.Маркова SCREDIT позволяет
производить с изображениями слож-
ные математические преобразова-
ния — масштабирование, изменение
цвета, поворот;

- редактор казанского программи-
ста Н М Саттарова GRAF1;2 (кстати
говоря подробно описанный самим
автором в восьмом номере "Вычис-
лительной техники" за этот год) по-
зволяет создавать библиотеку графи-
ческих элементов и выводить их под
одним из четырех углов с изменени-
ем масштаба, что удобно при рисова-
нии электрических схем (схемы этой
статьи созданы с помощью редактора
GRAF1 ;2).

Дополнительное приемущество
редактора GRAF1;2 в очень компакт-
ном формате хранения изображений
(в памяти и на МЛ хранятся не сами
изображения, а способы их построе-
ния). По идеологии редактор
GRAF1;2 близок к графическому ре-
дактору GRAF Д.Муратова, работаю-
щему на ДВК-3.

Отдельную группу составляют
программы, позволяющие найти в го-
товых программах закодированные
графические изображения и отредак-
тировать их (SCOPE (SG-EDITOR)
ABHcorp ) или записать их в файл в
стандартном формате, который мож-
но отредактировать например с по-
мощью редактора MULTIPAINT и
вставить обратно в программу
(FINDER москвича М Л.Лифанцева) .

Существуют также и другие про-
граммы работы с графикой:

- программа КОМР2 В А.Бабкина
позволяет сжимать графические изо-
бражения, создавая таблицу повторя-
ющихся элементов изображения и
записывать их на магнитофон в виде
файла содержащего упакованное
изображение и подпрограмму ее
распаковки. Сжатие может достигать
75%;

- программа GRAFIX, написанная
автором этой статьи позволяет во
время работы других программ рас-
печатывать графический экран на
принтере, совместимом с robotron
СМ 6329.

Научный Совет АН СССР по комп-
лексной проблеме "Математическое
моделирование", Международный
компьютерный клуб. Учебно-научный
Центр математического моделиро-
вания при Правлении общества "Зна-
ние" РСФСР, Информационно-ком-
мерческое Агенство Инновационного
объединения АН СССР совместно с
Московским Домом научно-техниче-
ской пропаганды им.
Ф.Э.Дзержин-
ского и Общественно-политическим
Центром МГК и МК КПСС проводят в
1991 году постоянно-действующий
международный семинар

"Компьютеры
и геометрическое мышление"

В рамках семинара запланированы демон-
страции новейших разработок, цикл лекций и
докладов, рассчитанный на 40 часов и двух-
дневная выставка-ярмарка "Программные
средства машинной графики и геометрии",
организованы встречи и консультации с раз-
работчиками. Планируется издание трудов се-
минара.

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

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

Семинар ориентирован на работников на-
учно-исследовательских и пропктно конструк-
торских организаций, преподавателей, сотруд-
ников, аспирантов и студентов вузов и техни-
кумов, специалистов в области архитектурного
проектирования, дизайна, полиграфии и ком-
пьютерного искусства.

Иногородным участникам предоставляют-
ся места в гостинице.

Желающие принять участие в се-
минаре могут получить необходимую
информацию по телефонам:
445-49-00, 928-21-85

В.А.Шаповалов
(г.Йошкар-Ола)

Графика БЕЙСИКа

В рубрике "БК за рога" неодно-
кратно печатались просьбы читателей
журнала о публикации материалов по
применению Вильнюсского БЕЙСИКа
для программ на АССЕМБЛЕРе.

Предлагаю Вам методы использо-
вания графики БЕЙСИКа для про-
грамм пользователя, написанных на
языке АССЕМБЛЕРа.

1. Закрашивание области экрана,
ограниченной точками заданного цве-
та.

МОV # X, - (Sp)
MOV # Y, - (Sp)
MOV # COLOR, — (Sp)
MOV # LIM.COLOR, — (Sp)
TST - (Sp)

MOV # ADDR., — (Sp)
TST - (Sp)
JMP <5> # 125656

X,Y — координаты точки, с кото-
рой начинается закраска.

COLOR — код цвета закраски
(221 — 224).

LIM.COLOR — код цвета ограни-
чивающих точек (221 — 224). Огра-
ничивающими точками являются еще
и точки цвета закраски.

ADDR. — константа, являющаяся
адресом ячейки, в которой содер-
жится адрес выхода из программы.

При выполнении этой программы
происходит обнуление 2134.

Программа активно использует
стек. Размер стека при закраске
сложной фигуры может превышать 3
кбайта.

2. Черчение Эллипса.

MOV # X, — (SP)

MOV # Y, — (SP)

MOV # RAD, — (SP)

MOV # COL, — (SP)

MOV 2(SP), — (SP) Ввод координат

ADD 10(SP), (SP) начала

MOV 6(SP), — (SP) дуги

MOV 6(SP), — (SP) Ввод координат

ADD 14(SP), (SP) конца

MOV 12(SP), — (5Р)дуги

MOV # KY, — (SP)

MOV # KX, — (SP)

MOV 214, (SP)

X,Y — координаты центра эллип-
са.

RAD — радиус эллипса (равен
размеру большой полуоси).

COL — цвет.

КУ,КХ — коэффициенты сжатия
по X и У (обычно равны длине полу-
осей, но при черчении эллипсов
больших диаметров должны быть
пропорционально уменьшены во из-
бежание сбоя программы)

ADDR — константа, являющаяся
адресом ячейки, в которой содер-
жится адрес выхода из программы.

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

Заключение рецензента

1. Использование графической
подпрограммы БЕЙСИКа БКО010.01
для закрашивания области экрана, ог-
раниченной контуром заданного цве-
та, в программах, написанных в кодах
или на АССЕМБЛЕРе, позволяет про-
граммисту экономить ОЗУ для дру-
гих нужд.

R особенности предлагаемой под-
программы относится способ органи-
зации перехода к графической под-
программе с помощью безусловной
передачи управления. Необычны и
коды цвета 221 в — 224 g, отличаю-
щиеся от стандартной кодировки.
Код 221 соответствует стандартному
цвету переднего плана в БЕЙсИКе.

2. Использование графической
подпрограммы БЕЙСИКа для рисова-
ния эллипса в программах, написан-
ных в кодах или на АССЕМБЛЕРе, по-
зволяет экономить ОЗУ для других
нужд и существенно расширяет гра-
фические возможности кодовых про-
грамм.




  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Юмор - 1001 вопрос про ЭТО.
BBS - список станций BBS ZXNet.
Это интересно - Схемотехника.
Парочка слов от автора - День добрый всем славным читателям и будущим почитателям моего журнала под названием "WEEKEND".
От авторов - Почта в BODY.

В этот день...   25 апреля