Графический режим

Прежде чем расписывать байты режима объясню, как адресуются графические квадратики. Все видео- ОЗУ, разбитое на блоки или линии, можно представить в виде квадратиков 8x8 точек. На линии в 1024 байта умещается 128 квадратиков, каждый из которых по вертикали занимает 8 линий и, таким образом, по вертикали все видео-ОЗУ разбирается на 32 квадратика. Всего 4096 квадратиков, для адресации которых необходимо 12 бит. Они берутся из Mode0 (четыре младших бита) и Mode1 после того, как битом 4 байта Mode0 определен графический режим.

Mode0:

bits 3..0 – старшие биты (4..1) адреса блока, так же как и в спектрумовском, но младший бит номера блока берется из 2-го бита Mode1. Они же формально представляют собой старшие биты номера квадратика по горизонтали.

bit 4 – "0"признак режима (графический режим).
bit 5 – признак разрешения "0"для 640 точек, "1"для 320 точек.
bit 6..7 – номер палитры. В каждом квадратике можно задать одну из четырех графических палитр.
Mode1:
bit 1..0 – Дополнительный адрес данных в блоке. Адрес квадратика по горизонтали.
bit 2 – младший бит блока.
bit 7..3 – Адрес квадратика по вертикали.

Подобное "неправильное"разбиение адреса квадратиков возникло в результате оптимизации схемы "по объему ПЛМ". Ввиду нехватки места было решено, что лучше пожертвовать линейностью адресации в режиме экрана в пользу возможности иметь дополнительные возможности. В новой версии компьютера возможно устранение этой нелинейности.

Графический режим 640 точек использует ту же схему адресации квадратиков. при этом каждый байт рабивается на две точки и таким образом из режима 8x8 256-ти цветных точек получается режим 16x8 16-ти цветных. Первыми выводятся младшие 4 бита, вторыми – старшие.