- Add a codepage 850 font imported from DragonFlyBSD / FreeBSD (original URL is http://opengrok.creo.hu/dragonfly/xref/src/share/syscons/fonts/cp850-8x8.fnt)

- Change the german translation to use umlauts
- Pass a codepage to blue.sys now, not a language ID. According to the comments, this is the right way.

TODO for the translators: Change the other codepage 850 languages to use the new available latin characters if needed.

svn path=/trunk/; revision=31914
This commit is contained in:
Colin Finck 2008-01-21 13:33:52 +00:00
parent 6d369c1393
commit 8d4ed7fa0a
9 changed files with 396 additions and 125 deletions

View file

@ -520,13 +520,4 @@ CONSOLE_PrintTextXYN(
}
}
VOID
CONSOLE_SetFont(
IN ULONG LangId)
{
// It should look up what codepage should be used
// but for now we just pass the lang id there
SetConsoleOutputCP((UINT)LangId);
}
/* EOF */

View file

@ -93,10 +93,6 @@ CONSOLE_PrintTextXYN(
IN SHORT len,
IN LPCSTR fmt, ...);
VOID
CONSOLE_SetFont(
IN ULONG LangId);
VOID
CONSOLE_SetCursorType(
IN BOOL bInsert,

View file

@ -597,8 +597,6 @@ UpdateKBLayout(VOID)
static PAGE_NUMBER
LanguagePage(PINPUT_RECORD Ir)
{
DWORD LangId;
/* Initialize the computer settings list */
if (LanguageList == NULL)
{
@ -657,8 +655,7 @@ LanguagePage(PINPUT_RECORD Ir)
}
// Load the font
LangId = wcstoul(SelectedLanguageId, NULL, 16);
CONSOLE_SetFont(LangId);
SetConsoleCodePage();
return INTRO_PAGE;
}

View file

@ -18,19 +18,19 @@ static MUI_ENTRY deDELanguagePageEntries[] =
{
8,
10,
"\x07 Bitte waehlen Sie die Sprache, die Sie waehrend des Setups verwenden wollen.",
"\x07 Bitte w„hlen Sie die Sprache, die Sie w„hrend des Setups verwenden wollen.",
TEXT_NORMAL
},
{
8,
11,
" Dann druecken Sie ENTER.",
" Dann dr<EFBFBD>cken Sie ENTER.",
TEXT_NORMAL
},
{
8,
13,
"\x07 Diese Sprache wird spaeter als Standardsprache im System verwendet.",
"\x07 Diese Sprache wird spter als Standardsprache im System verwendet.",
TEXT_NORMAL
},
{
@ -76,31 +76,31 @@ static MUI_ENTRY deDEWelcomePageEntries[] =
{
8,
15,
"\x07 Druecken Sie ENTER, um ReactOS zu installieren.",
"\x07 Dr<EFBFBD>cken Sie ENTER, um ReactOS zu installieren.",
TEXT_NORMAL
},
{
8,
17,
"\x07 Druecken Sie R, um ReactOS zu reparieren.",
"\x07 Dr<EFBFBD>cken Sie R, um ReactOS zu reparieren.",
TEXT_NORMAL
},
{
8,
19,
"\x07 Druecken Sie L, um die Lizenzabkommen von ReactOS zu lesen.",
"\x07 Dr<EFBFBD>cken Sie L, um die Lizenzabkommen von ReactOS zu lesen.",
TEXT_NORMAL
},
{
8,
21,
"\x07 Druecken Sie F3, um das Setup zu beenden.",
"\x07 Dr<EFBFBD>cken Sie F3, um das Setup zu beenden.",
TEXT_NORMAL
},
{
6,
23,
"Fuer weitere Informationen, besuchen Sie bitte:",
"F<EFBFBD>r weitere Informationen, besuchen Sie bitte:",
TEXT_NORMAL
},
{
@ -140,31 +140,31 @@ static MUI_ENTRY deDEIntroPageEntries[] =
{
6,
8,
"Das ReactOS Setup ist noch in einer fruehen Entwicklungsphase. Es unter-",
"Das ReactOS Setup ist noch in einer fr<EFBFBD>hen Entwicklungsphase. Es unter-",
TEXT_NORMAL
},
{
6,
9,
"stuetzt noch nicht alle Funktionen eines vollstaendig nutzbaren Setups.",
"st<EFBFBD>tzt noch nicht alle Funktionen eines vollst„ndig nutzbaren Setups.",
TEXT_NORMAL
},
{
6,
12,
"Es gibt folgende Beschraenkungen:",
"Es gibt folgende Beschrnkungen:",
TEXT_NORMAL
},
{
8,
13,
"- Setup kann nur eine primaere Partition auf einer HDD verwalten.",
"- Setup kann nur eine primre Partition auf einer HDD verwalten.",
TEXT_NORMAL
},
{
8,
14,
"- Setup kann keine primaere Partition von einer HDD loeschen",
"- Setup kann keine prim„re Partition von einer HDD l”schen",
TEXT_NORMAL
},
{
@ -176,7 +176,7 @@ static MUI_ENTRY deDEIntroPageEntries[] =
{
8,
16,
"- Setup kann die erste erweiterte Partition nicht von der HDD loeschen",
"- Setup kann die erste erweiterte Partition nicht von der HDD lschen",
TEXT_NORMAL
},
{
@ -188,25 +188,25 @@ static MUI_ENTRY deDEIntroPageEntries[] =
{
8,
18,
"- Setup unterstuetzt nur FAT Dateisysteme.",
"- Setup unterst<EFBFBD>tzt nur FAT Dateisysteme.",
TEXT_NORMAL
},
{
8,
19,
"- Dateisystemueberpruefung ist noch nicht implementiert.",
"- Dateisystem<EFBFBD>berpr<EFBFBD>fung ist noch nicht implementiert.",
TEXT_NORMAL
},
{
8,
23,
"\x07 Druecken Sie ENTER, um ReactOS zu installieren.",
"\x07 Dr<EFBFBD>cken Sie ENTER, um ReactOS zu installieren.",
TEXT_NORMAL
},
{
8,
25,
"\x07 Druecken Sie F3, um das Setup zu beenden.",
"\x07 Dr<EFBFBD>cken Sie F3, um das Setup zu beenden.",
TEXT_NORMAL
},
{
@ -336,7 +336,7 @@ static MUI_ENTRY deDELicensePageEntries[] =
{
0,
0,
" ENTER = Zurueck",
" ENTER = Zur<EFBFBD>ck",
TEXT_STATUS
},
{
@ -358,7 +358,7 @@ static MUI_ENTRY deDEDevicePageEntries[] =
{
6,
8,
"Die untere Liste zeigt die derzeitigen Geraeteeinstellungen.",
"Die untere Liste zeigt die derzeitigen Gerteeinstellungen.",
TEXT_NORMAL
},
{
@ -393,19 +393,19 @@ static MUI_ENTRY deDEDevicePageEntries[] =
},
{
25,
16, "Diese Geraeteeinstellungen akzeptieren",
16, "Diese Gerteeinstellungen akzeptieren",
TEXT_NORMAL
},
{
6,
19,
"Sie koennen die Einstellungen durch die Pfeiltasten auswaehlen.",
"Sie k”nnen die Einstellungen durch die Pfeiltasten ausw„hlen.",
TEXT_NORMAL
},
{
6,
20,
"Dann druecken Sie die Eingabetaste, um eine Einstellung abzuaendern.",
"Dann dr<EFBFBD>cken Sie die Eingabetaste, um eine Einstellung abzu„ndern.",
TEXT_NORMAL
},
{
@ -417,13 +417,13 @@ static MUI_ENTRY deDEDevicePageEntries[] =
{
6,
23,
"Wenn alle Einstellungen korrekt sind, waehlen Sie \"Diese Geraete-",
"Wenn alle Einstellungen korrekt sind, w„hlen Sie \"Diese Ger„te-",
TEXT_NORMAL
},
{
6,
24,
"einstellungen akzeptieren\" und druecken danach die Eingabetaste.",
"einstellungen akzeptieren\" und dr<EFBFBD>cken danach die Eingabetaste.",
TEXT_NORMAL
},
{
@ -451,13 +451,13 @@ static MUI_ENTRY deDERepairPageEntries[] =
{
6,
8,
"Das ReactOS Setup ist noch in einer fruehen Entwicklungsphase. Es unter-",
"Das ReactOS Setup ist noch in einer fr<EFBFBD>hen Entwicklungsphase. Es unter-",
TEXT_NORMAL
},
{
6,
9,
"stuetzt noch nicht alle Funktionen eines vollstaendig nutzbaren Setups.",
"st<EFBFBD>tzt noch nicht alle Funktionen eines vollst„ndig nutzbaren Setups.",
TEXT_NORMAL
},
{
@ -469,25 +469,25 @@ static MUI_ENTRY deDERepairPageEntries[] =
{
8,
15,
"\x07 Druecken Sie U, um ReactOS zu aktualisieren.",
"\x07 Dr<EFBFBD>cken Sie U, um ReactOS zu aktualisieren.",
TEXT_NORMAL
},
{
8,
17,
"\x07 Druecken Sie R, fuer die Wiederherstellungskonsole.",
"\x07 Dr<EFBFBD>cken Sie R, f<>r die Wiederherstellungskonsole.",
TEXT_NORMAL
},
{
8,
19,
"\x07 Druecken Sie ESC, um zur Hauptseite zurueckzukehren.",
"\x07 Dr<EFBFBD>cken Sie ESC, um zur Hauptseite zur<75>ckzukehren.",
TEXT_NORMAL
},
{
8,
21,
"\x07 Druecken Sie ENTER, um den Computer neuzustarten.",
"\x07 Dr<EFBFBD>cken Sie ENTER, um den Computer neuzustarten.",
TEXT_NORMAL
},
{
@ -514,31 +514,31 @@ static MUI_ENTRY deDEComputerPageEntries[] =
{
6,
8,
"Sie wollen den Computertyp aendern, der installiert wird.",
"Sie wollen den Computertyp ndern, der installiert wird.",
TEXT_NORMAL
},
{
8,
10,
"\x07 Druecken Sie die HOCH- oder RUNTER-Taste, um den gewuenschten",
"\x07 Dr<EFBFBD>cken Sie die HOCH- oder RUNTER-Taste, um den gew<65>nschten",
TEXT_NORMAL
},
{
8,
11,
" Typ zu waehlen. Dann druecken Sie ENTER.",
" Typ zu w„hlen. Dann dr<64>cken Sie ENTER.",
TEXT_NORMAL
},
{
8,
13,
"\x07 Druecken Sie ESC, um zur vorherigen Seite zurueckzukehren,",
"\x07 Dr<EFBFBD>cken Sie ESC, um zur vorherigen Seite zur<75>ckzukehren,",
TEXT_NORMAL
},
{
8,
14,
" ohne den Computertyp zu aendern.",
" ohne den Computertyp zu ndern.",
TEXT_NORMAL
},
{
@ -606,7 +606,7 @@ static MUI_ENTRY deDEQuitPageEntries[] =
{
10,
6,
"ReactOS wurde nicht vollstaendig installiert",
"ReactOS wurde nicht vollstndig installiert",
TEXT_NORMAL
},
{
@ -624,7 +624,7 @@ static MUI_ENTRY deDEQuitPageEntries[] =
{
10,
11,
"Druecken Sie ENTER, um den Computer neuzustarten.",
"Dr<EFBFBD>cken Sie ENTER, um den Computer neuzustarten.",
TEXT_NORMAL
},
{
@ -652,30 +652,30 @@ static MUI_ENTRY deDEDisplayPageEntries[] =
{
6,
8,
"Sie wollen den Bildschirmtyp aendern, der installiert wird.",
"Sie wollen den Bildschirmtyp ndern, der installiert wird.",
TEXT_NORMAL
},
{ 8,
10,
"\x07 Druecken Sie die HOCH- oder RUNTER-Taste, um den gewuenschten",
"\x07 Dr<EFBFBD>cken Sie die HOCH- oder RUNTER-Taste, um den gew<65>nschten",
TEXT_NORMAL
},
{
8,
11,
" Typ zu waehlen. Dann druecken Sie ENTER.",
" Typ zu w„hlen. Dann dr<64>cken Sie ENTER.",
TEXT_NORMAL
},
{
8,
13,
"\x07 Druecken Sie ESC, um zur vorherigen Seite zurueckzukehren, ohne",
"\x07 Dr<EFBFBD>cken Sie ESC, um zur vorherigen Seite zur<75>ckzukehren, ohne",
TEXT_NORMAL
},
{
8,
14,
" den Bildschirmtyp zu aendern.",
" den Bildschirmtyp zu ndern.",
TEXT_NORMAL
},
{
@ -721,7 +721,7 @@ static MUI_ENTRY deDESuccessPageEntries[] =
{
10,
11,
"Druecken Sie ENTER, um den Computer neuzustarten.",
"Dr<EFBFBD>cken Sie ENTER, um den Computer neuzustarten.",
TEXT_NORMAL
},
{
@ -767,7 +767,7 @@ static MUI_ENTRY deDEBootPageEntries[] =
{
6,
14,
"druecken Sie ENTER.",
"dr<EFBFBD>cken Sie ENTER.",
TEXT_NORMAL,
},
{
@ -802,31 +802,31 @@ static MUI_ENTRY deDESelectPartitionEntries[] =
{
6,
9,
"Speicherplatz fuer neue Partitionen.",
"Speicherplatz f<EFBFBD>r neue Partitionen.",
TEXT_NORMAL
},
{
8,
11,
"\x07 Druecken Sie die Pfeiltasten, um eine Partition auszuwaehlen.",
"\x07 Dr<EFBFBD>cken Sie die Pfeiltasten, um eine Partition auszuw„hlen.",
TEXT_NORMAL
},
{
8,
13,
"\x07 Druecken Sie die Eingabetaste, um die Auswahl zu bestaetigen.",
"\x07 Dr<EFBFBD>cken Sie die Eingabetaste, um die Auswahl zu best„tigen.",
TEXT_NORMAL
},
{
8,
15,
"\x07 Druecken Sie C, um eine neue Partition zu erstellen.",
"\x07 Dr<EFBFBD>cken Sie C, um eine neue Partition zu erstellen.",
TEXT_NORMAL
},
{
8,
17,
"\x07 Druecken Sie D, um eine vorhandene Partition zu loeschen.",
"\x07 Dr<EFBFBD>cken Sie D, um eine vorhandene Partition zu l”schen.",
TEXT_NORMAL
},
{
@ -860,13 +860,13 @@ static MUI_ENTRY deDEFormatPartitionEntries[] =
{
6,
10,
"Setup wird nun die gewuenschte Partition formatieren.",
"Setup wird nun die gew<EFBFBD>nschte Partition formatieren.",
TEXT_NORMAL
},
{
6,
11,
"Druecken Sie die Eingabetaste, um fortzufahren.",
"Dr<EFBFBD>cken Sie die Eingabetaste, um fortzufahren.",
TEXT_NORMAL
},
{
@ -894,25 +894,25 @@ static MUI_ENTRY deDEInstallDirectoryEntries[] =
{
6,
8,
"Setup installiert die ReactOS Installationsdateien in die ausgewaehlte",
"Setup installiert die ReactOS Installationsdateien in die ausgewhlte",
TEXT_NORMAL
},
{
6,
9,
"Partition. Waehlen Sie ein Installationsverzeichnis fuer ReactOS:",
"Partition. W„hlen Sie ein Installationsverzeichnis f<>r ReactOS:",
TEXT_NORMAL
},
{
6,
14,
"Um den Vorschlag zu aendern druecken sie die 'Entf' Taste um",
"Um den Vorschlag zu „ndern dr<64>cken sie die 'Entf' Taste um",
TEXT_NORMAL
},
{
6,
15,
"Zeichen zu loeschen und gegeben sie dann den Namen des Verzeichnis ein",
"Zeichen zu lschen und gegeben sie dann den Namen des Verzeichnis ein",
TEXT_NORMAL
},
{
@ -940,7 +940,7 @@ static MUI_ENTRY deDEFileCopyEntries[] =
{
11,
12,
"Bitte warten Sie waehrend ReactOS Setup die ReactOS Dateien",
"Bitte warten Sie whrend ReactOS Setup die ReactOS Dateien",
TEXT_NORMAL
},
{
@ -1026,31 +1026,31 @@ static MUI_ENTRY deDEKeyboardSettingsEntries[] =
{
6,
8,
"Sie wollen den Tastaturtyp aendern, der installiert wird.",
"Sie wollen den Tastaturtyp ndern, der installiert wird.",
TEXT_NORMAL
},
{
8,
10,
"\x07 Druecken Sie die HOCH- oder RUNTER-Taste, um den gewuenschten",
"\x07 Dr<EFBFBD>cken Sie die HOCH- oder RUNTER-Taste, um den gew<65>nschten",
TEXT_NORMAL
},
{
8,
11,
" Typ zu waehlen. Dann druecken Sie ENTER.",
" Typ zu w„hlen. Dann dr<64>cken Sie ENTER.",
TEXT_NORMAL
},
{
8,
13,
"\x07 Druecken Sie ESC, um zur vorherigen Seite zurueckzukehren,",
"\x07 Dr<EFBFBD>cken Sie ESC, um zur vorherigen Seite zur<75>ckzukehren,",
TEXT_NORMAL
},
{
8,
14,
" ohne den Tastaturtyp zu aendern.",
" ohne den Tastaturtyp zu ndern.",
TEXT_NORMAL
},
{
@ -1078,31 +1078,31 @@ static MUI_ENTRY deDELayoutSettingsEntries[] =
{
6,
8,
"Sie wollen das Tastaturlayout aendern, der installiert wird.",
"Sie wollen das Tastaturlayout ndern, der installiert wird.",
TEXT_NORMAL
},
{
8,
10,
"\x07 Druecken Sie die HOCH- oder RUNTER-Taste, um den gewuenschten",
"\x07 Dr<EFBFBD>cken Sie die HOCH- oder RUNTER-Taste, um den gew<65>nschten",
TEXT_NORMAL
},
{
8,
11,
" Typ zu waehlen. Dann druecken Sie ENTER.",
" Typ zu w„hlen. Dann dr<64>cken Sie ENTER.",
TEXT_NORMAL
},
{
8,
13,
"\x07 Druecken Sie ESC, um zur vorherigen Seite zurueckzukehren,",
"\x07 Dr<EFBFBD>cken Sie ESC, um zur vorherigen Seite zur<75>ckzukehren,",
TEXT_NORMAL
},
{
8,
14,
" ohne das Tastaturlayout zu aendern.",
" ohne das Tastaturlayout zu ndern.",
TEXT_NORMAL
},
{
@ -1131,7 +1131,7 @@ static MUI_ENTRY deDEPrepareCopyEntries[] =
{
6,
8,
"Setup bereitet ihren Computer fuer die Installation vor.",
"Setup bereitet ihren Computer f<EFBFBD>r die Installation vor.",
TEXT_NORMAL
},
{
@ -1160,25 +1160,25 @@ static MUI_ENTRY deDESelectFSEntries[] =
{
6,
17,
"Waehlen Sie ein Dateisystem von der folgenden Liste.",
"Whlen Sie ein Dateisystem von der folgenden Liste.",
0
},
{
8,
19,
"\x07 Druecken Sie die Pfeiltasten, um das Dateisystem zu aendern.",
"\x07 Dr<EFBFBD>cken Sie die Pfeiltasten, um das Dateisystem zu „ndern.",
0
},
{
8,
21,
"\x07 Druecken Sie die Eingabetaste, um die Partition zu formatieren.",
"\x07 Dr<EFBFBD>cken Sie die Eingabetaste, um die Partition zu formatieren.",
0
},
{
8,
23,
"\x07 Druecken Sie ESC, um eine andere Partition auszuwaehlen.",
"\x07 Dr<EFBFBD>cken Sie ESC, um eine andere Partition auszuw„hlen.",
0
},
{
@ -1207,19 +1207,19 @@ static MUI_ENTRY deDEDeletePartitionEntries[] =
{
6,
8,
"Sie haben sich entschieden diese Partition zu loeschen",
"Sie haben sich entschieden diese Partition zu lschen",
TEXT_NORMAL
},
{
8,
18,
"\x07 Druecken Sie D, um die Partition zu loeschen.",
"\x07 Dr<EFBFBD>cken Sie D, um die Partition zu l”schen.",
TEXT_NORMAL
},
{
11,
19,
"Warnung: Alle Daten auf dieser Partition werden geloescht!",
"Warnung: Alle Daten auf dieser Partition werden gelscht!",
TEXT_NORMAL
},
{
@ -1231,7 +1231,7 @@ static MUI_ENTRY deDEDeletePartitionEntries[] =
{
0,
0,
" D = Loesche Partition ESC = Abbrechen F3 = Beenden",
" D = Lsche Partition ESC = Abbrechen F3 = Beenden",
TEXT_STATUS
},
{
@ -1275,12 +1275,12 @@ MUI_ERROR deDEErrorEntries[] =
{
{
//ERROR_NOT_INSTALLED
"ReactOS ist nicht vollstaendig auf Ihrem System installiert.\n"
"Wenn Sie das Setup jetzt beenden, muessen Sie das\n"
"ReactOS ist nicht vollstndig auf Ihrem System installiert.\n"
"Wenn Sie das Setup jetzt beenden, m<EFBFBD>ssen Sie das\n"
"Setup erneut starten, um ROS zu installieren.\n"
"\n"
" \x07 Druecken Sie ENTER um das Setup Fortzusetzen.\n"
" \x07 Druecken Sie F3 um das Setup zu beenden.",
" \x07 Dr<EFBFBD>cken Sie ENTER um das Setup Fortzusetzen.\n"
" \x07 Dr<EFBFBD>cken Sie F3 um das Setup zu beenden.",
"F3 = Beenden ENTER = Fortsetzen"
},
{
@ -1305,7 +1305,7 @@ MUI_ERROR deDEErrorEntries[] =
},
{
//ERROR_SIGNATURE_TXTSETUPSIF,
"Setup fand eine ungueltige Signatur in TXTSETUP.SIF.\n",
"Setup fand eine ung<EFBFBD>ltige Signatur in TXTSETUP.SIF.\n",
"ENTER = Computer neustarten"
},
{
@ -1341,27 +1341,27 @@ MUI_ERROR deDEErrorEntries[] =
{
//ERROR_WARN_PARTITION,
"Setup hat mindestens eine Festplatte mit einer inkompatiblen Partitionstabelle\n"
"welche nicht richtig verwendet werden koennen!\n"
"welche nicht richtig verwendet werden knnen!\n"
"\n"
"Partitionen zu erstellen/loeschen kann die Partitionstabelle zerstoeren.\n"
"Partitionen zu erstellen/l”schen kann die Partitionstabelle zerst”ren.\n"
"\n"
" \x07 Druecken Sie F3, um das Setup zu beenden."
" \x07 Druecken Sie ENTER, um das Setup Fortzusetzen.",
" \x07 Dr<EFBFBD>cken Sie F3, um das Setup zu beenden."
" \x07 Dr<EFBFBD>cken Sie ENTER, um das Setup Fortzusetzen.",
"F3 = Beenden ENTER = Fortsetzen"
},
{
//ERROR_NEW_PARTITION,
"Sie koennen keine neue Partition in einer bereits\n"
"Sie knnen keine neue Partition in einer bereits\n"
"vohandenen Partition erstellen!\n"
"\n"
" * * Eine beliebige Taste zum Fortsetzen druecken.",
" * * Eine beliebige Taste zum Fortsetzen dr<EFBFBD>cken.",
NULL
},
{
//ERROR_DELETE_SPACE,
"Sie koennen unpartitionieren Speicher nicht loeschen!\n"
"Sie k”nnen unpartitionieren Speicher nicht l”schen!\n"
"\n"
" * Eine beliebige Taste zum Fortsetzen druecken.",
" * Eine beliebige Taste zum Fortsetzen dr<EFBFBD>cken.",
NULL
},
{
@ -1406,7 +1406,7 @@ MUI_ERROR deDEErrorEntries[] =
},
{
//ERROR_INVALID_CABINET_INF,
"Cabinet hat keine gueltige .inf Datei.\n",
"Cabinet hat keine g<EFBFBD>ltige .inf Datei.\n",
"ENTER = Computer neustarten"
},
{
@ -1416,7 +1416,7 @@ MUI_ERROR deDEErrorEntries[] =
},
{
//ERROR_CABINET_SCRIPT,
"Cabinet enthält kein Setup Skript.\n",
"Cabinet enthlt kein Setup Skript.\n",
"ENTER = Computer neustarten"
},
{
@ -1459,7 +1459,7 @@ MUI_ERROR deDEErrorEntries[] =
},
{
//ERROR_ADDING_CODEPAGE,
"Setup konnte den CodePage-Eintrag nicht hinzufuegen.\n"
"Setup konnte den CodePage-Eintrag nicht hinzuf<EFBFBD>gen.\n"
"ENTER = Computer neustarten"
},
{

View file

@ -568,4 +568,24 @@ AddCodePage(VOID)
return FALSE;
}
VOID
SetConsoleCodePage(VOID)
{
ULONG lngIndex = 0;
UINT wCodePage;
do
{
if (_wcsicmp(LanguageList[lngIndex].LanguageID , SelectedLanguageId) == 0)
{
wCodePage = (UINT) wcstoul(LanguageList[lngIndex].OEMCPage, NULL, 10);
SetConsoleOutputCP(wCodePage);
return;
}
lngIndex++;
}
while (LanguageList[lngIndex].MuiPages != NULL);
}
/* EOF */

View file

@ -56,5 +56,7 @@ MUIDefaultKeyboardLayout(VOID);
BOOLEAN
AddCodePage(VOID);
VOID
SetConsoleCodePage(VOID);
#endif

View file

@ -726,15 +726,10 @@ ScrIoControl(PDEVICE_OBJECT DeviceObject,
case IOCTL_CONSOLE_LOADFONT:
{
ULONG LangId = (ULONG)*(PULONG)Irp->AssociatedIrp.SystemBuffer;
UINT CodePage = (UINT)*(PULONG)Irp->AssociatedIrp.SystemBuffer;
// Upload the cyrillic font into the fontgenerator, if needed
if (LangId == MAKELANGID(LANG_BULGARIAN, SUBLANG_DEFAULT) ||
LangId == MAKELANGID(LANG_RUSSIAN, SUBLANG_DEFAULT) ||
LangId == MAKELANGID(LANG_UKRAINIAN, SUBLANG_DEFAULT))
{
ScrLoadFontTable();
}
// Upload a font for the codepage if needed
ScrLoadFontTable(CodePage);
Irp->IoStatus.Information = 0;
Status = STATUS_SUCCESS;

View file

@ -58,4 +58,4 @@
#define PELINDEX (PUCHAR)0x3c8
#define PELDATA (PUCHAR)0x3c9
VOID ScrLoadFontTable();
void ScrLoadFontTable(UINT CodePage);

View file

@ -4,6 +4,7 @@
* FILE: drivers/setup/blue/font.c
* PURPOSE: Loading specific fonts into VGA
* PROGRAMMERS: Aleksey Bragin (aleksey@reactos.org)
* Colin Finck (mail@colinfinck.de)
*/
/* INCLUDES ***************************************************************/
@ -16,17 +17,19 @@
VOID OpenBitPlane();
VOID CloseBitPlane();
VOID LoadFont(PBYTE Bitplane);
VOID LoadFont(PBYTE Bitplane, PUCHAR FontBitfield);
static UCHAR font8x8[2048];
static UCHAR Cp850Font[2048];
static UCHAR Cp866Font[2048];
/* FUNCTIONS ****************************************************************/
VOID
ScrLoadFontTable()
ScrLoadFontTable(UINT CodePage)
{
PHYSICAL_ADDRESS BaseAddress;
PBYTE Bitplane;
PUCHAR FontBitfield = NULL;
/* open bit plane for font table access */
OpenBitPlane();
@ -35,7 +38,14 @@ ScrLoadFontTable()
BaseAddress.QuadPart = BITPLANE_BASE;
Bitplane = (PBYTE)MmMapIoSpace (BaseAddress, 0xFFFF, MmNonCached);
LoadFont(Bitplane);
switch(CodePage)
{
case 850: FontBitfield = Cp850Font; break;
case 866: FontBitfield = Cp866Font; break;
}
if(FontBitfield)
LoadFont(Bitplane, FontBitfield);
MmUnmapIoSpace(Bitplane, 0xFFFF);
@ -89,7 +99,7 @@ CloseBitPlane()
}
VOID
LoadFont(PBYTE Bitplane)
LoadFont(PBYTE Bitplane, PUCHAR FontBitfield)
{
UINT i,j;
@ -97,7 +107,7 @@ LoadFont(PBYTE Bitplane)
{
for (j=0; j<8; j++)
{
*Bitplane = font8x8[i*8+j];
*Bitplane = FontBitfield[i*8+j];
Bitplane++;
}
@ -110,9 +120,269 @@ LoadFont(PBYTE Bitplane)
}
}
/* This font has been imported from DragonFlyBSD / FreeBSD
Original URL is: http://opengrok.creo.hu/dragonfly/xref/src/share/syscons/fonts/ (2008/01/21) */
static UCHAR Cp850Font[2048] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x7E,0x81,0xA5,0x81,0xBD,0x99,0x81,0x7E,
0x7E,0xFF,0xDB,0xFF,0xC3,0xE7,0xFF,0x7E,
0x6C,0xFE,0xFE,0xFE,0x7C,0x38,0x10,0x00,
0x10,0x38,0x7C,0xFE,0x7C,0x38,0x10,0x00,
0x38,0x7C,0x38,0xFE,0xFE,0xD6,0x10,0x38,
0x10,0x38,0x7C,0xFE,0xFE,0x7C,0x10,0x38,
0x00,0x00,0x18,0x3C,0x3C,0x18,0x00,0x00,
0xFF,0xFF,0xE7,0xC3,0xC3,0xE7,0xFF,0xFF,
0x00,0x3C,0x66,0x42,0x42,0x66,0x3C,0x00,
0xFF,0xC3,0x99,0xBD,0xBD,0x99,0xC3,0xFF,
0x0F,0x07,0x0F,0x7D,0xCC,0xCC,0xCC,0x78,
0x3C,0x66,0x66,0x66,0x3C,0x18,0x7E,0x18,
0x3F,0x33,0x3F,0x30,0x30,0x70,0xF0,0xE0,
0x7F,0x63,0x7F,0x63,0x63,0x67,0xE6,0xC0,
0x18,0xDB,0x3C,0xE7,0xE7,0x3C,0xDB,0x18,
0x80,0xE0,0xF8,0xFE,0xF8,0xE0,0x80,0x00,
0x02,0x0E,0x3E,0xFE,0x3E,0x0E,0x02,0x00,
0x18,0x3C,0x7E,0x18,0x18,0x7E,0x3C,0x18,
0x66,0x66,0x66,0x66,0x66,0x00,0x66,0x00,
0x7F,0xDB,0xDB,0x7B,0x1B,0x1B,0x1B,0x00,
0x3E,0x61,0x3C,0x66,0x66,0x3C,0x86,0x7C,
0x00,0x00,0x00,0x00,0x7E,0x7E,0x7E,0x00,
0x18,0x3C,0x7E,0x18,0x7E,0x3C,0x18,0xFF,
0x18,0x3C,0x7E,0x18,0x18,0x18,0x18,0x00,
0x18,0x18,0x18,0x18,0x7E,0x3C,0x18,0x00,
0x00,0x18,0x0C,0xFE,0x0C,0x18,0x00,0x00,
0x00,0x30,0x60,0xFE,0x60,0x30,0x00,0x00,
0x00,0x00,0xC0,0xC0,0xC0,0xFE,0x00,0x00,
0x00,0x24,0x66,0xFF,0x66,0x24,0x00,0x00,
0x00,0x18,0x3C,0x7E,0xFF,0xFF,0x00,0x00,
0x00,0xFF,0xFF,0x7E,0x3C,0x18,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x18,0x3C,0x3C,0x18,0x18,0x00,0x18,0x00,
0x66,0x66,0x24,0x00,0x00,0x00,0x00,0x00,
0x6C,0x6C,0xFE,0x6C,0xFE,0x6C,0x6C,0x00,
0x18,0x3E,0x60,0x3C,0x06,0x7C,0x18,0x00,
0x00,0xC6,0xCC,0x18,0x30,0x66,0xC6,0x00,
0x38,0x6C,0x38,0x76,0xDC,0xCC,0x76,0x00,
0x18,0x18,0x30,0x00,0x00,0x00,0x00,0x00,
0x0C,0x18,0x30,0x30,0x30,0x18,0x0C,0x00,
0x30,0x18,0x0C,0x0C,0x0C,0x18,0x30,0x00,
0x00,0x66,0x3C,0xFF,0x3C,0x66,0x00,0x00,
0x00,0x18,0x18,0x7E,0x18,0x18,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x30,
0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,
0x06,0x0C,0x18,0x30,0x60,0xC0,0x80,0x00,
0x38,0x6C,0xC6,0xD6,0xC6,0x6C,0x38,0x00,
0x18,0x38,0x18,0x18,0x18,0x18,0x7E,0x00,
0x7C,0xC6,0x06,0x1C,0x30,0x66,0xFE,0x00,
0x7C,0xC6,0x06,0x3C,0x06,0xC6,0x7C,0x00,
0x1C,0x3C,0x6C,0xCC,0xFE,0x0C,0x1E,0x00,
0xFE,0xC0,0xC0,0xFC,0x06,0xC6,0x7C,0x00,
0x38,0x60,0xC0,0xFC,0xC6,0xC6,0x7C,0x00,
0xFE,0xC6,0x0C,0x18,0x30,0x30,0x30,0x00,
0x7C,0xC6,0xC6,0x7C,0xC6,0xC6,0x7C,0x00,
0x7C,0xC6,0xC6,0x7E,0x06,0x0C,0x78,0x00,
0x00,0x18,0x18,0x00,0x00,0x18,0x18,0x00,
0x00,0x18,0x18,0x00,0x00,0x18,0x18,0x30,
0x06,0x0C,0x18,0x30,0x18,0x0C,0x06,0x00,
0x00,0x00,0x7E,0x00,0x00,0x7E,0x00,0x00,
0x60,0x30,0x18,0x0C,0x18,0x30,0x60,0x00,
0x7C,0xC6,0x0C,0x18,0x18,0x00,0x18,0x00,
0x7C,0xC6,0xDE,0xDE,0xDE,0xC0,0x78,0x00,
0x38,0x6C,0xC6,0xFE,0xC6,0xC6,0xC6,0x00,
0xFC,0x66,0x66,0x7C,0x66,0x66,0xFC,0x00,
0x3C,0x66,0xC0,0xC0,0xC0,0x66,0x3C,0x00,
0xF8,0x6C,0x66,0x66,0x66,0x6C,0xF8,0x00,
0xFE,0x62,0x68,0x78,0x68,0x62,0xFE,0x00,
0xFE,0x62,0x68,0x78,0x68,0x60,0xF0,0x00,
0x3C,0x66,0xC0,0xC0,0xCE,0x66,0x3A,0x00,
0xC6,0xC6,0xC6,0xFE,0xC6,0xC6,0xC6,0x00,
0x3C,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,
0x1E,0x0C,0x0C,0x0C,0xCC,0xCC,0x78,0x00,
0xE6,0x66,0x6C,0x78,0x6C,0x66,0xE6,0x00,
0xF0,0x60,0x60,0x60,0x62,0x66,0xFE,0x00,
0xC6,0xEE,0xFE,0xFE,0xD6,0xC6,0xC6,0x00,
0xC6,0xE6,0xF6,0xDE,0xCE,0xC6,0xC6,0x00,
0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,
0xFC,0x66,0x66,0x7C,0x60,0x60,0xF0,0x00,
0x7C,0xC6,0xC6,0xC6,0xC6,0xCE,0x7C,0x0E,
0xFC,0x66,0x66,0x7C,0x6C,0x66,0xE6,0x00,
0x3C,0x66,0x30,0x18,0x0C,0x66,0x3C,0x00,
0x7E,0x7E,0x5A,0x18,0x18,0x18,0x3C,0x00,
0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,
0xC6,0xC6,0xC6,0xC6,0xC6,0x6C,0x38,0x00,
0xC6,0xC6,0xC6,0xD6,0xD6,0xFE,0x6C,0x00,
0xC6,0xC6,0x6C,0x38,0x6C,0xC6,0xC6,0x00,
0x66,0x66,0x66,0x3C,0x18,0x18,0x3C,0x00,
0xFE,0xC6,0x8C,0x18,0x32,0x66,0xFE,0x00,
0x3C,0x30,0x30,0x30,0x30,0x30,0x3C,0x00,
0xC0,0x60,0x30,0x18,0x0C,0x06,0x02,0x00,
0x3C,0x0C,0x0C,0x0C,0x0C,0x0C,0x3C,0x00,
0x10,0x38,0x6C,0xC6,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0x30,0x18,0x0C,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x78,0x0C,0x7C,0xCC,0x76,0x00,
0xE0,0x60,0x7C,0x66,0x66,0x66,0xDC,0x00,
0x00,0x00,0x7C,0xC6,0xC0,0xC6,0x7C,0x00,
0x1C,0x0C,0x7C,0xCC,0xCC,0xCC,0x76,0x00,
0x00,0x00,0x7C,0xC6,0xFE,0xC0,0x7C,0x00,
0x3C,0x66,0x60,0xF8,0x60,0x60,0xF0,0x00,
0x00,0x00,0x76,0xCC,0xCC,0x7C,0x0C,0xF8,
0xE0,0x60,0x6C,0x76,0x66,0x66,0xE6,0x00,
0x18,0x00,0x38,0x18,0x18,0x18,0x3C,0x00,
0x06,0x00,0x06,0x06,0x06,0x66,0x66,0x3C,
0xE0,0x60,0x66,0x6C,0x78,0x6C,0xE6,0x00,
0x38,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,
0x00,0x00,0xEC,0xFE,0xD6,0xD6,0xD6,0x00,
0x00,0x00,0xDC,0x66,0x66,0x66,0x66,0x00,
0x00,0x00,0x7C,0xC6,0xC6,0xC6,0x7C,0x00,
0x00,0x00,0xDC,0x66,0x66,0x7C,0x60,0xF0,
0x00,0x00,0x76,0xCC,0xCC,0x7C,0x0C,0x1E,
0x00,0x00,0xDC,0x76,0x60,0x60,0xF0,0x00,
0x00,0x00,0x7E,0xC0,0x7C,0x06,0xFC,0x00,
0x30,0x30,0xFC,0x30,0x30,0x36,0x1C,0x00,
0x00,0x00,0xCC,0xCC,0xCC,0xCC,0x76,0x00,
0x00,0x00,0xC6,0xC6,0xC6,0x6C,0x38,0x00,
0x00,0x00,0xC6,0xD6,0xD6,0xFE,0x6C,0x00,
0x00,0x00,0xC6,0x6C,0x38,0x6C,0xC6,0x00,
0x00,0x00,0xC6,0xC6,0xC6,0x7E,0x06,0xFC,
0x00,0x00,0x7E,0x4C,0x18,0x32,0x7E,0x00,
0x0E,0x18,0x18,0x70,0x18,0x18,0x0E,0x00,
0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,
0x70,0x18,0x18,0x0E,0x18,0x18,0x70,0x00,
0x76,0xDC,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x10,0x38,0x6C,0xC6,0xC6,0xFE,0x00,
0x7C,0xC6,0xC0,0xC0,0xC6,0x7C,0x0C,0x78,
0xCC,0x00,0xCC,0xCC,0xCC,0xCC,0x76,0x00,
0x0C,0x18,0x7C,0xC6,0xFE,0xC0,0x7C,0x00,
0x7C,0x82,0x78,0x0C,0x7C,0xCC,0x76,0x00,
0xC6,0x00,0x78,0x0C,0x7C,0xCC,0x76,0x00,
0x30,0x18,0x78,0x0C,0x7C,0xCC,0x76,0x00,
0x30,0x30,0x78,0x0C,0x7C,0xCC,0x76,0x00,
0x00,0x00,0x7E,0xC0,0xC0,0x7E,0x0C,0x38,
0x7C,0x82,0x7C,0xC6,0xFE,0xC0,0x7C,0x00,
0xC6,0x00,0x7C,0xC6,0xFE,0xC0,0x7C,0x00,
0x30,0x18,0x7C,0xC6,0xFE,0xC0,0x7C,0x00,
0x66,0x00,0x38,0x18,0x18,0x18,0x3C,0x00,
0x7C,0x82,0x38,0x18,0x18,0x18,0x3C,0x00,
0x30,0x18,0x00,0x38,0x18,0x18,0x3C,0x00,
0xC6,0x38,0x6C,0xC6,0xFE,0xC6,0xC6,0x00,
0x38,0x6C,0x7C,0xC6,0xFE,0xC6,0xC6,0x00,
0x18,0x30,0xFE,0xC0,0xF8,0xC0,0xFE,0x00,
0x00,0x00,0x7E,0x12,0xFE,0x90,0xFE,0x00,
0x3E,0x6C,0xCC,0xFE,0xCC,0xCC,0xCE,0x00,
0x7C,0x82,0x7C,0xC6,0xC6,0xC6,0x7C,0x00,
0xC6,0x00,0x7C,0xC6,0xC6,0xC6,0x7C,0x00,
0x30,0x18,0x7C,0xC6,0xC6,0xC6,0x7C,0x00,
0x78,0x84,0x00,0xCC,0xCC,0xCC,0x76,0x00,
0x60,0x30,0xCC,0xCC,0xCC,0xCC,0x76,0x00,
0xC6,0x00,0xC6,0xC6,0xC6,0x7E,0x06,0xFC,
0xC6,0x38,0x6C,0xC6,0xC6,0x6C,0x38,0x00,
0xC6,0x00,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,
0x00,0x02,0x7C,0xCE,0xD6,0xE6,0x7C,0x80,
0x38,0x6C,0x64,0xF0,0x60,0x66,0xFC,0x00,
0x3A,0x6C,0xCE,0xD6,0xE6,0x6C,0xB8,0x00,
0x00,0xC6,0x6C,0x38,0x6C,0xC6,0x00,0x00,
0x0E,0x1B,0x18,0x3C,0x18,0xD8,0x70,0x00,
0x18,0x30,0x78,0x0C,0x7C,0xCC,0x76,0x00,
0x0C,0x18,0x00,0x38,0x18,0x18,0x3C,0x00,
0x0C,0x18,0x7C,0xC6,0xC6,0xC6,0x7C,0x00,
0x18,0x30,0xCC,0xCC,0xCC,0xCC,0x76,0x00,
0x76,0xDC,0x00,0xDC,0x66,0x66,0x66,0x00,
0x76,0xDC,0x00,0xE6,0xF6,0xDE,0xCE,0x00,
0x3C,0x6C,0x6C,0x3E,0x00,0x7E,0x00,0x00,
0x38,0x6C,0x6C,0x38,0x00,0x7C,0x00,0x00,
0x18,0x00,0x18,0x18,0x30,0x63,0x3E,0x00,
0x7E,0x81,0xB9,0xA5,0xB9,0xA5,0x81,0x7E,
0x00,0x00,0x00,0xFE,0x06,0x06,0x00,0x00,
0x63,0xE6,0x6C,0x7E,0x33,0x66,0xCC,0x0F,
0x63,0xE6,0x6C,0x7A,0x36,0x6A,0xDF,0x06,
0x18,0x00,0x18,0x18,0x3C,0x3C,0x18,0x00,
0x00,0x33,0x66,0xCC,0x66,0x33,0x00,0x00,
0x00,0xCC,0x66,0x33,0x66,0xCC,0x00,0x00,
0x22,0x88,0x22,0x88,0x22,0x88,0x22,0x88,
0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,
0x77,0xDD,0x77,0xDD,0x77,0xDD,0x77,0xDD,
0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
0x18,0x18,0x18,0x18,0xF8,0x18,0x18,0x18,
0x30,0x60,0x38,0x6C,0xC6,0xFE,0xC6,0x00,
0x7C,0x82,0x38,0x6C,0xC6,0xFE,0xC6,0x00,
0x18,0x0C,0x38,0x6C,0xC6,0xFE,0xC6,0x00,
0x7E,0x81,0x9D,0xA1,0xA1,0x9D,0x81,0x7E,
0x36,0x36,0xF6,0x06,0xF6,0x36,0x36,0x36,
0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,
0x00,0x00,0xFE,0x06,0xF6,0x36,0x36,0x36,
0x36,0x36,0xF6,0x06,0xFE,0x00,0x00,0x00,
0x18,0x18,0x7E,0xC0,0xC0,0x7E,0x18,0x18,
0x66,0x66,0x3C,0x7E,0x18,0x7E,0x18,0x18,
0x00,0x00,0x00,0x00,0xF8,0x18,0x18,0x18,
0x18,0x18,0x18,0x18,0x1F,0x00,0x00,0x00,
0x18,0x18,0x18,0x18,0xFF,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x18,0x18,0x18,
0x18,0x18,0x18,0x18,0x1F,0x18,0x18,0x18,
0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,
0x18,0x18,0x18,0x18,0xFF,0x18,0x18,0x18,
0x76,0xDC,0x7C,0x06,0x7E,0xC6,0x7E,0x00,
0x76,0xDC,0x38,0x6C,0xC6,0xFE,0xC6,0x00,
0x36,0x36,0x37,0x30,0x3F,0x00,0x00,0x00,
0x00,0x00,0x3F,0x30,0x37,0x36,0x36,0x36,
0x36,0x36,0xF7,0x00,0xFF,0x00,0x00,0x00,
0x00,0x00,0xFF,0x00,0xF7,0x36,0x36,0x36,
0x36,0x36,0x37,0x30,0x37,0x36,0x36,0x36,
0x00,0x00,0xFF,0x00,0xFF,0x00,0x00,0x00,
0x36,0x36,0xF7,0x00,0xF7,0x36,0x36,0x36,
0x00,0xC6,0x7C,0xC6,0xC6,0x7C,0xC6,0x00,
0x30,0x7E,0x0C,0x7C,0xCC,0xCC,0x78,0x00,
0xF8,0x6C,0x66,0xF6,0x66,0x6C,0xF8,0x00,
0x7C,0x82,0xFE,0xC0,0xFC,0xC0,0xFE,0x00,
0xC6,0x00,0xFE,0xC0,0xFC,0xC0,0xFE,0x00,
0x30,0x18,0xFE,0xC0,0xFC,0xC0,0xFE,0x00,
0x00,0x00,0x38,0x18,0x18,0x18,0x3C,0x00,
0x0C,0x18,0x3C,0x18,0x18,0x18,0x3C,0x00,
0x3C,0x42,0x3C,0x18,0x18,0x18,0x3C,0x00,
0x66,0x00,0x3C,0x18,0x18,0x18,0x3C,0x00,
0x18,0x18,0x18,0x18,0xF8,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x1F,0x18,0x18,0x18,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,
0x18,0x18,0x18,0x00,0x00,0x18,0x18,0x18,
0x30,0x18,0x3C,0x18,0x18,0x18,0x3C,0x00,
0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,
0x30,0x60,0x38,0x6C,0xC6,0x6C,0x38,0x00,
0x78,0xCC,0xCC,0xD8,0xCC,0xC6,0xCC,0x00,
0x7C,0x82,0x38,0x6C,0xC6,0x6C,0x38,0x00,
0x0C,0x06,0x38,0x6C,0xC6,0x6C,0x38,0x00,
0x76,0xDC,0x7C,0xC6,0xC6,0xC6,0x7C,0x00,
0x76,0xDC,0x38,0x6C,0xC6,0x6C,0x38,0x00,
0x00,0x00,0x66,0x66,0x66,0x66,0x7C,0xC0,
0xE0,0x60,0x7C,0x66,0x66,0x7C,0x60,0xF0,
0xF0,0x60,0x7C,0x66,0x7C,0x60,0xF0,0x00,
0x18,0x30,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,
0x7C,0x82,0x00,0xC6,0xC6,0xC6,0x7C,0x00,
0x60,0x30,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,
0x18,0x30,0xC6,0xC6,0xC6,0x7E,0x06,0xFC,
0x0C,0x18,0x66,0x66,0x3C,0x18,0x3C,0x00,
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x0C,0x18,0x30,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,
0x18,0x18,0x7E,0x18,0x18,0x00,0x7E,0x00,
0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0xFF,
0xE1,0x32,0xE4,0x3A,0xF6,0x2A,0x5F,0x86,
0x7F,0xDB,0xDB,0x7B,0x1B,0x1B,0x1B,0x00,
0x3E,0x61,0x3C,0x66,0x66,0x3C,0x86,0x7C,
0x00,0x18,0x00,0x7E,0x00,0x18,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x18,0x0C,0x38,
0x38,0x6C,0x6C,0x38,0x00,0x00,0x00,0x00,
0x00,0xC6,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,
0x18,0x38,0x18,0x18,0x3C,0x00,0x00,0x00,
0x78,0x0C,0x38,0x0C,0x78,0x00,0x00,0x00,
0x78,0x0C,0x18,0x30,0x7C,0x00,0x00,0x00,
0x00,0x00,0x3C,0x3C,0x3C,0x3C,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
/* This font was provided by ??? */
static UCHAR font8x8[2048] = {
static UCHAR Cp866Font[2048] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x7E,0x81,0xA5,0x81,0xBD,0x99,0x81,0x7E,
0x7E,0xFF,0xDB,0xFF,0xC3,0xE7,0xFF,0x7E,