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.

47 lines
2.5 KiB

  1. This file describes the nature of DBCS support in ntldr/setupldr.bin for x86.
  2. On non-x86 machines we do nothing for now. The firmware is in control of the video
  3. and thus the firmware is supposed to support displaying characters deemed necessary
  4. by the system designer.
  5. The x86 loaders operate using either standard 80x25 vga text mode or standard
  6. 640x480 graphics mode. In the latter case the loader display system paints
  7. characters to simulate a console-type environment. Text mode is the default.
  8. Early in initialization, the loader attempts to open a file called BOOTFONT.BIN
  9. on the root of the drive from which boot is occurring (ie, in the same place where
  10. it later expects to find ntdetect.com, boot.ini, etc). If that file is found and
  11. is deemed valid, the display subsystem switches to graphics mode and is thus able
  12. to display arbitrary glyphs. The font file gives such details as the dbcs lead byte
  13. ranges, and so support in the loader display system is not dependent on any
  14. particular codepage.
  15. Thus we achieve single-binary and the ability to fully localize ntldr and
  16. setupldr.bin for any locale.
  17. See boot\lib\i386\bootfont.h for the format of the bootfont.bin file.
  18. Note that Setup will install bootfont.bin. If this file becomes corrupt or the
  19. user deletes it, the ntldr will fall back to sbcs support via vga text mode.
  20. For this reason, it may be desirable to include English message resources
  21. (as well as the ones for the particular localization) in ntldr so at least
  22. the boot selection screens will be readable in English and not just display
  23. as garbage.
  24. Still to do some day, issues, problems, etc:
  25. - If non-x86 machines' firmware starts to support DBCS we should be able to
  26. extend support to these machines orthoganally since the x86 implementation
  27. is entirely 'hidden' in the ARC emulation layer. The only thing we would need
  28. is a mechanism to 'trigger' dbcs mode, which is performed by the presence of
  29. bootfont.bin on x86 machines.
  30. - The ARC console is driven by control sequences that are introduced with 0x9b.
  31. Unfortunately this is a valid lead byte char in several Far East code pages.
  32. In Japan this doesn't bite us because we don't actually use any characters that
  33. lead with 0x9b. The fix is to replace use of 0x9b with ESC[ (escape-left bracket)
  34. which is a synonym. However we don't know if all ARC firmware out there
  35. supports that as a synonym, so #ifdef _X86_ would probably be necessary
  36. (that would be ok since we are not enabling dbcs for non-x86 machines anyway).
  37. - tedm, 7/11/95, Tokyo
  38.