[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
Int 21 Fn 38  - DOS 2+ - Get Country-specific Information                  [D]

   AH = 38h
--DOS 2.x--
   AL = 00h get current-country info
   DS:DX -> buffer for returned info (see below)

Return: CF set on error
       AX = error code (02h)
   CF clear if successful
       AX = country code (MS-DOS 2.11 only)
       buffer at DS:DX filled
--DOS 3+--
   AL = 00h for current country
   AL = 01h thru 0FEh for specific country with code <255
   AL = 0FFh for specific country with code >= 255
      BX = 16-bit country code
   DS:DX -> buffer for returned info (see below)

Return: CF set on error
       AX = error code (02h)
   CF clear if successful
       BX = country code
       DS:DX buffer filled

Note:  this function is not supported by the Borland DPMI host, but no error
     is returned; as a workaround, one should allocate a buffer in
     conventional memory with INT 31/AX=0100h and simulate an INT 21 with
     INT 31/AX=0300h

See Also: AH=65h,INT 10/AX=5001h,INT 2F/AX=110Ch,INT 2F/AX=1404h

Format of DOS 2.00-2.10 country info:
Offset Size    Description
 00h   WORD    date format  0 = USA    mm dd yy
                1 = Europe dd mm yy
                2 = Japan  yy mm dd
 02h   BYTE    currency symbol
 03h   BYTE    00h
 04h   BYTE    thousands separator char
 05h   BYTE    00h
 06h   BYTE    decimal separator char
 07h   BYTE    00h
 08h 24 BYTEs  reserved

Format of DOS 2.11+ country info:
Offset Size    Description
 00h   WORD    date format (see above)
 02h  5 BYTEs  ASCIZ currency symbol string
 07h  2 BYTEs  ASCIZ thousands separator
 09h  2 BYTEs  ASCIZ decimal separator
 0Bh  2 BYTEs  ASCIZ date separator
 0Dh  2 BYTEs  ASCIZ time separator
 0Fh   BYTE    currency format
       bit 2 = set if currency symbol replaces decimal point
       bit 1 = number of spaces between value and currency symbol
       bit 0 = 0 if currency symbol precedes value
           1 if currency symbol follows value
 10h   BYTE    number of digits after decimal in currency
 11h   BYTE    time format
       bit 0 = 0 if 12-hour clock
           1 if 24-hour clock
 12h   DWORD   address of case map routine
       (FAR CALL, AL = character to map to upper case [>= 80h])
 16h  2 BYTEs  ASCIZ data-list separator
 18h 10 BYTEs  reserved

Values for country code:
 001h  United States
 002h  Canadian-French
 003h  Latin America
 01Fh  Netherlands
 020h  Belgium
 021h  France
 022h  Spain
 024h  Hungary (not supported by DR-DOS 5.0)
 026h  Yugoslavia (not supported by DR-DOS 5.0)
 027h  Italy
 029h  Switzerland
 02Ah  Czechoslovakia/Tjekia (not supported by DR-DOS 5.0)
 02Bh  Austria (DR-DOS 5.0)
 02Ch  United Kingdom
 02Dh  Denmark
 02Eh  Sweden
 02Fh  Norway
 030h  Poland (not supported by DR-DOS 5.0)
 031h  Germany
 037h  Brazil (not supported by DR-DOS 5.0)
 03Dh  International English [Australia in DR-DOS 5.0]
 051h  Japan (DR-DOS 5.0, MS-DOS 5.0+)
 052h  Korea (DR-DOS 5.0)
 056h  China (MS-DOS 5.0+)
 058h  Taiwan (MS-DOS 5.0+)
 05Ah  Turkey (MS-DOS 5.0+)
 15Fh  Portugal
 162h  Iceland
 166h  Finland
 311h  Middle East/Saudi Arabia (DR-DOS 5.0,MS-DOS 5.0+)
 3CCh  Israel (DR-DOS 5.0,MS-DOS 5.0+)

This page created by ng2html v1.05, the Norton guide to HTML conversion utility. Written by Dave Pearson