VflatD_Create_Virtual_Frame_Buffer


include vflatd.inc

mov    dl, VflatD_Create_Virtual_Frame_Buffer  ; Function number
mov    dh, Flags                        ; Must be zero
mov    eax, FrameBufSize                ; Size of frame buffer in bytes
mov    ebx, BankSize                    ; Size of bank, in bytes
mov    esi, BankLocation                ; Location of bank
push   ds
pop    es
lea    di, BankSwitchProc               ; Bank switch code
movzx  edi, di
mov    cx, BankSwitchProcLength         ; Length of bank switch code
call   VFlatDApiProcAdr
jc     errorhandler
mov    VideoSelector, ax
mov    VideoAddress, edx

Registers a display driver's bank-switch function and retrieves a selector for a logical frame buffer. Uses Flags.

Flags

Options flags. Currently, no flags are defined; this parameter must be zero.

FrameBufSize

Size of frame buffer, in bytes.

BankSize

Size of bank, in bytes.

BankLocation

Location of bank, for example, A0000h.

BankSwitchProc

Address of display driver's bank switch procedure.

BankSwitchProcLength

Length of display driver's bank-switch procedure.

The bank-switch procedure must be written using 32-bit code and must be a maximum of 100 bytes in length. When the procedure is called, EAX will identify the new bank to be swapped into the physical frame buffer. The procedure must save all registers except EAX, EDX, and Flags, and it must not have a ret instruction (since the code is copied inline).