Программирование видеоадаптеров CGA, EGA и VGA© Александр Фролов, Григорий ФроловТом 3, М.: Диалог-МИФИ, 1992, 287 стр. 9.7. Сохранение/восстановление состояния видеоадаптера - функция 1ChФункция имеет три подфункции, при помощи которых программа может быстро переключать режимы работы видеоадаптера: Номер подфункции Назначение 00h определение размера буфура, необходимого для сохранения текущего состояния видеоадаптера 01h сохранение текущего состояния видеоадаптера 02h восстановление текущего состояния видеоадаптера Необходимо отметить, что данная функция поддерживается только для видеоадаптера VGA. Функцию можно использовать при преключении режима видеоадаптера в резидентных программах и мультизадачных системах. Определение размера буфера - подфункция 00hФункция определяет размер буфура, необходимый для сохранения текущего состояния видеоадаптера. Буфер должен быть зарезервирован до вызова функции сохранения состояния видеоадаптера. На входе: AH = 1Ch; AL = 00h - определение размера буфера; CX = тип данных, который необходимо сохранить: 0 - регистры видеоадаптера, 1 - область переменных BIOS, 2 - таблица цветов (регистры ЦАП). На выходе: AL = 1Ch; BX = необходимый размер буфера в 64-байтных блоках. Сохранение текущего состояния видеоадаптера - подфункция 01hФункция записывает данные сотояния видеоадаптера в буфер, размер которого определяется подфункцией 00h. На входе: AH = 1Ch; AL = 01h - сохранение состяния видеоадаптера; CX = тип данных, который необходимо сохранить: 0 - регистры видеоадаптера, 1 - область переменных BIOS, 2 - таблица цветов (регистры ЦАП); ES:BX = адрес буфера для сохраняемых данных. На выходе: AL = 1Ch. Восстановление текущего состояния видеоадаптера - подфункция 02hФункция восстанавливает сотояние видеоадаптера из буфера, заполненного подфункцией 01h. На входе: AH = 1Ch; AL = 02h - восстановление состояния видеоадаптера; CX = тип восстанавливаемых данных: 0 - регистры видеоадаптера, 1 - область переменных BIOS, 2 - таблица цветов (регистры ЦАП); ES:BX = адрес буфера данных состояния видеоадаптера. На выходе: AL = 1Ch. |