mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 01:55:19 +00:00
[BOOTVID] Replace hardcoded screen and font size numbers by #define-d values.
This commit is contained in:
parent
ff722ac72e
commit
1d2b0fbcd1
4 changed files with 55 additions and 49 deletions
|
@ -33,8 +33,8 @@ ULONG VidpScrollRegion[4] =
|
|||
{
|
||||
0,
|
||||
0,
|
||||
640 - 1,
|
||||
480 - 1
|
||||
SCREEN_WIDTH - 1,
|
||||
SCREEN_HEIGHT - 1
|
||||
};
|
||||
|
||||
typedef struct _VGA_COLOR
|
||||
|
@ -97,7 +97,7 @@ VidpSetPixel(IN ULONG Left,
|
|||
//
|
||||
// Calculate the pixel position
|
||||
//
|
||||
PixelPosition = &VgaArmBase[Left + (Top * 640)];
|
||||
PixelPosition = &VgaArmBase[Left + (Top * SCREEN_WIDTH)];
|
||||
|
||||
//
|
||||
// Set our color
|
||||
|
@ -117,10 +117,10 @@ DisplayCharacter(IN CHAR Character,
|
|||
ULONG i, j, XOffset;
|
||||
|
||||
/* Get the font line for this character */
|
||||
FontChar = &FontData[Character * 13 - Top];
|
||||
FontChar = &FontData[Character * BOOTCHAR_HEIGHT - Top];
|
||||
|
||||
/* Loop each pixel height */
|
||||
i = 13;
|
||||
i = BOOTCHAR_HEIGHT;
|
||||
do
|
||||
{
|
||||
/* Loop each pixel width */
|
||||
|
@ -159,8 +159,8 @@ VgaScroll(IN ULONG Scroll)
|
|||
PUSHORT i, j;
|
||||
|
||||
/* Set memory positions of the scroll */
|
||||
SourceOffset = &VgaArmBase[(VidpScrollRegion[1] * 80) + (VidpScrollRegion[0] >> 3)];
|
||||
DestOffset = &SourceOffset[Scroll * 80];
|
||||
SourceOffset = &VgaArmBase[(VidpScrollRegion[1] * (SCREEN_WIDTH / 8)) + (VidpScrollRegion[0] >> 3)];
|
||||
DestOffset = &SourceOffset[Scroll * (SCREEN_WIDTH / 8)];
|
||||
|
||||
/* Save top and check if it's above the bottom */
|
||||
Top = VidpScrollRegion[1];
|
||||
|
@ -196,8 +196,8 @@ VgaScroll(IN ULONG Scroll)
|
|||
}
|
||||
|
||||
/* Move to the next line */
|
||||
SourceOffset += 80;
|
||||
DestOffset += 80;
|
||||
SourceOffset += (SCREEN_WIDTH / 8);
|
||||
DestOffset += (SCREEN_WIDTH / 8);
|
||||
|
||||
/* Increase top */
|
||||
Top++;
|
||||
|
@ -219,18 +219,18 @@ PreserveRow(IN ULONG CurrentTop,
|
|||
if (Direction)
|
||||
{
|
||||
/* Calculate the position in memory for the row */
|
||||
Position1 = &VgaArmBase[CurrentTop * 80];
|
||||
Position2 = &VgaArmBase[0x9600];
|
||||
Position1 = &VgaArmBase[CurrentTop * (SCREEN_WIDTH / 8)];
|
||||
Position2 = &VgaArmBase[SCREEN_HEIGHT * (SCREEN_WIDTH / 8)];
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Calculate the position in memory for the row */
|
||||
Position1 = &VgaArmBase[0x9600];
|
||||
Position2 = &VgaArmBase[CurrentTop * 80];
|
||||
Position1 = &VgaArmBase[SCREEN_HEIGHT * (SCREEN_WIDTH / 8)];
|
||||
Position2 = &VgaArmBase[CurrentTop * (SCREEN_WIDTH / 8)];
|
||||
}
|
||||
|
||||
/* Set the count and loop every pixel */
|
||||
Count = TopDelta * 80;
|
||||
Count = TopDelta * (SCREEN_WIDTH / 8);
|
||||
while (Count--)
|
||||
{
|
||||
/* Write the data back on the other position */
|
||||
|
@ -255,8 +255,8 @@ VidpInitializeDisplay(VOID)
|
|||
//
|
||||
// Initialize timings to 640x480
|
||||
//
|
||||
WRITE_REGISTER_ULONG(PL110_LCDTIMING0, LCDTIMING0_PPL(640));
|
||||
WRITE_REGISTER_ULONG(PL110_LCDTIMING1, LCDTIMING1_LPP(480));
|
||||
WRITE_REGISTER_ULONG(PL110_LCDTIMING0, LCDTIMING0_PPL(SCREEN_WIDTH));
|
||||
WRITE_REGISTER_ULONG(PL110_LCDTIMING1, LCDTIMING1_LPP(SCREEN_HEIGHT));
|
||||
|
||||
//
|
||||
// Enable the LCD Display
|
||||
|
@ -327,7 +327,7 @@ VidResetDisplay(IN BOOLEAN HalReset)
|
|||
// Re-initialize the palette and fill the screen black
|
||||
//
|
||||
//InitializePalette();
|
||||
VidSolidColorFill(0, 0, 639, 479, 0);
|
||||
VidSolidColorFill(0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -424,7 +424,7 @@ VOID
|
|||
NTAPI
|
||||
VidDisplayString(IN PUCHAR String)
|
||||
{
|
||||
ULONG TopDelta = 14;
|
||||
ULONG TopDelta = BOOTCHAR_HEIGHT + 1;
|
||||
|
||||
/* Start looping the string */
|
||||
while (*String)
|
||||
|
|
|
@ -485,5 +485,5 @@ VidResetDisplay(IN BOOLEAN HalReset)
|
|||
|
||||
/* Re-initialize the palette and fill the screen black */
|
||||
InitializePalette();
|
||||
VidSolidColorFill(0, 0, 639, 479, 0);
|
||||
VidSolidColorFill(0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, 0);
|
||||
}
|
||||
|
|
|
@ -6,8 +6,8 @@ static ULONG ScrollRegion[4] =
|
|||
{
|
||||
0,
|
||||
0,
|
||||
640 - 1,
|
||||
480 - 1
|
||||
SCREEN_WIDTH - 1,
|
||||
SCREEN_HEIGHT - 1
|
||||
};
|
||||
static UCHAR lMaskTable[8] =
|
||||
{
|
||||
|
@ -97,7 +97,7 @@ SetPixel(IN ULONG Left,
|
|||
PUCHAR PixelPosition;
|
||||
|
||||
/* Calculate the pixel position. */
|
||||
PixelPosition = (PUCHAR)(VgaBase + (Left >> 3) + (Top * 80));
|
||||
PixelPosition = (PUCHAR)(VgaBase + (Left >> 3) + (Top * (SCREEN_WIDTH / 8)));
|
||||
|
||||
/* Select the bitmask register and write the mask */
|
||||
__outpw(VGA_BASE_IO_PORT + GRAPH_ADDRESS_PORT, (PixelMask[Left & 7] << 8) | IND_BIT_MASK);
|
||||
|
@ -149,14 +149,14 @@ DisplayCharacter(IN CHAR Character,
|
|||
|
||||
/* Get the font and pixel pointer */
|
||||
FontChar = GetFontPtr(Character);
|
||||
PixelPtr = (PUCHAR)(VgaBase + (Left >> 3) + (Top * 80));
|
||||
PixelPtr = (PUCHAR)(VgaBase + (Left >> 3) + (Top * (SCREEN_WIDTH / 8)));
|
||||
|
||||
/* Loop all pixel rows */
|
||||
Height = BOOTCHAR_HEIGHT;
|
||||
do
|
||||
{
|
||||
SET_PIXELS(PixelPtr, *FontChar >> Shift, TextColor);
|
||||
PixelPtr += 80;
|
||||
PixelPtr += (SCREEN_WIDTH / 8);
|
||||
FontChar += FONT_PTR_DELTA;
|
||||
} while (--Height);
|
||||
|
||||
|
@ -168,14 +168,14 @@ DisplayCharacter(IN CHAR Character,
|
|||
|
||||
/* Get the font and pixel pointer (2nd byte) */
|
||||
FontChar = GetFontPtr(Character);
|
||||
PixelPtr = (PUCHAR)(VgaBase + (Left >> 3) + (Top * 80) + 1);
|
||||
PixelPtr = (PUCHAR)(VgaBase + (Left >> 3) + (Top * (SCREEN_WIDTH / 8)) + 1);
|
||||
|
||||
/* Loop all pixel rows */
|
||||
Height = BOOTCHAR_HEIGHT;
|
||||
do
|
||||
{
|
||||
SET_PIXELS(PixelPtr, *FontChar << Shift, TextColor);
|
||||
PixelPtr += 80;
|
||||
PixelPtr += (SCREEN_WIDTH / 8);
|
||||
FontChar += FONT_PTR_DELTA;
|
||||
} while (--Height);
|
||||
}
|
||||
|
@ -192,14 +192,14 @@ DisplayCharacter(IN CHAR Character,
|
|||
|
||||
/* Get the font and pixel pointer */
|
||||
FontChar = GetFontPtr(Character);
|
||||
PixelPtr = (PUCHAR)(VgaBase + (Left >> 3) + (Top * 80));
|
||||
PixelPtr = (PUCHAR)(VgaBase + (Left >> 3) + (Top * (SCREEN_WIDTH / 8)));
|
||||
|
||||
/* Loop all pixel rows */
|
||||
Height = BOOTCHAR_HEIGHT;
|
||||
do
|
||||
{
|
||||
SET_PIXELS(PixelPtr, ~*FontChar >> Shift, BackColor);
|
||||
PixelPtr += 80;
|
||||
PixelPtr += (SCREEN_WIDTH / 8);
|
||||
FontChar += FONT_PTR_DELTA;
|
||||
} while (--Height);
|
||||
|
||||
|
@ -211,14 +211,14 @@ DisplayCharacter(IN CHAR Character,
|
|||
|
||||
/* Get the font and pixel pointer (2nd byte) */
|
||||
FontChar = GetFontPtr(Character);
|
||||
PixelPtr = (PUCHAR)(VgaBase + (Left >> 3) + (Top * 80) + 1);
|
||||
PixelPtr = (PUCHAR)(VgaBase + (Left >> 3) + (Top * (SCREEN_WIDTH / 8)) + 1);
|
||||
|
||||
/* Loop all pixel rows */
|
||||
Height = BOOTCHAR_HEIGHT;
|
||||
do
|
||||
{
|
||||
SET_PIXELS(PixelPtr, ~*FontChar << Shift, BackColor);
|
||||
PixelPtr += 80;
|
||||
PixelPtr += (SCREEN_WIDTH / 8);
|
||||
FontChar += FONT_PTR_DELTA;
|
||||
} while (--Height);
|
||||
}
|
||||
|
@ -335,8 +335,8 @@ VgaScroll(IN ULONG Scroll)
|
|||
RowSize = (ScrollRegion[2] - ScrollRegion[0] + 1) / 8;
|
||||
|
||||
/* Calculate the position in memory for the row */
|
||||
OldPosition = (PUCHAR)(VgaBase + (ScrollRegion[1] + Scroll) * 80 + ScrollRegion[0] / 8);
|
||||
NewPosition = (PUCHAR)(VgaBase + ScrollRegion[1] * 80 + ScrollRegion[0] / 8);
|
||||
OldPosition = (PUCHAR)(VgaBase + (ScrollRegion[1] + Scroll) * (SCREEN_WIDTH / 8) + ScrollRegion[0] / 8);
|
||||
NewPosition = (PUCHAR)(VgaBase + ScrollRegion[1] * (SCREEN_WIDTH / 8) + ScrollRegion[0] / 8);
|
||||
|
||||
/* Start loop */
|
||||
for (Top = ScrollRegion[1]; Top <= ScrollRegion[3]; ++Top)
|
||||
|
@ -350,8 +350,8 @@ VgaScroll(IN ULONG Scroll)
|
|||
for (i = 0; i < RowSize; ++i)
|
||||
WRITE_REGISTER_UCHAR(NewPosition + i, READ_REGISTER_UCHAR(OldPosition + i));
|
||||
#endif
|
||||
OldPosition += 80;
|
||||
NewPosition += 80;
|
||||
OldPosition += (SCREEN_WIDTH / 8);
|
||||
NewPosition += (SCREEN_WIDTH / 8);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -377,19 +377,18 @@ PreserveRow(IN ULONG CurrentTop,
|
|||
if (Direction)
|
||||
{
|
||||
/* Calculate the position in memory for the row */
|
||||
Position1 = (PUCHAR)(VgaBase + CurrentTop * 80);
|
||||
Position2 = (PUCHAR)(VgaBase + 0x9600);
|
||||
Position1 = (PUCHAR)(VgaBase + CurrentTop * (SCREEN_WIDTH / 8));
|
||||
Position2 = (PUCHAR)(VgaBase + SCREEN_HEIGHT * (SCREEN_WIDTH / 8));
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Calculate the position in memory for the row */
|
||||
Position1 = (PUCHAR)(VgaBase + 0x9600);
|
||||
Position2 = (PUCHAR)(VgaBase + CurrentTop * 80);
|
||||
Position1 = (PUCHAR)(VgaBase + SCREEN_HEIGHT * (SCREEN_WIDTH / 8));
|
||||
Position2 = (PUCHAR)(VgaBase + CurrentTop * (SCREEN_WIDTH / 8));
|
||||
}
|
||||
|
||||
/* Set the count and loop every pixel */
|
||||
Count = TopDelta * 80;
|
||||
|
||||
Count = TopDelta * (SCREEN_WIDTH / 8);
|
||||
#if defined(_M_IX86) || defined(_M_AMD64)
|
||||
__movsb(Position1, Position2, Count);
|
||||
#else
|
||||
|
@ -966,7 +965,7 @@ VidScreenToBufferBlt(IN PUCHAR Buffer,
|
|||
RtlZeroMemory(Buffer, Delta * Height);
|
||||
|
||||
/* Calculate the pixel offset and convert the X distance into byte form */
|
||||
PixelOffset = Top * 80 + (Left >> 3);
|
||||
PixelOffset = Top * (SCREEN_WIDTH / 8) + (Left >> 3);
|
||||
XDistance >>= 3;
|
||||
|
||||
/* Loop the 4 planes */
|
||||
|
@ -1029,7 +1028,7 @@ VidScreenToBufferBlt(IN PUCHAR Buffer,
|
|||
}
|
||||
|
||||
/* Update pixel position */
|
||||
PixelPosition += 80;
|
||||
PixelPosition += (SCREEN_WIDTH / 8);
|
||||
i += Delta;
|
||||
} while (--y);
|
||||
}
|
||||
|
@ -1072,7 +1071,7 @@ VidSolidColorFill(IN ULONG Left,
|
|||
__outpw(VGA_BASE_IO_PORT + GRAPH_ADDRESS_PORT, 7);
|
||||
|
||||
/* Calculate pixel position for the read */
|
||||
Offset = (PUCHAR)(VgaBase + (Top * 80) + LeftOffset);
|
||||
Offset = (PUCHAR)(VgaBase + (Top * (SCREEN_WIDTH / 8)) + LeftOffset);
|
||||
|
||||
/* Select the bitmask register and write the mask */
|
||||
__outpw(VGA_BASE_IO_PORT + GRAPH_ADDRESS_PORT, (USHORT)lMask);
|
||||
|
@ -1088,7 +1087,7 @@ VidSolidColorFill(IN ULONG Left,
|
|||
WRITE_REGISTER_UCHAR(Offset, READ_REGISTER_UCHAR(Offset) & Color);
|
||||
|
||||
/* Move to the next line */
|
||||
Offset += 80;
|
||||
Offset += (SCREEN_WIDTH / 8);
|
||||
} while (--i);
|
||||
}
|
||||
|
||||
|
@ -1096,7 +1095,7 @@ VidSolidColorFill(IN ULONG Left,
|
|||
if (Distance)
|
||||
{
|
||||
/* Calculate new pixel position */
|
||||
Offset = (PUCHAR)(VgaBase + (Top * 80) + RightOffset);
|
||||
Offset = (PUCHAR)(VgaBase + (Top * (SCREEN_WIDTH / 8)) + RightOffset);
|
||||
Distance--;
|
||||
|
||||
/* Select the bitmask register and write the mask */
|
||||
|
@ -1114,7 +1113,7 @@ VidSolidColorFill(IN ULONG Left,
|
|||
READ_REGISTER_UCHAR(Offset) & Color);
|
||||
|
||||
/* Move to the next line */
|
||||
Offset += 80;
|
||||
Offset += (SCREEN_WIDTH / 8);
|
||||
} while (--i);
|
||||
}
|
||||
|
||||
|
@ -1122,7 +1121,7 @@ VidSolidColorFill(IN ULONG Left,
|
|||
if (Distance)
|
||||
{
|
||||
/* Calculate new pixel position */
|
||||
Offset = (PUCHAR)(VgaBase + (Top * 80) + LeftOffset + 1);
|
||||
Offset = (PUCHAR)(VgaBase + (Top * (SCREEN_WIDTH / 8)) + LeftOffset + 1);
|
||||
|
||||
/* Set the bitmask to 0xFF for all 4 planes */
|
||||
__outpw(VGA_BASE_IO_PORT + GRAPH_ADDRESS_PORT, 0xFF08);
|
||||
|
@ -1145,7 +1144,7 @@ VidSolidColorFill(IN ULONG Left,
|
|||
}
|
||||
|
||||
/* Update position in memory */
|
||||
Offset += (80 - Distance);
|
||||
Offset += ((SCREEN_WIDTH / 8) - Distance);
|
||||
} while (--i);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,7 +8,14 @@
|
|||
/* Define if FontData has upside down characters */
|
||||
#undef CHAR_GEN_UPSIDE_DOWN
|
||||
|
||||
#define BOOTCHAR_HEIGHT 13
|
||||
#define BOOTCHAR_HEIGHT 13
|
||||
#define BOOTCHAR_WIDTH 8 // Each character line is encoded in a UCHAR.
|
||||
|
||||
/*
|
||||
* Screen resolution (for default VGA)
|
||||
*/
|
||||
#define SCREEN_WIDTH 640
|
||||
#define SCREEN_HEIGHT 480
|
||||
|
||||
#ifndef _M_ARM
|
||||
#include "vga.h"
|
||||
|
|
Loading…
Reference in a new issue