|
| 1 | +namespace Spice86.Core.Emulator.InterruptHandlers.VGA; |
| 2 | + |
| 3 | +/// <summary> |
| 4 | +/// "The standard provides a set of functions which an application program can use |
| 5 | +/// to A) obtain information about the capabilities and characteristics of a |
| 6 | +/// specific Super VGA implementation and B) to control the operation of such |
| 7 | +/// hardware in terms of video mode initialization and video memory access. |
| 8 | +/// The functions are provided as an extension to the VGA BIOS video services, accessed |
| 9 | +/// through interrupt 10h." |
| 10 | +/// VESA Super VGA BIOS Extension Standard #VS911022, October 22, 1991, VBE Version 1.2 |
| 11 | +/// </summary> |
| 12 | +public interface IVesaBiosExtension { |
| 13 | + /// <summary> |
| 14 | + /// "Function 00h - Return Super VGA Information. |
| 15 | + /// The purpose of this function is to provide information to the calling program |
| 16 | + /// about the general capabilities of the Super VGA environment. The function fills |
| 17 | + /// an information block structure at the address specified by the caller. |
| 18 | + /// The information block size is 256 bytes." |
| 19 | + /// Input: AH = 4Fh Super VGA support, AL = 00h Return Super VGA information, ES:DI = Pointer to buffer. |
| 20 | + /// Output: AX = Status (All other registers are preserved). |
| 21 | + /// </summary> |
| 22 | + void VbeGetControllerInfo(); |
| 23 | + |
| 24 | + /// <summary> |
| 25 | + /// "Function 01h - Return Super VGA mode information. |
| 26 | + /// This function returns information about a specific Super VGA video mode that was |
| 27 | + /// returned by Function 0. The function fills a mode information block structure |
| 28 | + /// at the address specified by the caller. The mode information block size is |
| 29 | + /// maximum 256 bytes." |
| 30 | + /// Input: AH = 4Fh Super VGA support, AL = 01h Return Super VGA mode information, |
| 31 | + /// CX = Super VGA video mode (mode number must be one of those returned by Function 0), |
| 32 | + /// ES:DI = Pointer to 256 byte buffer. |
| 33 | + /// Output: AX = Status (All other registers are preserved). |
| 34 | + /// </summary> |
| 35 | + void VbeGetModeInfo(); |
| 36 | + |
| 37 | + /// <summary> |
| 38 | + /// "Function 02h - Set Super VGA video mode. |
| 39 | + /// This function initializes a video mode. The BX register contains the mode to |
| 40 | + /// set. The format of VESA mode numbers is described in chapter 2. If the mode |
| 41 | + /// cannot be set, the BIOS should leave the video environment unchanged and return |
| 42 | + /// a failure error code." |
| 43 | + /// Input: AH = 4Fh Super VGA support, AL = 02h Set Super VGA video mode, |
| 44 | + /// BX = Video mode (D0-D14 = Video mode, D15 = Clear memory flag: |
| 45 | + /// 0 = Clear video memory, 1 = Don't clear video memory). |
| 46 | + /// Output: AX = Status (All other registers are preserved). |
| 47 | + /// </summary> |
| 48 | + void VbeSetMode(); |
| 49 | +} |
0 commit comments