
Сообщение от
andreil
В принципе, можно и так. Только бит 5 точно нигде не используется? По спекам с эмулятора - вроде бы нет, но мало ли...
Всё равно софт будет писаться "де-факто", под имеющееся решение, поэтому ещё можно крутить как угодно

Насколько мне известно, бит 5 нигде не используется. Так что предлагаю обойтись портами F8 и FA чтобы не плодить сущности. Итого будет так:
Код:
Порт 0F8H:
D4 D3 D2 D1 D0
------------------
0 x 0 0 0 - монохромный, палитра 1
0 x 0 0 1 - монохромный, палитра 2
0 x 0 1 x - запрет видеосигнала
0 x 1 0 0 - 2-битный (4-цветный), палитра 1
0 x 1 0 1 - 2-битный (4-цветный), палитра 2
0 0 1 1 x - 16-цветный с групповым кодированием
0 1 1 1 0 - псевдоцветной (цвет - в порт 0FCH)
0 1 1 1 1 - 16-цветный с групповым кодированием (+ палитра порта 0FCH)
1 0 0 x x - 3-битный (8-цветный RGB)
1 0 1 x x - 4-битный (16-цветный RGBI)
1 1 0 x x - 3-битный (8-цветный RGB) +"палитра FC"
1 1 1 x x - 4-битный (16-цветный RGBI) +"палитра FC"
Код палитры для "псевдоцветного" режима и режима "цвет+палитра FC" доп.цвет записывается в порт
с адресом 0FCH. Тут обрати внимание на выделенное (минимальные правки - вместо безразличного Х там
кое-где теперь 0 или 1 чтобы развести все режимы с учетом "палитры")
Т.е. нужно правильно обработать биты D0 и D3
Биты D5..D7 - адрес "текстовой плоскости экрана" внутри текущего 16к графического экрана
Порт 0FAH:
D0 \ номер экрана
D1 /
D2..D5 - адрес офсета текстового фонта в ПЗУ текстовых шрифтов
D6 - включение режима АЦД (текстовый экран)
D7 - включение широкого экрана