/*++ Copyright (c) 1993 Microsoft Corporation Module Name: spvideo.h Abstract: Public header file for text setup display support. Author: Ted Miller (tedm) 29-July-1993 Revision History: --*/ #ifndef _SPVID_DEFN_ #define _SPVID_DEFN_ // // Character attributes. // #define ATT_BLACK 0 #define ATT_BLUE 1 #define ATT_GREEN 2 #define ATT_CYAN 3 #define ATT_RED 4 #define ATT_MAGENTA 5 #define ATT_YELLOW 6 #define ATT_WHITE 7 #define ATT_INTENSE 8 #define ATT_FG_BLACK ATT_BLACK #define ATT_FG_BLUE ATT_BLUE #define ATT_FG_GREEN ATT_GREEN #define ATT_FG_CYAN ATT_CYAN #define ATT_FG_RED ATT_RED #define ATT_FG_MAGENTA ATT_MAGENTA #define ATT_FG_YELLOW ATT_YELLOW #define ATT_FG_WHITE ATT_WHITE #define ATT_BG_BLACK (ATT_BLACK << 4) #define ATT_BG_BLUE (ATT_BLUE << 4) #define ATT_BG_GREEN (ATT_GREEN << 4) #define ATT_BG_CYAN (ATT_CYAN << 4) #define ATT_BG_RED (ATT_RED << 4) #define ATT_BG_MAGENTA (ATT_MAGENTA << 4) #define ATT_BG_YELLOW (ATT_YELLOW << 4) #define ATT_BG_WHITE (ATT_WHITE << 4) #define ATT_FG_INTENSE ATT_INTENSE #define ATT_BG_INTENSE (ATT_INTENSE << 4) #define DEFAULT_ATTRIBUTE GetDefaultAttr() #define DEFAULT_BACKGROUND GetDefaultBackground() #define DEFAULT_STATUS_ATTRIBUTE GetDefaultStatusAttr() #define DEFAULT_STATUS_BACKGROUND GetDefaultStatusBackground() UCHAR GetDefaultAttr( void ); UCHAR GetDefaultBackground( void ); UCHAR GetDefaultStatusAttr( void ); UCHAR GetDefaultStatusBackground( void ); BOOLEAN SpvidGetModeParams( OUT PULONG XResolution, OUT PULONG YResolution, OUT PULONG BitsPerPixel, OUT PULONG VerticalRefresh, OUT PULONG InterlacedFlag ); // // Display routines. // VOID SpvidInitialize0( IN PLOADER_PARAMETER_BLOCK LoaderBlock ); VOID SpvidInitialize( VOID ); VOID SpvidTerminate( VOID ); VOID SpvidDisplayString( IN PWSTR String, IN UCHAR Attribute, IN ULONG X, IN ULONG Y ); VOID SpvidDisplayOemString( IN PSTR String, IN UCHAR Attribute, IN ULONG X, IN ULONG Y ); VOID SpvidClearScreenRegion( IN ULONG X, IN ULONG Y, IN ULONG W, IN ULONG H, IN UCHAR Attribute ); BOOLEAN SpvidScrollUp( IN ULONG TopLine, IN ULONG BottomLine, IN ULONG LineCount, IN UCHAR FillAttribute ); NTSTATUS SpvidSwitchToTextmode( VOID ); // // Structure used to contain global video vars. These are broken out // like this because they are shared with the locale/lang-specific // text setup module. // typedef struct _SP_VIDEO_VARS { // // Habdle to \device\video0 // HANDLE hDisplay; // // The following are character values, and must be filled in // in the display-specific initialization routine. // ULONG ScreenWidth,ScreenHeight; // // The display-specific subsystems fill these in with information // that reflects the video mode they are using, and the video memory. // VIDEO_MEMORY_INFORMATION VideoMemoryInfo; VIDEO_MODE_INFORMATION VideoModeInfo; // // Graphics mode information (if any) // VIDEO_MODE_INFORMATION GraphicsModeInfo; // // The display routines will be doing unicode to oem translations. // We'll limit the length of a string that can be displayed at one time // to the width of the screen. Theese two vars track a buffer // we preallocate to hold translated text. // ULONG SpvCharTranslationBufferSize; PUCHAR SpvCharTranslationBuffer; // // The following table maps each possible attribute to // a corresponding bit pattern to be be placed into the // frame buffer to generate that attribute. // On palette managed displays, this table will be an // identity mapping (ie, AttributeToColorValue[i] = i) // so we can poke the attribute driectly into the // frame buffer. // ULONG AttributeToColorValue[16]; // // Upgrade graphics mode // BOOLEAN UpgradeGraphicsMode; // // Background Video buffer for upgrade graphics mode // PVOID VideoBuffer; ULONG VideoBufferSize; // // Active video buffer // PVOID ActiveVideoBuffer; } SP_VIDEO_VARS, *PSP_VIDEO_VARS; extern SP_VIDEO_VARS VideoVars; // // bootfont.bin file image // extern PVOID BootFontImage; extern ULONG BootFontImageLength; #endif // ndef _SPVID_DEFN_