/*++ Copyright (c) 1993 Microsoft Corporation Module Name: spvideop.h Abstract: Private header file for text setup display support. Author: Ted Miller (tedm) 29-July-1993 Revision History: --*/ #ifndef _SPVIDP_DEFN_ #define _SPVIDP_DEFN_ // // Globals that contain information about the font currently in use. // extern POEM_FONT_FILE_HEADER FontHeader; extern ULONG FontBytesPerRow; extern ULONG FontCharacterHeight; extern ULONG FontCharacterWidth; // // These values are passed to us by setupldr and represent monitor config // data from the monitor peripheral for the display we are supposed to use // during setup. They are used only for non-vga displays. // extern PMONITOR_CONFIGURATION_DATA MonitorConfigData; extern PCHAR MonitorFirmwareIdString; // // Routine to map or unmap video memory. Fills in or uses // the VideoMemoryInfo global. // VOID pSpvidMapVideoMemory( IN BOOLEAN Map ); typedef VOID (*SPVID_DISPLAY_STRING_ROUTINE) ( IN PSTR String, IN UCHAR Attribute, IN ULONG X, // 0-based coordinates (character units) IN ULONG Y ); typedef VOID (*SPVID_CLEAR_REGION_ROUTINE) ( IN ULONG X, IN ULONG Y, IN ULONG W, IN ULONG H, IN UCHAR Attribute ); typedef VOID (*SPVID_SPECIFIC_INIT_ROUTINE) ( IN PVIDEO_MODE_INFORMATION VideoModes, IN ULONG NumberOfModes, IN ULONG ModeSize ); typedef VOID (*SPVID_SPECIFIC_REINIT_ROUTINE) ( VOID ); typedef VOID (*SPVID_SPECIFIC_TERMINATE_ROUTINE) ( VOID ); typedef BOOLEAN (*SPVID_SPECIFIC_PALETTE_ROUTINE) ( VOID ); typedef BOOLEAN (*SPVID_SPECIFIC_SCROLL_UP_ROUTINE) ( IN ULONG TopLine, IN ULONG BottomLine, IN ULONG LineCount, IN UCHAR FillAttribute ); typedef struct _VIDEO_FUNCTION_VECTOR { SPVID_DISPLAY_STRING_ROUTINE DisplayStringRoutine; SPVID_CLEAR_REGION_ROUTINE ClearRegionRoutine; SPVID_SPECIFIC_INIT_ROUTINE SpecificInitRoutine; SPVID_SPECIFIC_REINIT_ROUTINE SpecificReInitRoutine; SPVID_SPECIFIC_TERMINATE_ROUTINE SpecificTerminateRoutine; SPVID_SPECIFIC_PALETTE_ROUTINE SpecificInitPaletteRoutine; SPVID_SPECIFIC_SCROLL_UP_ROUTINE SpecificScrollUpRoutine; } VIDEO_FUNCTION_VECTOR, *PVIDEO_FUNCTION_VECTOR; extern PVIDEO_FUNCTION_VECTOR VideoFunctionVector; // // Shorthand for accessing routines in the video function vector. // #define spvidSpecificInitialize(v,n,m) \ \ VideoFunctionVector->SpecificInitRoutine((v),(n),(m)) #define spvidSpecificReInitialize() \ \ VideoFunctionVector->SpecificReInitRoutine() #define spvidSpecificTerminate() \ \ VideoFunctionVector->SpecificTerminateRoutine() #define spvidSpecificClearRegion(x,y,w,h,a) \ \ VideoFunctionVector->ClearRegionRoutine((x),(y),(w),(h),(a)) #define spvidSpecificDisplayString(s,a,x,y) \ \ VideoFunctionVector->DisplayStringRoutine((s),(a),(x),(y)) #define spvidSpecificInitPalette() \ \ VideoFunctionVector->SpecificInitPaletteRoutine() #define spvidSpecificScrollUp(t,b,c,a) \ \ VideoFunctionVector->SpecificScrollUpRoutine((t),(b),(c),(a)) // // Frame buffer routines (spvidfb.c). // VOID FrameBufferDisplayString( IN PSTR String, IN UCHAR Attribute, IN ULONG X, // 0-based coordinates (character units) IN ULONG Y ); VOID FrameBufferClearRegion( IN ULONG X, IN ULONG Y, IN ULONG W, IN ULONG H, IN UCHAR Attribute ); VOID FrameBufferSpecificInit( IN PVIDEO_MODE_INFORMATION VideoModes, IN ULONG NumberOfModes, IN ULONG ModeSize ); VOID FrameBufferSpecificReInit( VOID ); VOID FrameBufferSpecificTerminate( VOID ); BOOLEAN FrameBufferSpecificInitPalette( VOID ); BOOLEAN FrameBufferSpecificScrollUp( IN ULONG TopLine, IN ULONG BottomLine, IN ULONG LineCount, IN UCHAR FillAttribute ); extern VIDEO_FUNCTION_VECTOR FrameBufferVideoVector; PVIDEO_MODE_INFORMATION pFrameBufferDetermineModeToUse( IN PVIDEO_MODE_INFORMATION VideoModes, IN ULONG NumberOfModes, IN ULONG ModeSize ); // // Textmode display routines (spvidvga.c). // VOID VgaDisplayString( IN PSTR String, IN UCHAR Attribute, IN ULONG X, // 0-based coordinates (character units) IN ULONG Y ); VOID VgaClearRegion( IN ULONG X, IN ULONG Y, IN ULONG W, IN ULONG H, IN UCHAR Attribute ); VOID VgaSpecificInit( IN PVIDEO_MODE_INFORMATION VideoModes, IN ULONG NumberOfModes, IN ULONG ModeSize ); VOID VgaSpecificReInit( VOID ); VOID VgaSpecificTerminate( VOID ); BOOLEAN VgaSpecificInitPalette( VOID ); BOOLEAN VgaSpecificScrollUp( IN ULONG TopLine, IN ULONG BottomLine, IN ULONG LineCount, IN UCHAR FillAttribute ); extern VIDEO_FUNCTION_VECTOR VgaVideoVector; #endif // ndef _SPVIDP_DEFN_