Повозился ещё с программкой. Наверное, не работала она у меня потому, что запускал я её из-под ОРДОСа. А переносил ты код выше F000 для того, чтобы не использовать ПП Монитора F839 (запись байта в доп. страницу)? В общем, заодно вспомнив слегонца ассемблер ВМ80, сделал я немного по другому. Использовал экран №3 (4000-6FFF), а всю программку разместил с 0000. Для заполнения ОЗУ цвета использовал ПП F839. В общем, получил я синий квадрат на весь экран. Есть сомнения у меня по поводу того, какой байт записывать в порт F800 для управления цветовым режимом. Я записываю туда 06 для того, чтобы получить синий квадрат. В "Радио" №2 за 1990, как мне кажется, есть ошибка при описании этого порта. Там написано:
D0=0/1 - палитра 1/2;
D1=0/1 - 16 цветов/4 цвета;
D2=0/1 - монохром/цвет;
а ниже это же:
00 - монохром, зелёный на чёрном;
01 - монохром, жёлтый на голубом;
02, 03 - гашение изображения;
04 - 4-цветный режим, палитра 1;
05 - 4-цветный режим, палитра 2;
06, 07=110, 111 - 16-цветный режим.
Твоя программка не управляет портом F800, значит, используется значение по умолчанию. Если работа идёт под Монитором, то в этом порту должно быть значение 00 - монохром, зелёный на чёрном. У меня же при этом выводится всякий мусор коричневым по голубому. Что-то я совсем запутался. Что должна выдать твоя программка на нормальном исправном "Орионе"? Синий квадрат? Чередующиеся вертикальные пурпурные и светло-зелёные полосы? Или вертикальные полоски толщиной в 1 пиксель?
Помню, что в каком-то журнале было описание всех этих графических режимов. Буду искать.
ПС. Заполнение областей ОЗУ до экрана, самого экрана и цвета проверял с помощью M256. Всё заполняется как задумано.




Ответить с цитированием