ReactOS  0.4.15-dev-425-gc40b086
pc98video.c File Reference
#include <freeldr.h>
#include <drivers/pc98/video.h>
Include dependency graph for pc98video.c:

Go to the source code of this file.

Macros

#define VGA_CHAR_SIZE   2
 
#define TEXT_CHAR_SIZE   2
 
#define CHAR_WIDTH   8
 
#define CHAR_HEIGHT   16
 
#define SCREEN_WIDTH   640
 
#define SCREEN_HEIGHT   400
 
#define BYTES_PER_SCANLINE   (SCREEN_WIDTH / 8)
 

Functions

VOID Pc98VideoInit (VOID)
 
VOID Pc98VideoClearScreen (UCHAR Attr)
 
VIDEODISPLAYMODE Pc98VideoSetDisplayMode (char *DisplayModeName, BOOLEAN Init)
 
VOID Pc98VideoGetDisplaySize (PULONG Width, PULONG Height, PULONG Depth)
 
ULONG Pc98VideoGetBufferSize (VOID)
 
VOID Pc98VideoGetFontsFromFirmware (PULONG RomFontPointers)
 
VOID Pc98VideoSetTextCursorPosition (UCHAR X, UCHAR Y)
 
VOID Pc98VideoHideShowTextCursor (BOOLEAN Show)
 
VOID Pc98VideoPutChar (int Ch, UCHAR Attr, unsigned X, unsigned Y)
 
VOID Pc98VideoCopyOffScreenBufferToVRAM (PVOID Buffer)
 
BOOLEAN Pc98VideoIsPaletteFixed (VOID)
 
VOID Pc98VideoSetPaletteColor (UCHAR Color, UCHAR Red, UCHAR Green, UCHAR Blue)
 
VOID Pc98VideoGetPaletteColor (UCHAR Color, UCHAR *Red, UCHAR *Green, UCHAR *Blue)
 
VOID Pc98VideoSync (VOID)
 
VOID Pc98VideoPrepareForReactOS (VOID)
 

Variables

UCHAR BitmapFont8x16 []
 
BOOLEAN HiResoMachine
 
UCHAR TextCols
 
UCHAR TextLines
 
ULONG VramText
 
static ULONG VramPlaneB
 
static ULONG VramPlaneG
 
static ULONG VramPlaneR
 
static ULONG VramPlaneI
 
static const PALETTE_ENTRY CgaPalette []
 

Macro Definition Documentation

◆ BYTES_PER_SCANLINE

#define BYTES_PER_SCANLINE   (SCREEN_WIDTH / 8)

Definition at line 29 of file pc98video.c.

◆ CHAR_HEIGHT

#define CHAR_HEIGHT   16

Definition at line 25 of file pc98video.c.

◆ CHAR_WIDTH

#define CHAR_WIDTH   8

Definition at line 24 of file pc98video.c.

◆ SCREEN_HEIGHT

#define SCREEN_HEIGHT   400

Definition at line 28 of file pc98video.c.

◆ SCREEN_WIDTH

#define SCREEN_WIDTH   640

Definition at line 27 of file pc98video.c.

◆ TEXT_CHAR_SIZE

#define TEXT_CHAR_SIZE   2

Definition at line 20 of file pc98video.c.

◆ VGA_CHAR_SIZE

#define VGA_CHAR_SIZE   2

Definition at line 18 of file pc98video.c.

Function Documentation

◆ Pc98VideoClearScreen()

VOID Pc98VideoClearScreen ( UCHAR  Attr)

Definition at line 158 of file pc98video.c.

