021a - Grub4Dos fonts and graphics

The menu below is an example of what a plain grub4dos menu looks like.

The menu.lst is saved as a UTF.8 file in Notepad (not the normal ANSI format) and contains Russian and Chinese characters, but these do not display correctly as the fonts are not available in a normal menu.

 
 
 
 

Below we have the same menu, but we have loaded a special font file which allows us to display the Russian/Chinese characters as they appear in Notepad.

We have also used an 800×600 graphics mode, added a background and moved the menu entry positions.

Graphicsmode must be used for special fonts – they will not display in text mode.

 
 
 
 

The 800×600 bitmap used for the wallpaper in this example has a black bottom border and so the bottom of the menu is all black.

Here is the menu.lst file that was used for the above menu:

clear

debug off

# autonumber menu entries

write –bytes=2 0x8274 0x2001

set mode=graphicsmode -1 800 100:1000 24:32 > nul

set cmd=font /unifont.hex.gz

%mode%

%cmd%

splashimage /aurora24.bmp.gz > nul

# set the title text at the very top of the screen

set title= %mode% %cmd%

# set the colours we want to use

# Note: apart from highlighted text, any background colour is ignored as it will always be ‘transparent’ except for highlight setting

#0=black,1=blue, 2=green,3=cyan,4=red,5=magenta,6=brown,7=grey (add 8 for bright color – e.g. 15=white, 14=yellow, 13=pink,12=red,11=cyan,10=green, 9=bright blue, 8=grey)

#multiply by 16 to make the background blue (16×1), 32 to make the background green (16×2), 48 for bkgnd cyan (16×3), etc.

# normal=grey, highlight=white+magenta helptext=pink, heading=cyan standard=white boreder=red

color normal=0x07 highlight=0xf5 helptext=0x0D heading=0x0A standard=0x0F border=0x04

# display the heading and cover up grub4dos version text

write (md)0x220+1 !BAT\necho -n -P:0000 $[0133] %title% \0

initscript (md)0x220+1

# – MENU POSITION AND BORDER –

# wordspacing and linespacing normally set to 0, borderwidth=0 for no border, 1 for thin border, etc.

#/menusetting.gz u will restore max menu grub4dos default

set wdspace=0

set lnspace=0

set topstart=8

set rstart=7

set noitems=5

set menuw=54

set bdwidth=1

set tophelp=23

# place a 5 entry menu at extreme right of 800×600 splashimage bitmap, starting 8 lines down, 7 across

/menusetting.gz %wdspace% %lnspace% %bdwidth% %tophelp% %noitems% %topstart% %menuw% %rstart%

title Russian – понял что проблема с файлом меню\nThis will install any edition of Windows 32-bit to your hard disk

reboot

title Chinese reboot (重启)

reboot

title Chinese halt (关机)

halt

The files required can be downloaded here.

Easy2Boot contains a selection of 0x20-0x7E fonts.

 

THE FONT COMMAND

The font command without a parameter, loads the BIOS VGA ROM ASCII fonts for codes 0x20-0x7F.

You cannot load two fonts, one after the other, e.g. this does not load the roman.hex.gz font:

font /sans.hex.gz

# next line does NOT work!

font /roman.hex.gz

Instead, you have to use the font command to clear the last font and enable the loading of the second font…

font /sans.hex.gz

font

font /roman.hex.gz

location 0x1800820 will be 0 if a font was never previously loaded

read 0x1800820 && echo unifont loaded