[Back to MISC SWAG index] [Back to Main SWAG index] [Original]
{ Gets the active (set by user) and system (at boot byte) code page.
Part of the Heartware Toolkit v2.00 (HTelse.PAS) for Turbo Pascal.
Author: Jose Almeida. P.O.Box 4185. 1504 Lisboa Codex. Portugal.
I can also be reached at RIME network, site ->TIB or #5314.
Feel completely free to use this source code in any way you want, and, if
you do, please don't forget to mention my name, and, give me and Swag the
proper credits. }
PROCEDURE Get_Code_Page(var Active_CP : word;
var System_CP : word;
var Error_Code : byte);
{ DESCRIPTION:
Gets the active (set by user) and system (at boot byte) code page.
SAMPLE CALL:
Get_Code_Page(Active_CP,Default_CP,Error_Code);
RETURNS:
Active : active code page set by user
System : system code page at boot time
Error_Code
0 : no error
else : see The Programmers PC Source Book 3.191
NOTES:
Applies to all versions beginning with v3.3.
See Get_Code_Page_Text() in order to get string text. }
var
HTregs : registers;
BEGIN { Get_Code_Page }
HTregs.AX := $6601;
MsDos(HTregs);
if HTregs.Flags and FCarry <> 0 then
begin
Active_CP := $FFFF; { on error set to $FFFF }
System_CP := $FFFF; { on error set to $FFFF }
Error_Code := HTregs.AL;
end
else
begin
Active_CP := HTregs.BX;
System_CP := HTregs.DX;
Error_Code := 0;
end;
END; { Get_Code_Page }
FUNCTION Get_Code_Page_Text(CP : word) : String14;
{ DESCRIPTION:
Gets the current active code page in string form.
SAMPLE CALL:
St := Get_Code_Page_Text(860);
RETURNS:
e.g.: 'Portugal'
NOTES:
None. }
BEGIN { Get_Code_Page_Text }
case CP of
437 : Get_Code_Page_Text := 'USA English';
850 : Get_Code_Page_Text := 'Multilingual';
852 : Get_Code_Page_Text := 'CZ/SL/HU/PL/YU';
{ CZ and SL = Czechoslovakia (Czech & Slovak) }
{ HU = Hungary }
{ PL = Poland }
{ YU = Yugoslavia }
854 : Get_Code_Page_Text := 'Spain';
860 : Get_Code_Page_Text := 'Portugal';
863 : Get_Code_Page_Text := 'Canada-French';
865 : Get_Code_Page_Text := 'Norway/Denmark';
else
Get_Code_Page_Text := 'Unknown';
end;
END; { Get_Code_Page_Text }
[Back to MISC SWAG index] [Back to Main SWAG index] [Original]