[syslinux] Display borked when loading FONT

Ady ady-sf at hotmail.com
Sun May 26 20:14:46 PDT 2013


> On Sun, May 26, 2013 at 9:20 AM, Gene Cumm <gene.cumm at gmail.com> wrote:
> 
> > Confirmed in a VMware VM that OEM codepage 437 (OEM-437 OEM437 CP-437
> > CP437; its native OEM codepage) was utilized for text mode and VESA
> > mode display.
> >
> > --
> > -Gene
> 
> Although this will throw the DEFAULT missing error, it illustrates the
> point (using SAY, LABEL and MENU LABEL; I used <tab> to show the LABEL
> and vesamenu.c32 for the MENU LABEL).  I've gzipped it to prevent
> mangling.
> 
> --
> -Gene
> 

Resulting Observations (possibly obvious to some readers, but perhaps 
it helps someone else as future reference):

1_ When creating or editing a cfg or a message file, it is 
recommended for the text editor to use the same codepage as the font 
file that is expected to be used in Syslinux for such cfg or message 
file.
 By following this recommendation, the characters being displayed in 
the text editor will be the same as the ones displayed in Syslinux 
while using the desired font file.
 Example: if the message file is going to be displayed in Syslinux 
with a font file that uses CP737 (old DOS_Greek), then it is 
recommended to open, edit and save the specific message file with the 
text editor set to CP737.

2_ When no FONT directive is used, in most (if not all (?) ) cases 
the default codepage to display a Syslinux menu or a message file is 
CP437. To be able to display characters not included in the default 
language, the FONT directive is needed and it shall point to an 
adequate font file.

3_ When unexpected characters are displayed in the text editor, the 
user should double check which codepage is being used to open / 
display / save the specific file. When unexpected characters are 
displayed in Syslinux (in a menu or in a message file, or with the 
SAY directive), the user should double check which font file is being 
used in Syslinux (or the default language in BIOS (?) ).

4_ If the FONT directive points to a font file that uses a different 
codepage, then the _same_ exact message or menu can be displayed in 
Syslinux with completely differently characters.
 Example: The initial cfg file displays a menu and has no FONT 
directive. One entry uses the CONFIG directive so to load a different 
cfg file, which in turn includes the FONT directive pointing to a 
font file using a different codepage (for example, a "ter-7*" font 
file - part of the Terminus fonts - using Greek characters). Using 
the CONFIG directive again, we can display back the initial menu, 
this time with the new font already loaded. The displayed menu might 
be shown differently than before, even though the same exact cfg file 
is being used.

5_ The font file affects all displayed characters, including those 
being used by menu.c32 to display the menu itself (borders, scroll 
bar,...).

6_ Hopefully there will be a better / simpler method for Syslinux in 
the future 
(Unicode?).

Best Regards,
Ady.


More information about the Syslinux mailing list