Значится так - каждый "квадратик" представлен в области описателя экрана (Screen Description Area) прямоугольником 4x2 байта (4 по горизонтали, 2 по вертикали) - описатель, как и текстовый экран, положен "на бок" и "отзеркалирован" - первая строчка это левый столбик у которого лево это верх. Далее первые 4 байта в каждом таком прямоугольнике описывают основной режим, а вторые 4 байта - дополнительный если в графической строке 640 точек вместо 320 (режим повышенной чёткости). Четвёртый байт пока не используется (ни в основном описателе, ни в дополнительном), а первые три описаны так:
байт 0:
- биты 0,1,2,3 - задают биты 4...1 адреса блока данных (бит 0 берется из 3го бита порта #7FFD для текстового режима либо из байта 1 для графического где это всё формально задаёт старшие биты номера квадратика по горизонтали);
- бит 4 - "1" для текстового режима, "0" для графического режима;
- бит 5 - "1" для 320 точек в строке, "0" для 640 точек в строке (режим повышенной чёткости, который требует использования второй четвёрки байтов описателя);
- биты 6,7 - задают биты 12...11 адреса данных в блоке (палитра для графического режима), однако если их значение 11 вместе с 11 в битах 4 и 5, то смысл этого байта меняется - в этом случае если биты 2 и 3 имеют значение 11 то этот квадратик - гашение, а если ещё и бит 0 имеет значение 1, то это прерывание.
байт 1 в текстовом режиме: младшие 8 бит адреса (7...1), а недостающие 3 бита 10...8 берутся из номера линии в квадратике (в текстовом режиме это просто отсылка в знакогенератор и на самом деле тут сидит код символа!).
байт 1 в графическом режиме:
- биты 0,1 - дополнительный адрес в в блоке (чтобы адресовать квадратик по горизонтали);
- бит 2 - младший бит номера блока (чтобы адресовать квадратик по горизонтали);
- бит 3,4,5,6,7 - адрес квадратика по вертикали.
байт 2: младшие 8 бит адреса атрибутов для спектрумовского режима (с замешиванием), но представляют сам атрибут в случае текстового режима.
24 сентября 2021 года в телеге появилась информация, что 3 бита этого байта используются и в графическом режиме - бит 2 включает режим увеличения четвертинки квадрата, а биты 0 и 1 задают какая четвертинка увеличивается до размеров квадрата.
байт 3: не используется
В документации указано, что запутывание адреса квадратика вызвано необходимостью уменьшить размер прошивки для альтеры.
Координаты квадратика в видеопамяти для графического режима соответственно будет:
X=0.3|0.2|0.1|0.0|1.2|1.1|1.0 (0...95 т.к. старшие 2 бита не могут быть единицами одновременно если это не гашение),
Y=1.7|1.6|1.5|1.4|1.3 (0...31).
Получается, что графический режим можно рассматривать как текстовый 80x32 с многоцветным шрифтом в 3072 символов (тайлов)