в FE т.е. в рег. бордюра, записывается код цвета 0-15, а в 7E - цвет
И можно это делать не в любой момент времени, а только когда на монитор выводится бордюр. Т.е. делаем Halt, после прихода прерывания, начинает отображаться следющий кадр, тут и закидываем палитру. Всю или не всю решаем сами
4.1.1 Таблицы и переменные BIOS
~~~~~~~~~~~~~~~~~~~~~~~~~~~
В BIOS'е имеется несколько таблиц и буферов, к которым
может оказаться полезным обращаться непосредственно.
-------------------------------------------------------------
Номер | Имя | Назначение
-------------------------------------------------------------
13 PALETTE Хранит текущую палитру. Палитра состоит из
16 байт (по количеству цветов).
Формат задания палитры:
+00 BLACK Каждый байт должен быть закодирован
+01 BLUE следующим образом:
+02 RED --T-T-T-T-T-T-T-¬
+03 MAGENTA 7L-+-+-+-+-+-+-+--0
+04 GREEN --T-- --T-- -T-
+05 CYAN ¦ ¦ ¦
+06 YELLOW ¦ ¦ L-------- BLUE (0-3)
+07 WHITE ¦ ¦
+09 LBLUE ¦ L------------- RED (0-7
............. ¦
+0F LWHITE L------------------- GREEN (0-7)
Далее, точки входа в CBIOS
F815h PRGPAL Программирование палитры. При входе HL
содержит адрес новой палитры из 16-и байт.
При этом 0-й байт это "черный неяркий"
цвет, 2-й байт "красный неяркий" цвет, 7-й
байт "белый" неяркий цвет, а 15-й байт
"белый яркий" цвет. Если рег HL содержит 0,
то устанавливается стандартная палитра.
В общем то, палитру можно программировать и без BIOS'а
(устанавливаем 5-й бит в CMR0 (7FFDH) и сразу после прерывания
заносим инверсный код цвета в порт 0FEH - бордюр, а 8-битовое
значение цвета, тоже инверсное, в порт 07EH), но лучше при
выходе из программы программировать палитру с помощью BIOS'a
(или оставлять в нем копию палитры) чтобы другие программы
могли прочитать текущую палитру.
это вот всё чё вадим говорит, тока я по поводу прерываний не уверен, т.к. по докам от кондора там указаний нет никаких на тему прерываний...