159 {
160  USHORT i;
161  USHORT B = (Attr & 0x10) ? 0xFFFF : 0;
162  USHORT G = (Attr & 0x20) ? 0xFFFF : 0;
163  USHORT R = (Attr & 0x40) ? 0xFFFF : 0;
164  USHORT I = (Attr & 0x80) ? 0xFFFF : 0;
165 
166  for (i = 0; i < VRAM_TEXT_SIZE; i += TEXT_CHAR_SIZE)
167  *(PUSHORT)(VramText + i) = ' ';
168 
169  for (i = 0; i < BYTES_PER_SCANLINE * SCREEN_HEIGHT; i += sizeof(USHORT))
170  {
171  *(PUSHORT)(VramPlaneB + i) = B;
172  *(PUSHORT)(VramPlaneG + i) = G;
173  *(PUSHORT)(VramPlaneR + i) = R;
174  *(PUSHORT)(VramPlaneI + i) = I;
175  }
176 }
#define G(r, i, a, b, c, d)
Definition: blake2b-ref.c:117
#define R(b, x)
Definition: sha2.c:134
static ULONG VramPlaneB
Definition: pc98video.c:32
static ULONG VramPlaneR
Definition: pc98video.c:34
#define TEXT_CHAR_SIZE
Definition: pc98video.c:20
ULONG VramText
Definition: pc98video.c:31
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
#define BYTES_PER_SCANLINE
Definition: pc98video.c:29
#define SCREEN_HEIGHT
Definition: pc98video.c:28
#define VRAM_TEXT_SIZE
Definition: video.h:19
#define I(s)
static ULONG VramPlaneI
Definition: pc98video.c:35
unsigned short USHORT
Definition: pedump.c:61
#define B(row, col)
static ULONG VramPlaneG
Definition: pc98video.c:33
unsigned short * PUSHORT
Definition: retypes.h:2

Referenced by ChainLoadBiosBootSectorCode(), and MachInit().

◆ Pc98VideoCopyOffScreenBufferToVRAM()

VOID Pc98VideoCopyOffScreenBufferToVRAM ( PVOID  Buffer)

Definition at line 266 of file pc98video.c.

267 {
268  PUCHAR OffScreenBuffer = (PUCHAR)Buffer;
269  USHORT X, Y;
270 
271  for (Y = 0; Y < SCREEN_HEIGHT / CHAR_HEIGHT; Y++)
272  {
273  for (X = 0; X < SCREEN_WIDTH / CHAR_WIDTH; X++)
274  {
275  Pc98VideoPutChar(OffScreenBuffer[0], OffScreenBuffer[1], X, Y);
276  OffScreenBuffer += VGA_CHAR_SIZE;
277  }
278  }
279 }
#define Y(I)
unsigned char * PUCHAR
Definition: retypes.h:3
#define SCREEN_WIDTH
Definition: pc98video.c:27
VOID Pc98VideoPutChar(int Ch, UCHAR Attr, unsigned X, unsigned Y)
Definition: pc98video.c:236
#define CHAR_HEIGHT
Definition: pc98video.c:25
Definition: bufpool.h:45
#define SCREEN_HEIGHT
Definition: pc98video.c:28
#define VGA_CHAR_SIZE
Definition: pc98video.c:18
#define CHAR_WIDTH
Definition: pc98video.c:24
unsigned short USHORT
Definition: pedump.c:61
#define X(b, s)

Referenced by MachInit().

◆ Pc98VideoGetBufferSize()

ULONG Pc98VideoGetBufferSize ( VOID  )

Definition at line 194 of file pc98video.c.

195 {
197 }
#define SCREEN_WIDTH
Definition: pc98video.c:27
#define CHAR_HEIGHT
Definition: pc98video.c:25
#define SCREEN_HEIGHT
Definition: pc98video.c:28
#define VGA_CHAR_SIZE
Definition: pc98video.c:18
#define CHAR_WIDTH
Definition: pc98video.c:24

Referenced by MachInit().

◆ Pc98VideoGetDisplaySize()

VOID Pc98VideoGetDisplaySize ( PULONG  Width,
PULONG  Height,
PULONG  Depth 
)

Definition at line 186 of file pc98video.c.

