Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

110 lines
2.6 KiB

  1. /*++
  2. Copyright (c) 1995 Microsoft Corporation
  3. Module Name:
  4. bootfint.h
  5. Abstract:
  6. Header file describing the bootfont.bin file used to provide
  7. dbcs support during system or setup bootstrap.
  8. Author:
  9. tedm 11-July-1995
  10. Revision History:
  11. --*/
  12. //
  13. // Define maximum number of dbcs lead byte ranges we support.
  14. //
  15. #define MAX_DBCS_RANGE 5
  16. //
  17. // Define signature value.
  18. //
  19. #define BOOTFONTBIN_SIGNATURE 0x5465644d
  20. //
  21. // Define structure used as a header for the bootfont.bin file.
  22. //
  23. #pragma pack(1)
  24. typedef struct _BOOTFONTBIN_HEADER {
  25. //
  26. // Signature. Must be BOOTFONTBIN_SIGNATURE.
  27. //
  28. ULONG Signature;
  29. //
  30. // Language id of the language supported by this font.
  31. // This should match the language id of resources in msgs.xxx.
  32. //
  33. ULONG LanguageId;
  34. //
  35. // Number of sbcs characters and dbcs characters contained in the file.
  36. //
  37. unsigned NumSbcsChars;
  38. unsigned filler1;
  39. unsigned NumDbcsChars;
  40. unsigned filler2;
  41. //
  42. // Offsets within the file to the images.
  43. //
  44. ULONG SbcsOffset;
  45. ULONG DbcsOffset;
  46. //
  47. // Total sizes of the images.
  48. //
  49. ULONG SbcsEntriesTotalSize;
  50. ULONG DbcsEntriesTotalSize;
  51. //
  52. // Dbcs lead byte table. Must contain a pair of 0's to indicate the end.
  53. //
  54. UCHAR DbcsLeadTable[(MAX_DBCS_RANGE+1)*2];
  55. //
  56. // Height values for the font.
  57. // CharacterImageHeight is the height in scan lines/pixels of the
  58. // font image. Each character is drawn with additional 'padding'
  59. // lines on the top and bottom, whose sizes are also contained here.
  60. //
  61. UCHAR CharacterImageHeight;
  62. UCHAR CharacterTopPad;
  63. UCHAR CharacterBottomPad;
  64. //
  65. // Width values for the font. These values contain the width in pixels
  66. // of a single byte character and double byte character.
  67. //
  68. // NOTE: CURRENTLY THE SINGLE BYTE WIDTH *MUST* BE 8 AND THE DOUBLE BYTE
  69. // WIDTH *MUST* BE 16!!!
  70. //
  71. UCHAR CharacterImageSbcsWidth;
  72. UCHAR CharacterImageDbcsWidth;
  73. } BOOTFONTBIN_HEADER, *PBOOTFONTBIN_HEADER;
  74. #pragma pack()
  75. //
  76. // Images themselves follow.
  77. //
  78. // First there are SbcsCharacters entries for single-byte chars.
  79. // The first byte in each entry is the ascii char code. The next n bytes are
  80. // the image. n is dependent on the width and height of an sbcs char.
  81. //
  82. // Following these are the dbcs images. The first 2 bytes are the dbcs
  83. // character code (highbyte lowbyte) and the next n bytes are the image.
  84. // n is dependent on the width and height of a dbcs char.
  85. //
  86. // Important note: the characters must be sorted in ascending order!
  87. //
  88.