#include "precomp.h"
Go to the source code of this file.
◆ VgaInterpretCmdStream()
Definition at line 14 of file bootvid.c.
16{
24
25
26 if (!CmdStream)
return TRUE;
27
28
29 while (*CmdStream !=
EOD)
30 {
31
35
36
38 {
39
41 {
42
44 {
45
48 }
49 else
50 {
51
54 }
55 }
57 {
58
60 {
61
64
65
67
68
70 }
71 else
72 {
73
76
77
79 {
80
83 }
84 }
85 }
87 {
88
90
91
92 ShortValue = *CmdStream++;
94 }
95 else
96 {
97
99
100
103 }
104 }
106 {
107
109 {
111 {
112
114 Count = *CmdStream++;
116
117
119 {
120
123 }
124 break;
125 }
126
128 {
129
131 Count = *CmdStream++;
133
134
136 {
137
139
140
143 }
144 break;
145 }
146
148 {
149
151
152
154 Value &= *CmdStream++;
155 Value ^= *CmdStream++;
156
157
159 break;
160 }
161
162 default:
163
165 }
166 }
167 else if (Major !=
NCMD)
168 {
169
171 }
172 }
173
174
176}
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 179 of file bootvid.c.
180{
181 UCHAR OrgGCAddr, OrgReadMap, OrgBitMask;
182 UCHAR OrgSCAddr, OrgMemMode;
184
185
187
188
189
190
191
192
193
195
196
197
198
199
202
203
204
205
208
209
211 {
212
213
214
215
218 }
219
220
222
223
225 {
226
227
228
229
233 }
234
235
237
238
239
240
241
242 for (
i = 0xBB;
i;
i >>= 1)
243 {
244
246
247
249 {
250
251
252
253
258 }
259 }
260
261
262
263
264
265
267
268
270 {
271
272
273
274
275
276
281 }
282
283
284
285
286
291
292
293
294
295
296
297
298
299
302
303
305 {
306
307
308
309
311 }
312
313
315
316
317
318
319
320
321
323
324
327
328
330 {
331
332
333
334
336
337
339
340
342 }
343
344
345
346
347
348
350
351
353
354
356
357
359}
#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 365 of file bootvid.c.
367{
374
375
377
378
380 {
381
389
390
392 {
393
395 }
396 else
397 {
398
400 }
401
402
405 {
406
408 VgaAddress.HighPart = 0;
416 }
417 else
418 {
419
421 }
422
423
424 }
425
426
428 {
429
433 }
434 else
435 {
436
438 }
439
440
442
443
444 if (SetMode)
445 {
446
449
450
452 {
453
455 }
456 else
457 {
458
460 }
461 }
462
463
465}
USHORT AT_Initialization[]
static BOOLEAN VgaIsPresent(VOID)
static BOOLEAN VgaInterpretCmdStream(_In_ PUSHORT CmdStream)
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()