Leaked source code of windows server 2003
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.

106 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. typedef struct _BOOTFONTBIN_HEADER {
  24. //
  25. // Signature. Must be BOOTFONTBIN_SIGNATURE.
  26. //
  27. ULONG Signature;
  28. //
  29. // Language id of the language supported by this font.
  30. // This should match the language id of resources in msgs.xxx.
  31. //
  32. ULONG LanguageId;
  33. //
  34. // Number of sbcs characters and dbcs characters contained in the file.
  35. //
  36. unsigned NumSbcsChars;
  37. unsigned NumDbcsChars;
  38. //
  39. // Offsets within the file to the images.
  40. //
  41. unsigned SbcsOffset;
  42. unsigned DbcsOffset;
  43. //
  44. // Total sizes of the images.
  45. //
  46. unsigned SbcsEntriesTotalSize;
  47. unsigned DbcsEntriesTotalSize;
  48. //
  49. // Dbcs lead byte table. Must contain a pair of 0's to indicate the end.
  50. //
  51. UCHAR DbcsLeadTable[(MAX_DBCS_RANGE+1)*2];
  52. //
  53. // Height values for the font.
  54. // CharacterImageHeight is the height in scan lines/pixels of the
  55. // font image. Each character is drawn with additional 'padding'
  56. // lines on the top and bottom, whose sizes are also contained here.
  57. //
  58. UCHAR CharacterImageHeight;
  59. UCHAR CharacterTopPad;
  60. UCHAR CharacterBottomPad;
  61. //
  62. // Width values for the font. These values contain the width in pixels
  63. // of a single byte character and double byte character.
  64. //
  65. // NOTE: CURRENTLY THE SINGLE BYTE WIDTH *MUST* BE 8 AND THE DOUBLE BYTE
  66. // WIDTH *MUST* BE 16!!!
  67. //
  68. UCHAR CharacterImageSbcsWidth;
  69. UCHAR CharacterImageDbcsWidth;
  70. } BOOTFONTBIN_HEADER, *PBOOTFONTBIN_HEADER;
  71. //
  72. // Images themselves follow.
  73. //
  74. // First there are SbcsCharacters entries for single-byte chars.
  75. // The first byte in each entry is the ascii char code. The next n bytes are
  76. // the image. n is dependent on the width and height of an sbcs char.
  77. //
  78. // Following these are the dbcs images. The first 2 bytes are the dbcs
  79. // character code (highbyte lowbyte) and the next n bytes are the image.
  80. // n is dependent on the width and height of a dbcs char.
  81. //
  82. // Important note: the characters must be sorted in ascending order!
  83. //
  84.