#include "precomp.h"
Go to the source code of this file.
◆ VgaInterpretCmdStream()
Definition at line 7 of file bootvid.c.
9{
17
18
19 if (!CmdStream)
return TRUE;
20
21
22 while (*CmdStream !=
EOD)
23 {
24
28
29
31 {
32
34 {
35
37 {
38
41 }
42 else
43 {
44
47 }
48 }
50 {
51
53 {
54
57
58
60
61
63 }
64 else
65 {
66
69
70
72 {
73
76 }
77 }
78 }
80 {
81
83
84
85 ShortValue = *CmdStream++;
87 }
88 else
89 {
90
92
93
96 }
97 }
99 {
100
102 {
104 {
105
107 Count = *CmdStream++;
109
110
112 {
113
116 }
117 break;
118 }
119
121 {
122
124 Count = *CmdStream++;
126
127
129 {
130
132
133
136 }
137 break;
138 }
139
141 {
142
144
145
147 Value &= *CmdStream++;
148 Value ^= *CmdStream++;
149
150
152 break;
153 }
154
155 default:
156
158 }
159 }
160 else if (Major !=
NCMD)
161 {
162
164 }
165 }
166
167
169}
VOID NTAPI WRITE_PORT_BUFFER_USHORT(IN PUSHORT Port, IN PUSHORT Buffer, IN ULONG Count)
ULONG_PTR VgaRegisterBase
#define __outpw(Port, Value)
#define __outpb(Port, Value)
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Referenced by VidInitialize(), and VidResetDisplay().
◆ VgaIsPresent()
Definition at line 173 of file bootvid.c.
174{
175 UCHAR OrgGCAddr, OrgReadMap, OrgBitMask;
176 UCHAR OrgSCAddr, OrgMemMode;
178
179
181
182
183
184
185
186
187
189
190
191
192
193
196
197
198
199
202
203
205 {
206
207
208
209
212 }
213
214
216
217
219 {
220
221
222
223
227 }
228
229
231
232
233
234
235
236 for (
i = 0xBB;
i;
i >>= 1)
237 {
238
240
241
243 {
244
245
246
247
252 }
253 }
254
255
256
257
258
259
261
262
264 {
265
266
267
268
269
270
275 }
276
277
278
279
280
285
286
287
288
289
290
291
292
293
296
297
299 {
300
301
302
303
305 }
306
307
309
310
311
312
313
314
315
317
318
321
322
324 {
325
326
327
328
330
331
333
334
336 }
337
338
339
340
341
342
344
345
347
348
350
351
353}
#define START_SYNC_RESET_VALUE
#define GRAPH_ADDRESS_PORT
#define READ_MAP_TEST_SETTING
#define END_SYNC_RESET_VALUE
#define MEMORY_MODE_TEXT_DEFAULT
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Referenced by VidInitialize().
◆ VidInitialize()
Definition at line 362 of file bootvid.c.
364{
371
372
374
375
377 {
378
386
387
389 {
390
392 }
393 else
394 {
395
397 }
398
399
402 {
403
405 VgaAddress.HighPart = 0;
413 }
414 else
415 {
416
418 }
419
420
421 }
422
423
425 {
426
430 }
431 else
432 {
433
435 }
436
437
439
440
441 if (SetMode)
442 {
443
446
447
449 {
450
452 }
453 else
454 {
455
457 }
458 }
459
460
462}
USHORT AT_Initialization[]
static BOOLEAN NTAPI VgaInterpretCmdStream(_In_ PUSHORT CmdStream)
static BOOLEAN NTAPI VgaIsPresent(VOID)
VOID NTAPI MmUnmapIoSpace(IN PVOID BaseAddress, IN SIZE_T NumberOfBytes)
PVOID NTAPI MmMapIoSpace(IN PHYSICAL_ADDRESS PhysicalAddress, IN SIZE_T NumberOfBytes, IN MEMORY_CACHING_TYPE CacheType)
#define HalFindBusAddressTranslation
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
_In_ ULONG _In_ PHYSICAL_ADDRESS _Inout_ PULONG _Out_ PPHYSICAL_ADDRESS TranslatedAddress
_In_ ULONG _In_ PHYSICAL_ADDRESS _Inout_ PULONG AddressSpace
◆ VidResetDisplay()
Definition at line 469 of file bootvid.c.
471{
472
475
476
477 if (HalReset)
478 {
480 {
481
483 }
484 }
485
486
488
489
492}
VOID NTAPI VidSolidColorFill(_In_ ULONG Left, _In_ ULONG Top, _In_ ULONG Right, _In_ ULONG Bottom, _In_ UCHAR Color)
#define InitializePalette()