Code: На Специалистах (правда, не на моем "Лике", там этого не было) можно выводить данные в цвете. При этом атрибуты, идея, как на Спектруме, только круче - атрибуты у каждого байта в памяти! (8 пикселей, если помнишь). В пределах одного байта как было, так и осталось 2 цвета, причем фон (биты "0") - всегда черный, единицы - один из четырёх возможных: белый/R/G/B, этот-то цвет и задается атрибутом. Всего 5 цветов. Есть режим 9 цветов (8+1), Пыхонин собирался его реализовать, но больше я про этот режим не знаю. Поэтому говорю про 5 цветов (он реализован у Пыхонина, потому-то игры на "Специалист" там цветные). Итак, поскольку запись на экран идет кусками по 8 бит, а атрибуты тоже бывают у каждого кусочка по 8 бит, то достаточно установить цвет фона-цвет пера и писать в экранное ОЗУ. Каждого записанный в память любой командой процессора байт на экране будет выводиться с черным цветом фона и заданным цветом пера. Чтобы писать другим цветом пера, надо послать другое значение цвета в порт. Иным способом обратиться к атрибутам невозможно - только установив нужный цвет пера и записывая в экранное ОЗУ, атрибуты автоматически будут устанавливаться для обрабатываемых командой записи байт экрана. Сменить, как на Спектруме, цвет уже выведенных пикселей невозможно - их надо будет вывести заново. А теперь как установить цвета: просто записать в порт 2 ВВ-шки (по адресу 1111 1XXX XXXX XX10 b, например, FF02, FFFE или F802) число, 2 старших бита определят цвет пера. Поскольку остальные биты не нужны и всегда пишется целый байт, я приведу значения и для целого байта: Чтобы получить БЕЛЫЙ цвет пера (на черном фоне), надо по адресу FF02 записать 00 h КРАСНЫЙ (R) - 40 h ЗЕЛЕНЫЙ (G) - 80 h СИНИЙ (B) - C0 h ============
|