187 {
188  *Width = SCREEN_WIDTH / CHAR_WIDTH;
189  *Height = SCREEN_HEIGHT / CHAR_HEIGHT;
190  *Depth = 0;
191 }
_In_opt_ PALLOCATE_FUNCTION _In_opt_ PFREE_FUNCTION _In_ ULONG _In_ SIZE_T _In_ ULONG _In_ USHORT Depth
Definition: exfuncs.h:656
#define SCREEN_WIDTH
Definition: pc98video.c:27
#define CHAR_HEIGHT
Definition: pc98video.c:25
#define SCREEN_HEIGHT
Definition: pc98video.c:28
#define CHAR_WIDTH
Definition: pc98video.c:24

Referenced by MachInit().

◆ Pc98VideoGetFontsFromFirmware()

VOID Pc98VideoGetFontsFromFirmware ( PULONG  RomFontPointers)

Definition at line 200 of file pc98video.c.

201 {
202  *RomFontPointers = VramText + 0x4000;
203 }
ULONG VramText
Definition: pc98video.c:31
#define RomFontPointers
Definition: winldr.c:422

Referenced by MachInit().

◆ Pc98VideoGetPaletteColor()

VOID Pc98VideoGetPaletteColor ( UCHAR  Color,
UCHAR Red,
UCHAR Green,
UCHAR Blue 
)

Definition at line 300 of file pc98video.c.

301 {
302  if (Color < 16)
303  {
308  }
309  else
310  {
311  *Red = 0;
312  *Green = 0;
313  *Blue = 0;
314  }
315 }
Definition: bl.h:202
#define GDC2_IO_i_BLUE
Definition: video.h:265
unsigned char * PUCHAR
Definition: retypes.h:3
UCHAR NTAPI READ_PORT_UCHAR(PUCHAR Address)
Definition: mach.c:528
Definition: bl.h:199
#define GDC2_IO_i_RED
Definition: video.h:264
#define GDC2_IO_o_PALETTE_INDEX
Definition: video.h:273
Definition: bl.h:200
#define GDC2_IO_i_GREEN
Definition: video.h:263
void WRITE_PORT_UCHAR(PUCHAR Address, UCHAR Value)
Definition: mach.c:532

Referenced by MachInit().

◆ Pc98VideoHideShowTextCursor()

VOID Pc98VideoHideShowTextCursor ( BOOLEAN  Show)

Definition at line 219 of file pc98video.c.

220 {
221  CSRFORMPARAM CursorParameters;
222 
223  RtlZeroMemory(&CursorParameters, sizeof(CSRFORMPARAM));
224  CursorParameters.Show = Show;
225  CursorParameters.Blink = TRUE;
226  CursorParameters.BlinkRate = 12;
227  CursorParameters.LinesPerRow = 16;
228  CursorParameters.StartScanLine = 12;
229  CursorParameters.EndScanLine = 15;
230 
232  WRITE_GDC_CSRFORM((PUCHAR)GDC1_IO_o_PARAM, &CursorParameters);
233 }
#define GDC_COMMAND_CSRFORM
Definition: video.h:171
#define TRUE
Definition: types.h:120
UCHAR StartScanLine
Definition: video.h:178
unsigned char * PUCHAR
Definition: retypes.h:3
FORCEINLINE VOID WRITE_GDC_CSRFORM(PUCHAR Port, PCSRFORMPARAM CursorParameters)
Definition: video.h:184
UCHAR EndScanLine
Definition: video.h:179
BOOLEAN Show
Definition: video.h:174
UCHAR BlinkRate
Definition: video.h:176
BOOLEAN Blink
Definition: video.h:175
#define GDC1_IO_o_PARAM
Definition: video.h:232
void WRITE_PORT_UCHAR(PUCHAR Address, UCHAR Value)
Definition: mach.c:532
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:261
#define GDC1_IO_o_COMMAND
Definition: video.h:233
UCHAR LinesPerRow
Definition: video.h:177

Referenced by MachInit(), and Pc98VideoPrepareForReactOS().

◆ Pc98VideoInit()

VOID Pc98VideoInit ( VOID  )

Definition at line 60 of file pc98video.c.

