111 lines
2.6 KiB
C
111 lines
2.6 KiB
C
|
/*++
|
|||
|
|
|||
|
Copyright (c) 1995 Microsoft Corporation
|
|||
|
|
|||
|
Module Name:
|
|||
|
|
|||
|
bootfint.h
|
|||
|
|
|||
|
Abstract:
|
|||
|
|
|||
|
Header file describing the bootfont.bin file used to provide
|
|||
|
dbcs support during system or setup bootstrap.
|
|||
|
|
|||
|
Author:
|
|||
|
|
|||
|
tedm 11-July-1995
|
|||
|
|
|||
|
Revision History:
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
|
|||
|
//
|
|||
|
// Define maximum number of dbcs lead byte ranges we support.
|
|||
|
//
|
|||
|
#define MAX_DBCS_RANGE 5
|
|||
|
|
|||
|
//
|
|||
|
// Define signature value.
|
|||
|
//
|
|||
|
#define BOOTFONTBIN_SIGNATURE 0x5465644d
|
|||
|
|
|||
|
//
|
|||
|
// Define structure used as a header for the bootfont.bin file.
|
|||
|
//
|
|||
|
#pragma pack(1)
|
|||
|
typedef struct _BOOTFONTBIN_HEADER {
|
|||
|
|
|||
|
//
|
|||
|
// Signature. Must be BOOTFONTBIN_SIGNATURE.
|
|||
|
//
|
|||
|
ULONG Signature;
|
|||
|
|
|||
|
//
|
|||
|
// Language id of the language supported by this font.
|
|||
|
// This should match the language id of resources in msgs.xxx.
|
|||
|
//
|
|||
|
ULONG LanguageId;
|
|||
|
|
|||
|
//
|
|||
|
// Number of sbcs characters and dbcs characters contained in the file.
|
|||
|
//
|
|||
|
unsigned NumSbcsChars;
|
|||
|
unsigned filler1;
|
|||
|
unsigned NumDbcsChars;
|
|||
|
unsigned filler2;
|
|||
|
|
|||
|
//
|
|||
|
// Offsets within the file to the images.
|
|||
|
//
|
|||
|
ULONG SbcsOffset;
|
|||
|
ULONG DbcsOffset;
|
|||
|
|
|||
|
//
|
|||
|
// Total sizes of the images.
|
|||
|
//
|
|||
|
ULONG SbcsEntriesTotalSize;
|
|||
|
ULONG DbcsEntriesTotalSize;
|
|||
|
|
|||
|
//
|
|||
|
// Dbcs lead byte table. Must contain a pair of 0's to indicate the end.
|
|||
|
//
|
|||
|
UCHAR DbcsLeadTable[(MAX_DBCS_RANGE+1)*2];
|
|||
|
|
|||
|
//
|
|||
|
// Height values for the font.
|
|||
|
// CharacterImageHeight is the height in scan lines/pixels of the
|
|||
|
// font image. Each character is drawn with additional 'padding'
|
|||
|
// lines on the top and bottom, whose sizes are also contained here.
|
|||
|
//
|
|||
|
UCHAR CharacterImageHeight;
|
|||
|
UCHAR CharacterTopPad;
|
|||
|
UCHAR CharacterBottomPad;
|
|||
|
|
|||
|
//
|
|||
|
// Width values for the font. These values contain the width in pixels
|
|||
|
// of a single byte character and double byte character.
|
|||
|
//
|
|||
|
// NOTE: CURRENTLY THE SINGLE BYTE WIDTH *MUST* BE 8 AND THE DOUBLE BYTE
|
|||
|
// WIDTH *MUST* BE 16!!!
|
|||
|
//
|
|||
|
UCHAR CharacterImageSbcsWidth;
|
|||
|
UCHAR CharacterImageDbcsWidth;
|
|||
|
|
|||
|
} BOOTFONTBIN_HEADER, *PBOOTFONTBIN_HEADER;
|
|||
|
#pragma pack()
|
|||
|
|
|||
|
//
|
|||
|
// Images themselves follow.
|
|||
|
//
|
|||
|
// First there are SbcsCharacters entries for single-byte chars.
|
|||
|
// The first byte in each entry is the ascii char code. The next n bytes are
|
|||
|
// the image. n is dependent on the width and height of an sbcs char.
|
|||
|
//
|
|||
|
// Following these are the dbcs images. The first 2 bytes are the dbcs
|
|||
|
// character code (highbyte lowbyte) and the next n bytes are the image.
|
|||
|
// n is dependent on the width and height of a dbcs char.
|
|||
|
//
|
|||
|
// Important note: the characters must be sorted in ascending order!
|
|||
|
//
|
|||
|
|