Бк 010 01 компьютер
Графические средства
БКО010
Несомненно БК0010(-01) сейчас
является самым распространенным и
доступным домашним компьютером
в нашей стране. Ведь он единствен-
ный из бытовых компьютеров (не
считая довольно дорогих УК-НЦ и
МС-1502), который оснащен 16-раз-
рядным микропроцессором.
Пользователей привлекают в БК и
его графические средства. БК0010
имеет четырехцветную графику с до-
статочно большим разрешением, что
приближает его по графическим
возможностям к IBM PC с графиче-
ским контроллером CGA компьюте-
ра IBM PC.
Графический экран БК имеет фор-
мат 512×256 точек в черно-белом ре-
жиме и 256×256 точек в цветном ре-
жиме. Большая скорость вывода на
экран и удобство работы с графикой
достигнуто за счет использования в
качестве видеопамяти части ОЗУ,
расположенного в основном адрес-
ном пространстве процессора. В
цветном режиме возможно отобра-
жение четырех цветов (черный, крас-
ный, зеленый, синий) или трех града-
ций яркости на черно-белом монито-
ре.
Для подключения монитора у БК
имеется два разъема «ТВ» и «ЦТВ».
На первом формируется черно-бе-
лый полный видеосигнал, на вто-
ром — три цветовых видеосигнала
«R’V’G’V’B» и синхросмесь Удовлет-
ворительное качество отображения
графической информации в формате
512×256, и текста в формате 64 сим-
вола в строке возможно только при
подключении черно-белого монитора
к разъему «ТВ». Это связано с тем,
что цветной и черно-белый режимы
работы экрана переключаются не
программно, а чисто аппаратно. Для
этого подключают монитор к одному
из разъемов «ТВ» либо «ЦТВ». Поэто-
му для получения удовлетворитель-
ного качества изображения в черно-
белом режиме на цветном мониторе
можно подключить один из его цве-
товых каналов к выходу «ТВ». Лучше
всего подключить зеленый канал, так
как этот цвет наиболее приятен для
глаз. Для того, чтобы цветной мони-
тор мог работать с БК и в цветном и
в монохромном режиме можно со-
брать простейшую схему приведен-
ную на рис.1. В качестве переключа-
теля режима можно использовать
кнопочный переключатель типа П2К с
фиксацией в нажатом положении.
У владельцев черно-белых мони-
торов возникает другая пробле-
ма — в цветном режиме синий и зе-
леный цвета отображаются одинако-
во, поэтому некоторые детали цвет-
ного изображения практически не-
различимы. Для решения этой про-
блемы можно собрать схему, приве-
денную на рис.2. В нижнем по схеме
положении переключателя черно-бе-
лый монитор работает в псевдоцвет-
ном режиме, когда на экране цвета
Графические возможности БХ0010 на аппаратном уровне (под-
ключение мониторов, разнообразные технические средства) в
совокупности с программным общением с графикой на уровне
АССЕМБЛЕРа и с богатым набором существущих сервисных
графических программ — необходимый электронный инстру-
ментарий программиста.
отображаются четырьмя градациями
яркости. Нужный уровень яркости
для каждого цвета, а также устойчи-
вость синхронизации можно устано-
вить подбором соответствующих ре-
зисторов. В этой схеме предусмотре-
на возможность переключения на
обычный черно-белый режим из-за
того, что мелкий шрифт в псевдо-
цветном режиме плохо различим.
Теперь поговорим о графических
возможностях БК с точки зрения про-
граммиста, работающего на языке
ассемблера. У БК существует ре-
гистр, управляющий работой экрана,
в описании он называется регистром
смещения. Восьмеричный адрес это-
го регистра 177664. Девятый разряд
регистра управляет режимом ото-
бражения на экране (в описа-
нии — режим расширенной памяти)
При записи в этот разряд «1» в ад-
ресном пространстве компьютера эк-
ран занимает восьмеричные адреса
40000-77777; при записи «0» адреса
70000-77777, в этом режиме работает
1/4 часть экрана и адреса
40000 — 67777 предоставлены поль-
зователю. Первые восемь разрядов
регистра смещения управляют рабо-
той аппаратного скроллера. С по-
мощью этих разрядов можно заста-
вить БК сдвигать вверх или вниз изо-
бражение, находящееся на экране.
При сдвиге вниз все изображения
сдвигается, а последняя строка изо-
бражения становится первой, анало-
гично при сдвиге вверх первая строка
станет последней. По значению
младшего байта регистра смещения
устанавливается, с какого адреса эк-
ранного ОЗУ, будет осуществлятся
вывод на экран. В исходном состоя-
нии в регистр записывается число
1330, при этом адресу 40000 соответ-
ствует левый верхний угол экрана
Каждая строка экрана представляется
64 байтами.
С точки зрения программиста су-
ществуют два режима работы с экра-
ном: черно-белый (512×256) и цвет-
ной (256×256). В режиме 512×256 точ-
ка кодируется одним битом, причем
младшему биту соответствует самая
левая точка из восьми, представляе-
мых байтом. Таким образом, чтобы
загорелась крайняя левая верхняя
точка на экране нужно записать по
адресу 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 # 125656
X,Y — координаты точки, с кото-
рой начинается закраска.
COLOR — код цвета закраски
(221 — 224).
LIM.COLOR — код цвета ограни-
чивающих точек (221 — 224). Огра-
ничивающими точками являются еще
и точки цвета закраски.
ADDR. — константа, являющаяся
адресом ячейки, в которой содер-
жится адрес выхода из программы.
При выполнении этой программы
происходит обнуление 2134.
Программа активно использует
стек. Размер стека при закраске
сложной фигуры может превышать 3
кбайта.
2. Черчение Эллипса.
MOV 2(SP), — (SP) Ввод координат
ADD 10(SP), (SP) начала
MOV 6(SP), — (SP) дуги
MOV 6(SP), — (SP) Ввод координат
ADD 14(SP), (SP) конца
MOV 12(SP), — (5Р)дуги
X,Y — координаты центра эллип-
са.
RAD — радиус эллипса (равен
размеру большой полуоси).
КУ,КХ — коэффициенты сжатия
по X и У (обычно равны длине полу-
осей, но при черчении эллипсов
больших диаметров должны быть
пропорционально уменьшены во из-
бежание сбоя программы)
ADDR — константа, являющаяся
адресом ячейки, в которой содер-
жится адрес выхода из программы.
При использовании данной про-
граммы чертится полный эллипс. Ес-
ли вы хотите начертить дугу, то не-
много измените программу, задав
координаты начала и конца дуги.
1. Использование графической
подпрограммы БЕЙСИКа БКО010.01
для закрашивания области экрана, ог-
раниченной контуром заданного цве-
та, в программах, написанных в кодах
или на АССЕМБЛЕРе, позволяет про-
граммисту экономить ОЗУ для дру-
гих нужд.
R особенности предлагаемой под-
программы относится способ органи-
зации перехода к графической под-
программе с помощью безусловной
передачи управления. Необычны и
коды цвета 221 в — 224 g, отличаю-
щиеся от стандартной кодировки.
Код 221 соответствует стандартному
цвету переднего плана в БЕЙсИКе.
2. Использование графической
подпрограммы БЕЙСИКа для рисова-
ния эллипса в программах, написан-
ных в кодах или на АССЕМБЛЕРе, по-
зволяет экономить ОЗУ для других
нужд и существенно расширяет гра-
фические возможности кодовых про-
грамм.
Технические характеристики
- Процессор К1801ВМ1, работающий на тактовой частоте 3 МГц (4 МГц в БК-0011);
- 32 Кб ОЗУ (128 в БК-0011);
- 24-48 Кб ПЗУ;
- Графические режимы: черно-белый с разрешением 512 на 256, цветной (4 цвета) с разрешением 256 на 256; текстовые режимы отсутствуют.
В качестве внешнего накопителя использовались: магнитофон (стандартное устройство) и внешний дисковод.
Возможно также расширение звуковых возможностей модулями «Менестрель» и блоком из двух YM2149F.
Модификации
Выпускалось несколько моделей этого компьютера: БК0010, БК0010Ш, БК0010-01, УИВ. При этом, под одним именем могли продаваться значительно отличающиеся компьютеры.
- Мог различаться цвет корпуса и клавиш.
- Могла быть установлена клавиатура: пленочная (плоские кнопки закрытые пленкой), мембранная или клавишная.
- ПЗУ могло содержать язык программирования Фокал, Бэйсик или оба одновременно (язык выбирался перемычкой).
- В комплекте с компьютером мог идти контроллер локальной сети.
- В компьютере мог быть отсек со сменными ПЗУ.
- В БК0010 (без -01) не было разъема разъема ЦТВ.
- В БК0010 (без -01) блокировка встроенного ПЗУ не была предусмотрена (поэтому дополнительное ОЗУ вместо ПЗУ) было не подключить.
Клавишная клавиатура удобна и надежна. «Удобна и надежна» за исключением дребезга контактов. Если медленно нажать клавишу до упора, то на экране вы увидите примерно 8 букв. Печатать на этом компьютере можно только резкими и легкими ударами пальцев по кнопкам.
Компьютер имел очень приятный и быстрый интерпретатор Бэйсика, похожий на MSX Basic. Бэйсик занимал 24 КБ ПЗУ, что было больше, чем в аналогичных компьютерах. Программы, написанные на Бэйсике не интерпретировались, а компилировались в «шитый код». То есть в программу на ассемблере, состоящую из команд «поместить в стек» и «вызвать подпрограмму».
Графика и звук
Теперь давайте посмотрим на изобразительные возможности БК-0010. Он имеет чисто графический экран с двумя основными разрешениями: 256 строк по 512 точек в строке и 256 строк по 256 точек. Первое поддерживает только 2 цвета для любой точки, второе — 4 цвета, причём эти цвета постоянны — чёрный, красный, зелёный и синий. Белый цвет в цветном режиме не отображается. Программируемой палитры нет. Специального текстового режима с минимальным объёмом видеопамяти нет — как и на многих других ПК, символы выводятся в графическом режиме в виде маленьких картинок (а это значит, что есть возможность без проблем показывать на экране любые символы любых алфавитов). На экране отображается 24 строки по 32 или 64 символа в строке, вверху экрана есть также служебная строка, на которой выводятся текущие режимы работы и подсказка о назначении «функциональных» клавиш. Имеется достаточно редкая для того времени функция аппаратного плавного вертикального скроллинга — прокрутки экрана.
Вообще, БК имеет два видеовыхода — цветной RGB для подключения цветного монитора или телевизора (ТВ) и чёрно-белый композитный — для подключения чёрно-белого монитора или ТВ. Правда, во многих БК выход RGB на заводе почему-то не устанавливался, и его приходилось допаивать уже самому владельцу ПК. Высокое разрешение 512 × 256 нормально поддерживалось только чёрно-белым выходом, а при подключении через цветной изображение на экране в таком разрешении приобретало странный вид с непонятными цветными контурами и точками. При этом разобрать надписи можно, но нормальной такую работу не назовёшь. Владельцам цветных телевизоров приходилось подключать БК двумя кабелями — один от чёрно-белого выхода БК к композитному входу телевизора, а другой — от цветного выхода БК к RGB-входу ТВ, а в процессе работы переключать входы в зависимости от разрешения, используемого в программе. Впрочем, большинство программ, особенно игр, задействовало только цветной режим с разрешением 256 × 256, и частое переключение не требовалось. К тому же при работе в Фокале, Бейсике или системном мониторе можно было с клавиатуры быстро переключать разрешение экрана, приводя его к нужному виду.
Рис. 12. БК-0010: разъемы питания, параллельного интерфейса, выхода на ч/б телевизор или монитор, шины МПИ и магнитофона; выход RGB (для цветного изображения) отсутствует, как и у многих других экземпляров БК (разъем и несколько других недостающих деталей можно было впаять на плату самостоятельно, также надо было проделать и недостающее отверстие в корпусе для него)
Кстати, подключить БК, как и почти любые другие отечественные ПК, к цветному телевизору в цветном режиме было не так-то просто: большинство телевизоров не имели никакого RGB-входа, хотя на многих моделях его установка была предусмотрена. Это было вызвано тем, что до массового появления домашних ПК к видеовходам просто-напросто нечего было подключать. А те устройства, вроде видеомагнитофонов или игровых телеприставок, которые работали в паре с телевизором, почти всегда имели самый обычный антенный выход, подключавшийся соответственно к антенному входу любого ТВ. В общем, владельцам БК либо приходилось делать несложную доработку своих телевизоров либо лицезреть даже на цветном телевизоре только чёрно-белое изображение.
Нужно заметить, что на БК был ещё так называемый режим расширенной памяти (РП), в который можно было быстро переключиться с клавиатуры. В этом режиме для вывода изображения отводилась только верхняя четверть экрана, зато ОЗУ пользователя расширялось до 28 Кбайт. То есть была возможность при необходимости сильно увеличить длину программ, не требующих задействования всего экрана — например, для каких-то сложных расчётов или баз данных и т. д. Интересно, что некоторые программы вроде копировщиков файлов использовали часть экранной памяти для хранения программ и данных и без перехода в режим РП — тогда на экране появлялись области «шума» из случайных точек случайного цвета.
Звуковые способности у БК-0010 самые обычные — никакого специального звукогенератора, звук воспроизводится чисто программно изменением бита в регистре (точнее, 2-х битов). Такое решение было очень характерно для многих советских и зарубежных ПК того времени. Встречались даже компьютеры совсем без звука — например, «Роботрон-1715» (ГДР). Конечно, звучание такого синтезатора, как правило, было совсем простым — обычно одноголосный звук с прямоугольной волновой формой одинаковой амплитуды и всё. Хотя при более хитрых алгоритмах вывода звука на БК можно было синтезировать и многоголосную музыку и шумовые эффекты и даже имитировать изменение громкости. Кроме того, использование специального встроенного аппаратного таймера БК позволяло также получить интересные звуковые эффекты. Однако в моменты воспроизведения звука процессор БК, как правило, был полностью загружен, поэтому вывод звука в процессе игры сильно тормозил работу, а о постоянном звучании музыки в игре речи обычно вообще не шло. В некоторых играх музыка всё же звучала, но выводилась она короткими фрагментами (в промежутках между которыми процессор успевал выполнять другие задачи вроде перемещения объектов на экране) или использовались более сложные алгоритмы, задействующие встроенный таймер и т.д.