61 {
62  REGS Regs;
63  USHORT i;
64 
65  if (HiResoMachine)
66  {
72  TextCols = 80;
73  TextLines = 31;
74  }
75  else
76  {
82  TextCols = 80;
83  TextLines = 25;
84  }
85 
86  for (i = 0; i < VRAM_ATTR_SIZE; i += TEXT_CHAR_SIZE)
88 
89  /* Int 18h AH=41h
90  * CRT BIOS - Stop displaying graphics
91  */
92  Regs.b.ah = 0x41;
93  Int386(0x18, &Regs, &Regs);
94 
95  /* Int 18h AH=42h
96  * CRT BIOS - Set display area
97  *
98  * CH0-CH3 - always zero
99  * CH4 - video page
100  * CH5 - CRT display mode
101  * 0 - color
102  * 1 - monochrome
103  * CH6-CH7 - VRAM area
104  * 01 - Upper-half (16-32 kB), 640x200
105  * 10 - Lower-half (0-16 kB), 640x200
106  * 11 - All (0-32 kB), 640x400
107  */
108  Regs.b.ah = 0x42;
109  Regs.b.ch = 0xC0;
110  Int386(0x18, &Regs, &Regs); /* 640x400 */
111 
115 
116  Pc98VideoSync();
117  for (i = 0; i < RTL_NUMBER_OF(CgaPalette); i++)
119 
120  /* Int 18h AH=0Ah
121  * CRT BIOS - Set text screen mode
122  *
123  * AL0 - text rows
124  * 0 - 25
125  * 1 - 20
126  * AL1 - text cols
127  * 0 - 80
128  * 1 - 40
129  * AL2 - text attribute
130  * 0 - with vertical line
131  * 1 - normal
132  * AL3 - KCG access mode
133  * 0 - code
134  * 1 - bitmap
135  * AL4-AL7 - always zero
136  *
137  * High-resolution machine:
138  * AL4 - text rows, AL3 - KCG access mode
139  */
140  Regs.b.ah = 0x0A;
141  Regs.b.al = HiResoMachine ? 0x10 : 0x00;
142  Int386(0x18, &Regs, &Regs); /* 80x25(31) */
143 
144  /* Int 18h AH=0Ch
145  * CRT BIOS - Start displaying text
146  */
147  Regs.b.ah = 0x0C;
148  Int386(0x18, &Regs, &Regs);
149 
150  /* Int 18h AH=40h
151  * CRT BIOS - Start displaying graphics
152  */
153  Regs.b.ah = 0x40;
154  Int386(0x18, &Regs, &Regs);
155 }
VOID Pc98VideoSync(VOID)
Definition: pc98video.c:318
UCHAR TextCols
Definition: pc98video.c:21
Definition: bl.h:202
#define VRAM_HI_RESO_PLANE_G
Definition: video.h:27
#define VRAM_NORMAL_PLANE_G
Definition: video.h:13
#define VRAM_ATTR_SIZE
Definition: video.h:20
static ULONG VramPlaneB
Definition: pc98video.c:32
#define VRAM_HI_RESO_TEXT
Definition: video.h:30
unsigned char * PUCHAR
Definition: retypes.h:3
static ULONG VramPlaneR
Definition: pc98video.c:34
unsigned char ah
Definition: pcbios.h:126
Definition: bl.h:199
#define GDC2_IO_o_VIDEO_PAGE_ACCESS
Definition: video.h:272
#define GDC2_IO_o_VIDEO_PAGE
Definition: video.h:271
VOID Pc98VideoSetPaletteColor(UCHAR Color, UCHAR Red, UCHAR Green, UCHAR Blue)
Definition: pc98video.c:288
#define VRAM_NORMAL_PLANE_R
Definition: video.h:14
#define GDC2_IO_o_MODE_FLIPFLOP2
Definition: video.h:278
int __cdecl Int386(int ivec, REGS *in, REGS *out)
#define TEXT_CHAR_SIZE
Definition: pc98video.c:20
ULONG VramText
Definition: pc98video.c:31
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
#define VRAM_TEXT_ATTR_OFFSET
Definition: video.h:18
#define VRAM_HI_RESO_PLANE_B
Definition: video.h:26
#define VRAM_NORMAL_PLANE_I
Definition: video.h:15
unsigned char ch
Definition: pcbios.h:132
BOOLEAN HiResoMachine
Definition: machpc98.c:17
Definition: bl.h:200
#define VRAM_NORMAL_PLANE_B
Definition: video.h:12
BYTEREGS b
Definition: pcbios.h:157
#define VRAM_NORMAL_TEXT
Definition: video.h:17
#define GDC_ATTR_WHITE
Definition: video.h:56
unsigned char al
Definition: pcbios.h:125
static ULONG VramPlaneI
Definition: pc98video.c:35
#define VRAM_HI_RESO_PLANE_I
Definition: video.h:29
#define VRAM_HI_RESO_PLANE_R
Definition: video.h:28
unsigned short USHORT
Definition: pedump.c:61
#define RTL_NUMBER_OF(x)
Definition: RtlRegistry.c:12
Definition: pcbios.h:152
void WRITE_PORT_UCHAR(PUCHAR Address, UCHAR Value)
Definition: mach.c:532
static const PALETTE_ENTRY CgaPalette[]
Definition: pc98video.c:37
#define GDC_ATTR_VISIBLE
Definition: video.h:43
static ULONG VramPlaneG
Definition: pc98video.c:33
UCHAR TextLines
Definition: pc98video.c:22
#define GDC2_MODE_COLORS_16
Definition: video.h:280

