2 * PROJECT: ReactOS Setup Driver
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: drivers/setup/blue/font.h
5 * PURPOSE: Loading specific fonts into VGA
6 * PROGRAMMERS: Aleksey Bragin (aleksey@reactos.org)
9 /* DEFINITIONS ***************************************************************/
13 typedef struct _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES
, *PSECURITY_ATTRIBUTES
;
15 // Define material that normally comes from PSDK
16 // This is mandatory to prevent any inclusion of
18 typedef struct tagCOORD
{
23 typedef struct tagSMALL_RECT
{
30 typedef struct tagCONSOLE_SCREEN_BUFFER_INFO
{
32 COORD dwCursorPosition
;
35 COORD dwMaximumWindowSize
;
36 } CONSOLE_SCREEN_BUFFER_INFO
, *PCONSOLE_SCREEN_BUFFER_INFO
;
38 typedef struct tagCONSOLE_CURSOR_INFO
{
41 } CONSOLE_CURSOR_INFO
, *PCONSOLE_CURSOR_INFO
;
43 #define ENABLE_PROCESSED_OUTPUT 0x0001
44 #define ENABLE_WRAP_AT_EOL_OUTPUT 0x0002
46 #include <blue/ntddblue.h>
47 #include <ndk/inbvfuncs.h>
49 #define TAG_BLUE 'EULB'
51 typedef struct _CFHEADER
53 ULONG Signature
; // File signature 'MSCF' (CAB_SIGNATURE)
54 ULONG Reserved1
; // Reserved field
55 ULONG CabinetSize
; // Cabinet file size
56 ULONG Reserved2
; // Reserved field
57 ULONG FileTableOffset
; // Offset of first CFFILE
58 ULONG Reserved3
; // Reserved field
59 USHORT Version
; // Cabinet version (CAB_VERSION)
60 USHORT FolderCount
; // Number of folders
61 USHORT FileCount
; // Number of files
62 USHORT Flags
; // Cabinet flags (CAB_FLAG_*)
63 USHORT SetID
; // Cabinet set id
64 USHORT CabinetNumber
; // Zero-based cabinet number
65 } CFHEADER
, *PCFHEADER
;
67 typedef struct _CFFILE
69 ULONG FileSize
; // Uncompressed file size in bytes
70 ULONG FileOffset
; // Uncompressed offset of file in the folder
71 USHORT FileControlID
; // File control ID (CAB_FILE_*)
72 USHORT FileDate
; // File date stamp, as used by DOS
73 USHORT FileTime
; // File time stamp, as used by DOS
74 USHORT Attributes
; // File attributes (CAB_ATTRIB_*)
75 /* After this is the NULL terminated filename */
78 #define CAB_SIGNATURE 0x4643534D // "MSCF"
80 #define VIDMEM_BASE 0xb8000
81 #define BITPLANE_BASE 0xa0000
83 #define CRTC_COMMAND ((PUCHAR)0x3d4)
84 #define CRTC_DATA ((PUCHAR)0x3d5)
86 #define CRTC_COLUMNS 0x01
87 #define CRTC_OVERFLOW 0x07
88 #define CRTC_ROWS 0x12
89 #define CRTC_SCANLINES 0x09
90 #define CRTC_CURSORSTART 0x0a
91 #define CRTC_CURSOREND 0x0b
92 #define CRTC_CURSORPOSHI 0x0e
93 #define CRTC_CURSORPOSLO 0x0f
95 #define SEQ_COMMAND ((PUCHAR)0x3c4)
96 #define SEQ_DATA ((PUCHAR)0x3c5)
98 #define GCT_COMMAND ((PUCHAR)0x3ce)
99 #define GCT_DATA ((PUCHAR)0x3cf)
101 /* SEQ regs numbers*/
102 #define SEQ_RESET 0x00
103 #define SEQ_ENABLE_WRT_PLANE 0x02
104 #define SEQ_MEM_MODE 0x04
106 /* GCT regs numbers */
107 #define GCT_READ_PLANE 0x04
108 #define GCT_RW_MODES 0x05
109 #define GCT_GRAPH_MODE 0x06
111 #define ATTRC_WRITEREG ((PUCHAR)0x3c0)
112 #define ATTRC_READREG ((PUCHAR)0x3c1)
113 #define ATTRC_INPST1 ((PUCHAR)0x3da)
119 #define MISC (PUCHAR)0x3c2
120 #define SEQ (PUCHAR)0x3c4
121 #define SEQDATA (PUCHAR)0x3c5
122 #define CRTC (PUCHAR)0x3d4
123 #define CRTCDATA (PUCHAR)0x3d5
124 #define GRAPHICS (PUCHAR)0x3ce
125 #define GRAPHICSDATA (PUCHAR)0x3cf
126 #define ATTRIB (PUCHAR)0x3c0
127 #define STATUS (PUCHAR)0x3da
128 #define PELMASK (PUCHAR)0x3c6
129 #define PELINDEX (PUCHAR)0x3c8
130 #define PELDATA (PUCHAR)0x3c9
132 void ScrLoadFontTable(UINT32 CodePage
);
133 NTSTATUS
ExtractFont(UINT32 CodePage
, PUCHAR FontBitField
);