Нашел некоторые несоответствия описания видеоконтроллера с тем, что есть на самом деле.

1) Самый первый отрезок в строке тоже должен отображаться по принципу 'бордюр, затем сам отрезок'. Возможно, бордюр у него будет нестандартным, однако бордюр должен быть.

2) Для режима 2 цвета и 4 цвета, палитра используется иначе, чем описано. В описании сказано, что для двухцветного режима цвета находятся в 14 и 15 цвете палитры, а для четырехцветного в 12, 13, 14 и 15 цветах.

На самом деле для двухцветного режима цвет-0 должен находиться в цветах палитры 7, 11, 13 и 14, а цвет-1 в 15-м цвете.
Для четырехцветного режима цвет-0 находится в 3 и 12 цвете палитры, цвет-1 в 7 и 13, цвет-2 в 11 и 14, цвет-3 в 15-м цвете палитры.

Расшифровывая подобную особенность, становится понятно, с чем это связано:
Во всех режимах (1, 2 или 4 цвета), видеоконтроллер оперирует тетрадами (4-битными блоками), информацию в которых для 1 и 2 цветных режимах он не сдвигает, чтобы получить нужные биты, а маскирует ненужные биты, накладывая по 'OR' маску 1110, 1101, 1011 и 0111 для выбора бита в двухцветном режиме, и маску 1100 и 0011 для выбора пары бит для 2-х цветного режима. Получившиееся тетрада и есть номер цвета в палитре.

Отсюда выходит интересная потенциальная возможность раскраски пикселей разными цветами в 1 и 2-цветных режимах, в зависимости от позиции пикселя на экране. Не знаю, использовал ли кто-нибудь эту особенность, но она есть.

---------- Post added at 19:01 ---------- Previous post was at 18:57 ----------

Цитата Сообщение от Alex_K Посмотреть сообщение
Так вектор из этой таблички берет какой-то аппаратный контроллер? Да ещё анализирует её и двигает?
Да. В табличке очередь, где каждый элемент указывает на следующий и предыдущий. Как только в очереди появляется один или несколько запросов, контроллер извлекает самый последний поступивший, вычисляет вектор, а очередь сдвигает. Если в очереди ничего не осталось, он сбрасывает флаг VIRQ' (это байт в ОЗУ, по которому ориентируется ядро, выставлять ли VIRQ при переключении управления на очередной процесс).