Referenced by MachInit().

◆ Pc98VideoIsPaletteFixed()

BOOLEAN Pc98VideoIsPaletteFixed ( VOID  )

Definition at line 282 of file pc98video.c.

283 {
284  return FALSE;
285 }

Referenced by MachInit().

◆ Pc98VideoPrepareForReactOS()

VOID Pc98VideoPrepareForReactOS ( VOID  )

Definition at line 328 of file pc98video.c.

329 {
330  REGS Regs;
331 
332  /* Int 18h AH=41h
333  * CRT BIOS - Stop displaying graphics
334  */
335  Regs.b.ah = 0x41;
336  Int386(0x18, &Regs, &Regs);
337 
339 }
unsigned char ah
Definition: pcbios.h:126
int __cdecl Int386(int ivec, REGS *in, REGS *out)
VOID Pc98VideoHideShowTextCursor(BOOLEAN Show)
Definition: pc98video.c:219
BYTEREGS b
Definition: pcbios.h:157
Definition: pcbios.h:152

Referenced by Pc98PrepareForReactOS().

◆ Pc98VideoPutChar()

VOID Pc98VideoPutChar ( int  Ch,
UCHAR  Attr,
unsigned  X,
unsigned  Y 
)

Definition at line 236 of file pc98video.c.

