Орион-128, организация экранной памяти Ориона - 128Как в Орионе 128 организована экранная память, цветовые экраны, организация цвета VBOXОРГАНИЗАЦИЯ ЭКРАННОЙ ПАМЯТИ, ОРИОН-128 Одна из важных задач, которую помогают решать самодельные ("гаражные") компьютеры - не только приобщение радиолюбителей к конструированию аппаратуры, но и изучение ими основ программирования. Можно спорить о целесообразности промышленного выпуска компьютеров подобного класса (хотя их дешевизна и простота дают основание для такого спора), но трудно отрицать тот факт, что тысячи любителей, пройдя школу "Микро-80" и "Радио-86РК" стали "на ты" с микропроцессорными системами, многие профессиональные программисты выросли из среды бывших самодельщиков. Журнал Радио №6 1991 г. Графический редактор PENX$, просмотр графических файлов PCVIEW$ В этой статье мы постараемся помочь тем, кто хочет глубже вникнуть в
устройство ПРК "Ориона-128" и расскажем о некоторых особенностях его
построения - вскользь они уже затрагивались в предыдущих публикациях, но
продолжают вызывать вопросы со стороны читателей. Рисунок №1 Если компьютер работает в монохромном режиме, ячейки дополнительной
страницы в формировании изображения не участвуют и изображение целиком
зависит от того, какая информация в данный момент записана в ячейках
видео области основной страницы. Бит, установленный в 1, дает на экране
одну светящуюся точку. Если бит равен 0 - точка погашена. Так, например,
чтобы получить такую картину - полностью погашенный экран и одна
светящаяся точка в левом верхнем углу, необходимо заполнить всю область
0C000H- 0EFFFH байтами со значением 00Н, а в ячейку 0С000Н записать
значение 80Н (двоичное представление шестнадцатиричного числа
80Н-10000000). Рисунок №2 Для программиста, занимающегося разработкой программ, работающих непосредственно с ОЗУ, в том числе и с экранной областью, необходимо иметь представление об общей структуре памяти компьютера. Память компьютера можно представить в виде ленты, на которой друг за другом расположены ячейки, начиная с самой первой, имеющей адрес 0 до последней, с адресом 0FFFFH (в десятичной форме записи это число равно 65535). Однако рассмотренное нами устройство видео ОЗУ показывает, что гораздо удобнее придерживаться несколько другого представления о памяти "Ориона-128", такого, например, какое показано на рис.3. Рисунок №3 На этом рисунке вся память схематически представлена так же, как для
экранной области (см. рис.2), колонками по 256 ячеек. Основная экранная
область при этом является составной частью общего поля памяти. Точно так
же, как и основная страница ОЗУ, расположена дополнительная страница.
Она показана сзади основной, параллельно ей. Это объясняется тем, что
адреса ячеек дополнительной страницы соответствуют адресам ячеек
основной, а то, с какой областью в настоящий момент работает процессор,
зависит от состояния системного порта переключения страниц. Служебная
область, с адреса 0F000H по адрес 0FFFFH, включает в себя служебное ОЗУ
(0F000H- 0F3FFH), порты (0F400H-0F7FFH), ПЗУ и системные порты
(0F800H-0FFFFH). На рис.3 она выглядит "склеенной". Это значит, что
независимо от состояния системного порта страниц при обращении по этим
адресам процессор однозначно будет иметь доступ к системной области. И, наконец, остановимся более подробно на вопросе, каким образом
выводится на дисплей нашего ПРК цветная графическая информация. Как уже было сказано выше, в режиме 0 ячейки дополнительной страницы не принимают участие в формировании изображения. Получение 4-цветного изображения иллюстрируется рис.4. В этом режиме цвет каждой точки растра определяется значениями двух битов, один из которых берется из ячейки в основной области, другой из ячейки с тем же адресом дополнительной страницы, получившееся двоичное число (от 0 до 3), и дает цвет, в который окрашена точка: 00 - черный, 01 - красный, 10 - зеленый, 11 - синий. Можно проделать эксперимент, непосредственно записывая значения в ячейки
экранной области, пользуясь, например, программой "М128$". Для этого
вызовите программу "М128$" и выполните директиву COLOR 0 (это делается
для того, чтобы заполнить экранную область дополнительной страницы
значениями 00Н). Изображение при этом пропадет. Теперь нажмите кнопку
системного сброса и вновь вызовите "М128$".
Директивой MODIFY F8001 запишите в системный порт значение 4 и нажмите
"." (точку), чтобы выйти обратно в меню программы "М128$". Далее
директивой MODIFY Е8801 запишите в эту ячейку дополнительной страницы
значение из примера на рисунке 4 (1E) и вновь нажмите ".". Наконец, в
ячейку с тем же адресом, но в основной странице, запишите значение 93Н (директива MODIFY Е8801). Рис №4 В режиме 2 окраска точек происходит совершенно по-другому (рис.5). В этом режиме 8 точек каждой ячейки могут быть окрашены в одно из 256 сочетаний 16 цветов фона и 16 цветов переднего плана. Точками фона считаются точки, значения соответствующих битов которых в байте основной области равны 0 - в наших примерах это (считая слева направо) 2-я, 3-я, 5-я и 6-я точки, а передний план (изображение) - 1-я, 4-я, 7-я и 8-я точки. Ячейка дополнительной области в данном случае определяет, какой цвет имеют те и другие. Старшая тетрада байта этой ячейки задает окраску фона, младшая - изображения. Так, в примере на рис.5 выбрано сине-желтое сочетание. Рис №5 Проверить все сказанное можно так же, как и в случае с 4-цветным режимом:
с помощью программы "М128$". Если вы будете это делать, то вместо
директивы COLOR 0 нужно выполнить директиву COLOR 0А и, не пользуясь
системным сбросом, перейти к следующему пункту, но в ячейку 0F800H (системный
порт цвета) нужно записать не 4, а 6. Все дальнейшие действия
повторяются. В. СУГОНЯКО, В. САФРОНОВ Московская обл. Графический редактор PENX$, немного модификаций
Журнал Радио №6 1991 г. На предыдущую страницу На главную страницу На следующую страницу
|
||
,0