ReactOS  0.4.13-dev-249-gcba1a2f
vga.c
Go to the documentation of this file.
1 /*++
2 
3 Copyright (c) 1998-2001 Klaus P. Gerlicher
4 
5 Module Name:
6 
7  vga.c
8 
9 Abstract:
10 
11  VGA HW dependent draw routines
12 
13 Environment:
14 
15  Kernel mode only
16 
17 Author:
18 
19  Klaus P. Gerlicher
20  ReactOS Port by Eugene Ingerman
21 
22 Revision History:
23 
24  04-Aug-1998: created
25  15-Nov-2000: general cleanup of source files
26 
27 Copyright notice:
28 
29  This file may be distributed under the terms of the GNU Public License.
30 
31 --*/
32 
34 // INCLUDES
36 #include "remods.h"
37 #include "precomp.h"
38 
39 //#include <asm/io.h>
40 //#include <linux/ctype.h>
41 
42 
44 // PROTOTYPES
46 extern void pice_save_current_registers(void);
47 extern void pice_restore_current_registers(void);
48 extern void pice_set_mode_3_80x50(void);
49 extern void pice_set_mode_3_80x25(void);
50 
51 extern UCHAR cGraphTable[8*256];
52 
53 // storage for original VGA font
55 
57 // DEFINES
59 #define VGA_EXTENDED // define this for 80x50 console mode
60 
61 #ifndef VGA_EXTENDED
62 #define SCREEN_BUFFER_SIZE (80*25*2)
63 #else
64 #define SCREEN_BUFFER_SIZE (80*50*2)
65 #endif
66 
67 /* Port addresses of control regs */
68 #define MISCOUTPUT 0x3c2
69 #define FEATURECONTROL 0x3da
70 #define SEQUENCER 0x3c4
71 #define CRTC 0x03d4
72 #define GRAPHICS 0x3ce
73 #define ATTRIBS 0x03c0
74 #define PELADDRESSWRITE 0x3c8
75 #define PELDATAREG 0x3c9
76 
77 /* Number of regs on the various controllers */
78 
79 #define MAXSEQ 5
80 #define MAXCRTC 0x19
81 #define MAXGRAPH 0x9
82 #define MAXATTRIB 0x015
83 
85 // GLOBALS
87 // used for HERCULES text and VGA text mode
89 #ifndef VGA_EXTENDED
90 {
91  {1,3,1,0,FALSE},
92  {5,4,1,0,FALSE},
93  {10,9,1,0,FALSE},
94  {20,4,1,0,FALSE}
95 };
96 #else // VGA_EXTENDED
97 {
98  {1,3,1,0,FALSE},
99  {5,4,1,0,FALSE},
100  {10,24,1,0,FALSE},
101  {35,14,1,0,FALSE}
102 };
103 #endif // VGA_EXTENDED
104 
110 
114 
115 struct _attr
116 {
117  union
118  {
119  struct
120  {
121 
122  UCHAR fgcol : 4;
123  UCHAR bkcol : 3;
124  UCHAR blink : 1;
125  }bits;
126  UCHAR Asuchar;
127  }u;
128 }attr;
129 
130 unsigned char oldgraphicsmode;
131 unsigned char oldgraphicsmisc;
132 unsigned char oldsqregmapmask;
133 unsigned char oldsqregmemory;
135 unsigned char oldgraphicsreadmapsel;
136 
137 unsigned char read_vga_reg(int port, int reg)
138 {
139  outportb(port,reg);
140  return(inportb(port+1));
141 }
142 
143 void write_vga_reg(int port, unsigned char reg, unsigned char value)
144 {
145  outportb(port,reg);
146  outportb(port+1,value);
147 }
148 
149 /* Registers within controllers */
150 #define VREND 0x11
151 #define GRREGSETRESET 0
152 #define GRREGENABLESETRESET 1
153 #define GRREGREADMAPSEL 4
154 #define SQREGMAPMASK 2
155 #define SQREGMEMORY 4
156 #define GRREGWRMODE 5
157 #define GRREGMISC 6
158 
159 void map_font_memory(void)
160 {
167 
168 
169  /* Make sure set/reset enable is off */
171  /* Select read plane 2 */
173  /* Make sure write and read mode = 0 */
175  /* Set mapping to 64K at a000:0 & turn off odd/even at the graphics reg */
177  /* Set sequencer plane to 2 */
179  /* Turn off odd/even at the sequencer */
181 }
182 
184 {
191 }
192 
193 /* Font and palette constants */
194 #define BYTESPERFONT 8
195 #define FONTENTRIES 256
196 #define FONTBUFFERSIZE 8192
197 
198 void save_font(UCHAR* graph_table)
199 {
200  PUCHAR FontBase = pFontBufferVga;
201  int i,j;
202  map_font_memory();
203 
204  for (i=0; i < FONTENTRIES; i++)
205  for (j=0; j < 16; j++)
206  graph_table[i*16+j] = FontBase[i*32+j];
207 
209 }
210 
211 void load_font(UCHAR* graph_table,int bEnter)
212 {
213  PUCHAR FontBase = pFontBufferVga;
214  int i,j;
215  map_font_memory();
216 
217  if(bEnter)
218  {
219 #ifdef VGA_EXTENDED
220  for (i=0; i < FONTENTRIES; i++)
221  for (j=0; j < 8; j++)
222  FontBase[i*32+j] = graph_table[i*BYTESPERFONT+j];
223 #else // VGA_EXTENDED
224  for (i=0; i < FONTENTRIES; i++)
225  for (j=0; j < 16; j++)
226  FontBase[i*32+j] = graph_table[i*BYTESPERFONT+(j/2)] << (j&1);
227 #endif // VGA_EXTENDED
228  }
229  else
230  {
231  for (i=0; i < FONTENTRIES; i++)
232  for (j=0; j < 16; j++)
233  FontBase[i*32+j] = graph_table[i*16+j];
234  }
235 
237 }
238 
239 //*************************************************************************
240 // SetForegroundColorVga()
241 //
242 //*************************************************************************
244 {
245  attr.u.bits.fgcol = col;
246  attr.u.bits.blink = 0;
247 }
248 
249 //*************************************************************************
250 // SetBackgroundColorVga()
251 //
252 //*************************************************************************
254 {
255  attr.u.bits.bkcol = col;
256  attr.u.bits.blink = 0;
257 }
258 
259 //*************************************************************************
260 // PrintGrafVga()
261 //
262 //*************************************************************************
264 {
265  ((PUSHORT)pScreenBufferVga)[y*GLOBAL_SCREEN_WIDTH + x] = (USHORT)((attr.u.Asuchar<<8)|c);
266 }
267 
268 //*************************************************************************
269 // ShowCursor()
270 //
271 // show hardware cursor
272 //*************************************************************************
273 void ShowCursorVga(void)
274 {
275  ENTER_FUNC();
276 
278 
279  outb_p(0x0a,0x3d4);
280  outb_p(inb_p(0x3d5)&~0x20,0x3d5);
281 
282  LEAVE_FUNC();
283 }
284 
285 //*************************************************************************
286 // HideCursorVga()
287 //
288 // hide hardware cursor
289 //*************************************************************************
290 void HideCursorVga(void)
291 {
292  ENTER_FUNC();
294 
295  outb_p(0x0a,0x3d4);
296  outb_p(inb_p(0x3d5)|0x20,0x3d5);
297 
298  LEAVE_FUNC();
299 }
300 
301 //*************************************************************************
302 // CopyLineTo()
303 //
304 // copy a line from src to dest
305 //*************************************************************************
307 {
309 
310  ENTER_FUNC();
311 
313 
314  LEAVE_FUNC();
315 }
316 
317 //*************************************************************************
318 // InvertLineVga()
319 //
320 // invert a line on the screen
321 //*************************************************************************
323 {
324  ULONG i;
326  USHORT attr;
327 
329  {
331  attr = ((attr & 0x07)<<4) | ((attr & 0xF0)>>4);
332  attr <<= 8;
333  for(i=0;i<GLOBAL_SCREEN_WIDTH;i++)
334  p[line*GLOBAL_SCREEN_WIDTH + i] = (p[line*GLOBAL_SCREEN_WIDTH + i] & 0x00FF) | attr;
335  }
336 }
337 
338 //*************************************************************************
339 // HatchLineVga()
340 //
341 // hatches a line on the screen
342 //*************************************************************************
344 {
345  ULONG i;
347 
349  {
350  for(i=0;i<GLOBAL_SCREEN_WIDTH;i++)
351  p[line*GLOBAL_SCREEN_WIDTH + i] = (p[line*GLOBAL_SCREEN_WIDTH + i] & 0xF0FF) | 0x0c00;
352  }
353 }
354 
355 //*************************************************************************
356 // ClrLineVga()
357 //
358 // clear a line on the screen
359 //*************************************************************************
361 {
362  ULONG i;
364 
366  {
367  for(i=0;i<GLOBAL_SCREEN_WIDTH;i++)
368  p[line*GLOBAL_SCREEN_WIDTH + i] = (USHORT)((attr.u.Asuchar<<8) | 0x20);
369  }
370 }
371 
372 //*************************************************************************
373 // PrintLogoVga()
374 //
375 //*************************************************************************
377 {
378  NOT_IMPLEMENTED();
379 }
380 
381 //*************************************************************************
382 // PrintCursorVga()
383 //
384 // emulate a blinking cursor block
385 //*************************************************************************
387 {
388  static ULONG count=0;
389  USHORT charoffset;
390  UCHAR data;
392 
393  if( count++>250 )
394  {
395  count=0;
396 
397  charoffset = (y* GLOBAL_SCREEN_WIDTH + x);
398 
399  outb_p(0x0e,0x3d4);
400  data=(UCHAR)((charoffset>>8)&0xFF);
401  outb_p(data,0x3d5);
402 
403  outb_p(0x0f,0x3d4);
404  data=(UCHAR)(charoffset & 0xFF);
405  outb_p(data,0x3d5);
406  }
407 }
408 
409 //*************************************************************************
410 // SaveGraphicsVga()
411 //
412 //*************************************************************************
414 {
415  UCHAR data;
416 
417  // save current regs
419 
420  // unprotect crtc regs 0-7
421  outb_p(0x11,0x3d4);
422  data = inb_p(0x3d5);
423  outb_p(data & 0x7F,0x3d5);
424 
425  // save current font
427 
428  // restore original regs
429 #ifdef VGA_EXTENDED
431 #else
433 #endif
434 
435  // load a font
437 
438  // copy the screen content to temp area
440  // copy the console to the screen
442  // save original pointer
444  // pScreenBufferVga now points to screen
446 }
447 
448 //*************************************************************************
449 // RestoreGraphicsStateVga()
450 //
451 //*************************************************************************
453 {
454  UCHAR data;
455 
456  // unprotect crtc regs 0-7
457  outb_p(0x11,0x3d4);
458  data = inb_p(0x3d5);
459  outb_p(data & 0x7F,0x3d5);
460 
461  // restore original regs
463 
464  // load a font
466 
468  // copy screen to the console
470  // copy the temp area to the screen
472 }
473 
474 //*************************************************************************
475 // ConsoleInitVga()
476 //
477 // init terminal screen
478 //*************************************************************************
480 {
481  BOOLEAN bResult = FALSE;
482  PUSHORT p;
484  PHYSICAL_ADDRESS FontBuffer;
485 
486 
487  ENTER_FUNC();
488 
502 
505 
507 
508  GLOBAL_SCREEN_WIDTH = 80;
509 #ifndef VGA_EXTENDED
511 #else // VGA_EXTENDED
513 #endif // VGA_EXTENDED
514 
515  attr.u.Asuchar = 0x07;
516 
517  // the real framebuffer
518  FrameBuffer.u.LowPart = 0xB8000;
520 
521  //The real font buffer
522  FontBuffer.u.LowPart = 0xA0000;
524 
525  // the console
527  // the save area
529 
530  if(pScreenBufferVga)
531  {
532  DPRINT((0,"VGA memory phys. 0x000b0000 mapped to virt. 0x%x\n",pScreenBufferVga));
533 
534  bResult = TRUE;
535 
537 
539 
540  DPRINT((0,"VGA memory cleared!\n"));
541 
542  EmptyRingBuffer();
543 
544  DPRINT((0,"ConsoleInitVga() SUCCESS!\n"));
545  }
546 
547  LEAVE_FUNC();
548 
549  return bResult;
550 }
551 
552 //*************************************************************************
553 // ConsoleShutdownVga()
554 //
555 // exit terminal screen
556 //*************************************************************************
558 {
559  ENTER_FUNC();
560 
561  if(pScreenBufferVga)
562  {
567  }
568 
569  LEAVE_FUNC();
570 }
571 
572 
#define FONTBUFFERSIZE
Definition: vga.c:196
void(* PrintLogo)(BOOLEAN bShow)
Definition: hardware.h:47
BOOLEAN bCursorEnabled
Definition: hardware.c:51
void save_font(UCHAR *graph_table)
Definition: vga.c:198
void ConsoleShutdownVga(void)
Definition: vga.c:557
void KeyboardFlushKeyboardQueue(void)
Definition: utils.c:1455
void InvertLineVga(ULONG line)
Definition: vga.c:322
#define TRUE
Definition: types.h:120
#define GRREGREADMAPSEL
Definition: vga.c:153
void SetWindowGeometry(PVOID pWindow)
Definition: hardware.c:915
UCHAR inportb(PUCHAR port)
Definition: utils.c:2174
GLint x0
Definition: linetemp.h:95
void EmptyRingBuffer(void)
Definition: hardware.c:104
void load_font(UCHAR *graph_table, int bEnter)
Definition: vga.c:211
unsigned char oldgraphicssetresetenable
Definition: vga.c:134
void(* FlushKeyboardQueue)(void)
Definition: hardware.h:61
ULONG GLOBAL_SCREEN_WIDTH
Definition: hardware.c:62
GLuint GLuint GLsizei count
Definition: gl.h:1545
unsigned char * PUCHAR
Definition: retypes.h:3
#define SQREGMAPMASK
Definition: vga.c:154
UCHAR Asuchar
Definition: hercules.c:92
unsigned char oldsqregmemory
Definition: vga.c:133
ULONG GLOBAL_SCREEN_HEIGHT
Definition: hardware.c:62
void(* HideCursor)(void)
Definition: hardware.h:52
void pice_restore_current_registers(void)
PUCHAR pScreenBufferVga
Definition: vga.c:105
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
#define LEAVE_FUNC()
Definition: debug.h:43
#define SEQUENCER
Definition: vga.c:70
PVOID NTAPI MmMapIoSpace(IN PHYSICAL_ADDRESS PhysicalAddress, IN SIZE_T NumberOfBytes, IN MEMORY_CACHING_TYPE CacheType)
Definition: iosup.c:47
BOOLEAN ConsoleInitVga(void)
Definition: vga.c:479
void map_font_memory(void)
Definition: vga.c:159
void pice_save_current_registers(void)
#define NONPAGEDPOOL
Definition: utils.h:306
struct _attr::@1521::@1522 bits
#define SCREEN_BUFFER_SIZE
Definition: vga.c:64
UCHAR offset_f
Definition: vga.c:113
void ClrLineVga(ULONG line)
Definition: vga.c:360
#define GRREGMISC
Definition: vga.c:157
void(* SetBackgroundColor)(ECOLORS)
Definition: hardware.h:54
WINDOW wWindowVga[4]
Definition: vga.c:88
void(* SetForegroundColor)(ECOLORS)
Definition: hardware.h:53
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
Definition: glfuncs.h:248
struct _attr attr
void outb_p(UCHAR data, PUCHAR port)
Definition: utils.c:2159
void unmap_font_memory(void)
Definition: vga.c:183
#define GRAPHICS
Definition: vga.c:72
#define SQREGMEMORY
Definition: vga.c:155
void(* ClrLine)(ULONG line)
Definition: hardware.h:44
UCHAR cGraphTable2[16 *256]
Definition: vga.c:54
void(* RestoreGraphicsState)(void)
Definition: hardware.h:50
unsigned char BOOLEAN
union _attr::@1521 u
smooth NULL
Definition: ftsmooth.c:416
void * PICE_malloc(size_t numBytes, BOOLEAN fromPaged)
Definition: utils.c:2212
Definition: parser.c:48
void DPRINT(...)
Definition: polytest.cpp:61
void ShowCursorVga(void)
Definition: vga.c:273
WINDOW wWindow[4]
Definition: hardware.c:59
void RestoreGraphicsStateVga(void)
Definition: vga.c:452
void SaveGraphicsStateVga(void)
Definition: vga.c:413
OUTPUT_HANDLERS ohandlers
Definition: hardware.c:65
UCHAR bkcol
Definition: hercules.c:89
UCHAR(* GetKeyPolled)(void)
Definition: hardware.h:60
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 GLint GLint j
Definition: glfuncs.h:250
PUCHAR pScreenBufferTempVga
Definition: vga.c:107
void outportb(PUCHAR port, UCHAR data)
Definition: utils.c:2154
void(* PrintGraf)(ULONG x, ULONG y, UCHAR c)
Definition: hardware.h:42
INPUT_HANDLERS ihandlers
Definition: hardware.c:66
UCHAR offset_e
Definition: vga.c:113
void PrintCursorVga(BOOLEAN bForce)
Definition: vga.c:386
void(* PrintCursor)(BOOLEAN bForce)
Definition: hardware.h:48
const GLubyte * c
Definition: glext.h:8905
void(* ShowCursor)(void)
Definition: hardware.h:51
enum _ECOLORS ECOLORS
unsigned char read_vga_reg(int port, int reg)
Definition: vga.c:137
PUCHAR pScreenBufferSaveVga
Definition: vga.c:106
void PICE_free(void *p)
Definition: utils.c:2222
void PICE_memcpy(void *t, void *s, int sz)
Definition: utils.c:239
Definition: cookie.c:170
UCHAR offset_c
Definition: vga.c:112
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
void PrintLogoVga(BOOLEAN bShow)
Definition: vga.c:376
#define BYTESPERFONT
Definition: vga.c:194
void PrintGrafVga(ULONG x, ULONG y, UCHAR c)
Definition: vga.c:263
PUCHAR pFontBufferVga
Definition: vga.c:109
unsigned char UCHAR
Definition: xmlstorage.h:181
void pice_set_mode_3_80x25(void)
#define FONTENTRIES
Definition: vga.c:195
#define GRREGWRMODE
Definition: vga.c:156
USHORT y
Definition: hardware.h:33
void(* SaveGraphicsState)(void)
Definition: hardware.h:49
GLenum src
Definition: glext.h:6340
void(* HatchLine)(ULONG line)
Definition: hardware.h:46
void SetBackgroundColorVga(ECOLORS col)
Definition: vga.c:253
unsigned char oldsqregmapmask
Definition: vga.c:132
unsigned char oldgraphicsmode
Definition: vga.c:130
PUCHAR pScreenBufferHardwareVga
Definition: vga.c:108
static PVOID FrameBuffer
Definition: xboxvideo.c:24
void HatchLineVga(ULONG line)
Definition: vga.c:343
void SetForegroundColorVga(ECOLORS col)
Definition: vga.c:243
void CopyLineToVga(USHORT dest, USHORT src)
Definition: vga.c:306
unsigned char oldgraphicsreadmapsel
Definition: vga.c:135
UCHAR inb_p(PUCHAR port)
Definition: utils.c:2179
unsigned short USHORT
Definition: pedump.c:61
USHORT usCurX
Definition: hardware.h:34
UCHAR offset_d
Definition: vga.c:112
void HideCursorVga(void)
Definition: vga.c:290
VOID NTAPI MmUnmapIoSpace(IN PVOID BaseAddress, IN SIZE_T NumberOfBytes)
Definition: iosup.c:193
unsigned char oldgraphicsmisc
Definition: vga.c:131
USHORT usCurY
Definition: hardware.h:34
#define GRREGENABLESETRESET
Definition: vga.c:152
void(* CopyLineTo)(USHORT dest, USHORT src)
Definition: hardware.h:41
static int reg
Definition: i386-dis.c:1275
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
void(* InvertLine)(ULONG line)
Definition: hardware.h:45
Definition: hercules.c:81
struct _LARGE_INTEGER::@2192 u
void pice_set_mode_3_80x50(void)
UCHAR offset_a
Definition: vga.c:111
#define c
Definition: ke_i.h:80
unsigned int ULONG
Definition: retypes.h:1
#define ENTER_FUNC()
Definition: debug.h:42
static char * dest
Definition: rtl.c:135
UCHAR KeyboardGetKeyPolled(void)
Definition: utils.c:1375
GLfloat GLfloat p
Definition: glext.h:8902
void write_vga_reg(int port, unsigned char reg, unsigned char value)
Definition: vga.c:143
UCHAR cGraphTable[8 *256]
Definition: charset.h:3
USHORT port
Definition: uri.c:227
UCHAR blink
Definition: hercules.c:90
unsigned short * PUSHORT
Definition: retypes.h:2
void PICE_memset(void *p, unsigned char c, int sz)
Definition: utils.c:228
UCHAR fgcol
Definition: hercules.c:88
#define NOT_IMPLEMENTED()
Definition: hardware.h:153