Function 21, subfunction 13, subsubfunction 1 - initialize + get information on the driver vmode.mdr.
Parameters:
- eax = 21 - function number
- ebx = 13 - subfunction number
- ecx = 1 - number of the driver function
- edx = pointer to 512-bytes buffer
Returned value:
- if driver is not loaded
(never happens in the current implementation):
- eax = -1
- ebx, ecx destroyed
- if driver is loaded:
- eax = 'MDAZ' (in fasm style, that is 'M' - low byte, 'Z' - high)
- signature
- ebx = current frequency of the scanning (in Hz)
- ecx destroyed
- buffer pointed to by edx is filled
Format of the buffer:
- +0: 32*byte: driver name, "Trans VideoDriver"
(without quotes, supplemented by spaces)
- +32 = +0x20: dword: driver version (version x.y is encoded as
y*65536+x), for the current implementation is 1 (1.0)
- +36 = +0x24: 7*dword: reserved (0 in the current implementation)
- +64 = +0x40: 32*word: list of supported videomodes (each word
is number of a videomode, after list itself there are zeroes)
- +128 = +0x80: 32*(5*word): list of supported frequences of the
scannings for videomodes: for each videomode listed in the
previous field up to 5 supported frequences are given
(unused positions contain zeroes)
Remarks:
- Function initializes the driver (if it is not initialized yet)
and must be called first, before others (otherwise they will do
nothing and return -1).
- The current implementation supports only one frequency
of the scanning on videomode.