237 {
238  UCHAR Line;
239  UCHAR B = (Attr & 0x10) ? 0xFF : 0;
240  UCHAR G = (Attr & 0x20) ? 0xFF : 0;
241  UCHAR R = (Attr & 0x40) ? 0xFF : 0;
242  UCHAR I = (Attr & 0x80) ? 0xFF : 0;
243  ULONG VramOffset = X + (Y * CHAR_HEIGHT) * BYTES_PER_SCANLINE;
244  PUCHAR FontPtr = BitmapFont8x16 + Ch * 16;
245 
246  for (Line = 0; Line < CHAR_HEIGHT; Line++)
247  {
248  if (Attr & 0x0F)
249  {
250  *(PUCHAR)(VramPlaneB + VramOffset + Line * BYTES_PER_SCANLINE) = B | ((Attr & 0x01) ? FontPtr[Line] : 0);
251  *(PUCHAR)(VramPlaneG + VramOffset + Line * BYTES_PER_SCANLINE) = G | ((Attr & 0x02) ? FontPtr[Line] : 0);
252  *(PUCHAR)(VramPlaneR + VramOffset + Line * BYTES_PER_SCANLINE) = R | ((Attr & 0x04) ? FontPtr[Line] : 0);
253  *(PUCHAR)(VramPlaneI + VramOffset + Line * BYTES_PER_SCANLINE) = I | ((Attr & 0x08) ? FontPtr[Line] : 0);
254  }
255  else
256  {
257  *(PUCHAR)(VramPlaneB + VramOffset + Line * BYTES_PER_SCANLINE) = B & ~FontPtr[Line];
258  *(PUCHAR)(VramPlaneG + VramOffset + Line * BYTES_PER_SCANLINE) = G & ~FontPtr[Line];
259  *(PUCHAR)(VramPlaneR + VramOffset + Line * BYTES_PER_SCANLINE) = R & ~FontPtr[Line];
260  *(PUCHAR)(VramPlaneI + VramOffset + Line * BYTES_PER_SCANLINE) = I & ~FontPtr[Line];
261  }
262  }
263 }
#define G(r, i, a, b, c, d)
Definition: blake2b-ref.c:117
#define R(b, x)
Definition: sha2.c:134
#define Y(I)
static ULONG VramPlaneB
Definition: pc98video.c:32
unsigned char * PUCHAR
Definition: retypes.h:3
UCHAR BitmapFont8x16[]
Definition: vgafont.c:12
static ULONG VramPlaneR
Definition: pc98video.c:34
#define Ch(x, y, z)
Definition: sha2.c:141
#define CHAR_HEIGHT
Definition: pc98video.c:25
#define BYTES_PER_SCANLINE
Definition: pc98video.c:29
Definition: ncftp.h:79
unsigned char UCHAR
Definition: xmlstorage.h:181
#define I(s)
static ULONG VramPlaneI
Definition: pc98video.c:35
#define B(row, col)
unsigned int ULONG
Definition: retypes.h:1
static ULONG VramPlaneG
Definition: pc98video.c:33
struct Line Line

Referenced by MachInit(), and Pc98VideoCopyOffScreenBufferToVRAM().

◆ Pc98VideoSetDisplayMode()

VIDEODISPLAYMODE Pc98VideoSetDisplayMode ( char DisplayModeName,
BOOLEAN  Init 
)

Definition at line 179 of file pc98video.c.

180 {
181  /* Not supported by hardware */
182  return VideoTextMode;
183 }

Referenced by MachInit().

◆ Pc98VideoSetPaletteColor()

VOID Pc98VideoSetPaletteColor ( UCHAR  Color,
UCHAR  Red,
UCHAR  Green,
UCHAR  Blue 
)

Definition at line 288 of file pc98video.c.

289 {
290  if (Color < 16)
291  {
296  }
297 }
Definition: bl.h:202
#define GDC2_IO_o_RED
Definition: video.h:275
#define GDC2_IO_o_BLUE
Definition: video.h:276
unsigned char * PUCHAR
Definition: retypes.h:3
Definition: bl.h:199
#define GDC2_IO_o_PALETTE_INDEX
Definition: video.h:273
Definition: bl.h:200
#define GDC2_IO_o_GREEN
Definition: video.h:274
void WRITE_PORT_UCHAR(PUCHAR Address, UCHAR Value)
Definition: mach.c:532

Referenced by MachInit(), and Pc98VideoInit().

◆ Pc98VideoSetTextCursorPosition()

VOID Pc98VideoSetTextCursorPosition ( UCHAR  X,
UCHAR  Y 
)

Definition at line 206 of file pc98video.c.

