Функция 21, подфункция 13, подподфункция 1 - инициализировать + получить информацию о драйвере vmode.mdr.
Параметры:
- eax = 21 - номер функции
- ebx = 13 - номер подфункции
- ecx = 1 - номер функции драйвера
- edx = указатель на буфер размера 512 байт
Возвращаемое значение:
- если драйвер не загружен (никогда не бывает в текущей реализации):
- eax = -1
- ebx, ecx разрушаются
- если драйвер загружен:
- eax = 'MDAZ' (в стиле fasm'а, т.е. 'M' - младший байт,
'Z' - старший) - сигнатура
- ebx = текущая частота развёртки (в Гц)
- ecx разрушается
- буфер, на который указывает edx, заполнен
Формат буфера:
- +0: 32*byte: имя драйвера, "Trans VideoDriver" (без кавычек,
дополнено пробелами)
- +32 = +0x20: dword: версия драйвера (версия x.y кодируется как
y*65536+x), для текущей реализации 1 (1.0)
- +36 = +0x24: 7*dword: зарезервировано (0 в текущей реализации)
- +64 = +0x40: 32*word: список поддерживаемых видеорежимов (каждое
слово - номер видеорежима, после собственно списка идут нули)
- +128 = +0x80: 32*(5*word): список поддерживаемых частот развёрток
для видеорежимов: для каждого видеорежима, указанного в предыдущем
поле, указано до 5 поддерживаемых частот
(в неиспользуемых позициях записаны нули)
Замечания:
- Функция инициализирует драйвер (если он ещё не инициализирован)
и должна вызываться первой, перед остальными (иначе они будут
возвращать -1, ничего не делая).
- В текущей реализации поддерживается только одна частота развёртки
на видеорежим.