130 lines
2.0 KiB
C
130 lines
2.0 KiB
C
/*++
|
||
|
||
Copyright (c) 1992 Microsoft Corporation
|
||
|
||
Module Name:
|
||
|
||
jxbmp.c
|
||
|
||
Abstract:
|
||
|
||
This program outputs a BMP file to the screen.
|
||
|
||
Author:
|
||
|
||
David M. Robinson (davidro) 7-July-1992
|
||
|
||
Revision History:
|
||
|
||
--*/
|
||
|
||
#include "fwp.h"
|
||
#include "windef.h"
|
||
#include "wingdi.h"
|
||
#include "selfmap.h"
|
||
|
||
#define VIDEO_MEMORY ((PUCHAR)VIDEO_MEMORY_VIRTUAL_BASE)
|
||
|
||
//
|
||
// External defines.
|
||
//
|
||
|
||
extern ULONG FwBmpHeight;
|
||
extern ULONG FwBmpWidth;
|
||
extern UCHAR FwBmp[];
|
||
extern ULONG FwForegroundColor;
|
||
extern ULONG FwBackgroundColor;
|
||
extern ULONG DisplayWidth;
|
||
extern ULONG FrameSize;
|
||
|
||
|
||
|
||
VOID
|
||
FwOutputBitmap (
|
||
PULONG Destination,
|
||
ULONG Width,
|
||
ULONG Height,
|
||
PUCHAR Bitmap
|
||
)
|
||
|
||
/*++
|
||
|
||
Routine Description:
|
||
|
||
This routine displays a bitmap on the video screen with the current
|
||
color and video attributes.
|
||
|
||
Arguments:
|
||
|
||
Destination - The destination address (lower right corner) of the location
|
||
to display the bitmap.
|
||
|
||
Width - The width of the bitmap in pixels.
|
||
|
||
Height - The height of the bitmap in pixels.
|
||
|
||
Bitmap - A pointer to the bitmap.
|
||
|
||
Multiple - A scaling factor.
|
||
|
||
Return Value:
|
||
|
||
None.
|
||
|
||
--*/
|
||
|
||
{
|
||
ULONG I, J, K, L, M;
|
||
PUCHAR Pixel;
|
||
CHAR Color;
|
||
|
||
CHAR Character;
|
||
ULONG Count;
|
||
|
||
|
||
Pixel = (PUCHAR)(Destination) - Width;
|
||
Count = 0;
|
||
|
||
for ( I = 0 ; I < Height ; I++ ) {
|
||
for ( J = 0 ; J < Width ; J++ ) {
|
||
if (Count-- == 0) {
|
||
Count = (*Bitmap & 0x7f) - 1;
|
||
Color = (*Bitmap++ & 0x80) ? FwForegroundColor : FwBackgroundColor;
|
||
}
|
||
*Pixel++ = Color;
|
||
}
|
||
Pixel -= (DisplayWidth + Width);
|
||
}
|
||
|
||
return;
|
||
}
|
||
|
||
VOID
|
||
JxBmp(
|
||
VOID
|
||
)
|
||
/*++
|
||
|
||
Routine Description:
|
||
|
||
This routine reads a bitmap from the PROM and displays it on the screen.
|
||
|
||
Arguments:
|
||
|
||
None.
|
||
|
||
Return Value:
|
||
|
||
None.
|
||
|
||
--*/
|
||
|
||
{
|
||
PULONG Destination;
|
||
|
||
Destination = (PULONG)(VIDEO_MEMORY + FrameSize);
|
||
|
||
FwOutputBitmap(Destination, FwBmpWidth, FwBmpHeight, FwBmp);
|
||
|
||
}
|