207 {
208  CSRWPARAM CursorParameters;
209 
210  RtlZeroMemory(&CursorParameters, sizeof(CSRWPARAM));
211  CursorParameters.CursorAddress = X + Y * TextCols;
212  CursorParameters.DotAddress = 0;
213 
215  WRITE_GDC_CSRW((PUCHAR)GDC1_IO_o_PARAM, &CursorParameters);
216 }
UCHAR TextCols
Definition: pc98video.c:21
#define Y(I)
unsigned char * PUCHAR
Definition: retypes.h:3
ULONG CursorAddress
Definition: video.h:152
#define GDC_COMMAND_CSRW
Definition: video.h:149
FORCEINLINE VOID WRITE_GDC_CSRW(PUCHAR Port, PCSRWPARAM CursorParameters)
Definition: video.h:158
UCHAR DotAddress
Definition: video.h:153
#define GDC1_IO_o_PARAM
Definition: video.h:232
void WRITE_PORT_UCHAR(PUCHAR Address, UCHAR Value)
Definition: mach.c:532
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:261
#define GDC1_IO_o_COMMAND
Definition: video.h:233

Referenced by MachInit().

◆ Pc98VideoSync()

VOID Pc98VideoSync ( VOID  )

Definition at line 318 of file pc98video.c.

319 {
321  NOTHING;
322 
324  NOTHING;
325 }
unsigned char * PUCHAR
Definition: retypes.h:3
UCHAR NTAPI READ_PORT_UCHAR(PUCHAR Address)
Definition: mach.c:528
#define NOTHING
Definition: env_spec_w32.h:461
#define GDC_STATUS_VSYNC
Definition: video.h:39
#define GDC2_IO_i_STATUS
Definition: video.h:258

Referenced by MachInit(), and Pc98VideoInit().

Variable Documentation

◆ BitmapFont8x16

UCHAR BitmapFont8x16[]

Definition at line 12 of file vgafont.c.

Referenced by Pc98VideoPutChar(), and XboxVideoOutputChar().

◆ CgaPalette

const PALETTE_ENTRY CgaPalette[]
static
Initial value:
=
{
{0x00, 0x00, 0x00},
{0x00, 0x00, 0x0A},
{0x00, 0x0A, 0x00},
{0x00, 0x0A, 0x0A},
{0x0A, 0x00, 0x00},
{0x0A, 0x00, 0x0A},
{0x0A, 0x05, 0x00},
{0x0A, 0x0A, 0x0A},
{0x05, 0x05, 0x05},
{0x05, 0x05, 0x0F},
{0x05, 0x0F, 0x05},
{0x05, 0x0F, 0x0F},
{0x0F, 0x05, 0x05},
{0x0F, 0x05, 0x0F},
{0x0F, 0x0F, 0x05},
{0x0F, 0x0F, 0x0F}
}

Definition at line 37 of file pc98video.c.

Referenced by Pc98VideoInit().

◆ HiResoMachine

BOOLEAN HiResoMachine

Definition at line 17 of file machpc98.c.

Referenced by MachInit(), Pc98GetExtendedBIOSData(), and Pc98VideoInit().

◆ TextCols

UCHAR TextCols

Definition at line 21 of file pc98video.c.

Referenced by Pc98ConsPutChar(), Pc98VideoInit(), and Pc98VideoSetTextCursorPosition().

◆ TextLines

UCHAR TextLines

Definition at line 22 of file pc98video.c.

Referenced by Pc98ConsPutChar(), and Pc98VideoInit().

◆ VramPlaneB

ULONG VramPlaneB
static

Definition at line 32 of file pc98video.c.

Referenced by Pc98VideoClearScreen(), Pc98VideoInit(), and Pc98VideoPutChar().

◆ VramPlaneG

ULONG VramPlaneG
static

Definition at line 33 of file pc98video.c.

Referenced by Pc98VideoClearScreen(), Pc98VideoInit(), and Pc98VideoPutChar().

◆ VramPlaneI

ULONG VramPlaneI
static

Definition at line 35 of file pc98video.c.

Referenced by Pc98VideoClearScreen(), Pc98VideoInit(), and Pc98VideoPutChar().

◆ VramPlaneR

ULONG VramPlaneR
static

Definition at line 34 of file pc98video.c.

Referenced by Pc98VideoClearScreen(), Pc98VideoInit(), and Pc98VideoPutChar().

◆ VramText