[Back to DOS SWAG index]  [Back to Main SWAG index]  [Original]

{ Gets the current country code number.
  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_Country_Code(var CC : word;
                   var Error_Code : byte);
{ DESCRIPTION:
    Gets the current country code number.
  SAMPLE CALL:
    Get_Country_Code(CC,Error_Code);
  RETURNS:
    CC         : country code number
                 or $FFFF if Error_Code <> 0
    Error_Code : see The Programmers PC Source Book 3.191
  NOTES:
    None. }

var
  TmpA   : array[1..34] of byte;
  HTregs : registers;

BEGIN { Get_Country_Code }
  FillChar(TmpA,SizeOf(TmpA),0);
  HTregs.AX := $3800;
  HTregs.DX := Ofs(TmpA);
  HTregs.DS := Seg(TmpA);
  MsDos(HTregs);
  if HTregs.Flags and FCarry <> 0 then
    begin
      CC := $FFFF;           { on error set to $FFFF }
      Error_Code := HTregs.AL;
    end
  else
    begin
      CC := HTregs.BX;
      Error_Code := 0;
    end;
END; { Get_Country_Code }



FUNCTION Get_Country_Code_Text(CC : word) : String25;

{ DESCRIPTION:
    Gets country code in string format.
  SAMPLE CALL:
    St := Get_Country_Code_Text(CC);
  RETURNS:
    Country code name.
  NOTES:
    None. }

BEGIN { Get_Country_Code_Text }
  case CC of
    001 : Get_Country_Code_Text := 'United States';
    002 : Get_Country_Code_Text := 'Canada (French)';
    003 : Get_Country_Code_Text := 'Latin America';
    031 : Get_Country_Code_Text := 'Netherlands';
    032 : Get_Country_Code_Text := 'Belgium';
    033 : Get_Country_Code_Text := 'France';
    034 : Get_Country_Code_Text := 'Spain';
    036 : Get_Country_Code_Text := 'Hungary';
    038 : Get_Country_Code_Text := 'Yugoslavia';
    039 : Get_Country_Code_Text := 'Italy';
    041 : Get_Country_Code_Text := 'Switzerland';
    042 : Get_Country_Code_Text := 'Czechoslovakia';
    044 : Get_Country_Code_Text := 'United Kingdom';
    045 : Get_Country_Code_Text := 'Denmark';
    046 : Get_Country_Code_Text := 'Sweden';
    047 : Get_Country_Code_Text := 'Norway';
    048 : Get_Country_Code_Text := 'Poland';
    049 : Get_Country_Code_Text := 'Germany';
    055 : Get_Country_Code_Text := 'Brazil';
    061 : Get_Country_Code_Text := 'International English';
    081 : Get_Country_Code_Text := 'Japan';
    082 : Get_Country_Code_Text := 'Korea';
    086 : Get_Country_Code_Text := 'Peoples Republic of China';
    088 : Get_Country_Code_Text := 'Taiwan';
    351 : Get_Country_Code_Text := 'Portugal';
    358 : Get_Country_Code_Text := 'Finland';
    785 : Get_Country_Code_Text := 'Middle East (Arabic)';
    972 : Get_Country_Code_Text := 'Israel (Hebrew)';
  else
    Get_Country_Code_Text := 'Unknown';
  end;
END; { Get_Country_Code_Text }

[Back to DOS SWAG index]  [Back to Main SWAG index]  [Original]