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 #1086,#1087)

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.0+--
AL = 00h for current country
AL = 01h thru 0FEh for specific country with code <255 (see #1088)
AL = 0FFh for specific country with code >= 255
BX = 16-bit country code (see #1088)
DS:DX -> buffer for returned info (see #1087)

Return: CF set on error
AX = error code (02h)
CF clear if successful
AX = country code (Novell NWDOS v7.0)
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 (Table 1086)
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 (Table 1087)
00h WORD date format (see #1086)
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

(Table 1088)
Values for country code:
001h (1) United States
002h (2) Canadian-French
003h (3) Latin America
004h (4) Canada (English)
007h (7) Russia
014h (20) Egypt
01Bh (27) South Africa
01Eh (30) Greece
01Fh (31) Netherlands
020h (32) Belgium
021h (33) France
022h (34) Spain
023h (35) Bulgaria???
024h (36) Hungary (not supported by DR DOS 5.0)
026h (38) Yugoslavia (not supported by DR DOS 5.0) -- obsolete
027h (39) Italy / San Marino / Vatican City
028h (40) Romania
029h (41) Switzerland / Liechtenstein
02Ah (42) Czechoslovakia / Tjekia / Slovakia (not supported by DR DOS 5.0)
02Bh (43) Austria (DR DOS 5.0)
02Ch (44) United Kingdom
02Dh (45) Denmark
02Eh (46) Sweden
02Fh (47) Norway
030h (48) Poland (not supported by DR DOS 5.0)
031h (49) Germany
033h (51) Peru
034h (52) Mexico
035h (53) Cuba
036h (54) Argentina
037h (55) Brazil (not supported by DR DOS 5.0)
038h (56) Chile
039h (57) Columbia
03Ah (58) Venezuela
03Ch (60) Malaysia
03Dh (61) International English / Australia
03Eh (62) Indonesia / East Timor
03Fh (63) Philippines
040h (64) New Zealand
041h (65) Singapore
042h (66) Taiwan???
051h (81) Japan (DR DOS 5.0, MS-DOS 5.0+)
052h (82) South Korea (DR DOS 5.0)
054h (84) Vietnam
056h (86) China (MS-DOS 5.0+)
058h (88) Taiwan (MS-DOS 5.0+)
05Ah (90) Turkey (MS-DOS 5.0+)
05Bh (91) India
05Ch (92) Pakistan
05Dh (93) Afghanistan
05Eh (94) Sri Lanka
062h (98) Iran
063h (99) Asia (English)
070h (112) Belarus
0C8h (200) Thailand
0D4h (212) Morocco
0D5h (213) Algeria
0D8h (216) Tunisia
0DAh (218) Libya
0DCh (220) Gambia
0DDh (221) Senegal
0DEh (222) Maruitania
0DFh (223) Mali
0E0h (224) African Guinea
0E1h (225) Ivory Coast
0E2h (226) Burkina Faso
0E3h (227) Niger
0E4h (228) Togo
0E5h (229) Benin
0E6h (230) Mauritius
0E7h (231) Liberia
0E8h (232) Sierra Leone
0E9h (233) Ghana
0EAh (234) Nigeria
0EBh (235) Chad
0ECh (236) Centra African Republic
0EDh (237) Cameroon
0EEh (238) Cape Verde Islands
0EFh (239) Sao Tome and Principe
0F0h (240) Equatorial Guinea
0F1h (241) Gabon
0F2h (242) Congo
0F3h (243) Zaire
0F4h (244) Angola
0F5h (245) Guinea-Bissau
0F6h (246) Diego Garcia
0F7h (247) Ascension Isle
0F8h (248) Seychelles
0F9h (249) Sudan
0FAh (250) Rwhanda
0FBh (251) Ethiopia
0FCh (252) Somalia
0FDh (253) Djibouti
0FEh (254) Kenya
0FFh (255) Tanzania
100h (256) Uganda
101h (257) Burundi
103h (259) Mozambique
104h (260) Zambia
105h (261) Madagascar
106h (262) Reunion Island
107h (263) Zimbabwe
108h (264) Namibia
109h (265) Malawi
10Ah (266) Lesotho
10Bh (267) Botswana
10Ch (268) Swaziland
10Dh (269) Comoros
10Eh (270) Mayotte
122h (290) St. Helena
129h (297) Aruba
12Ah (298) Faroe Islands
12Bh (299) Greenland
15Eh (350) Gibraltar
15Fh (351) Portugal
160h (352) Luxembourg
161h (353) Ireland
162h (354) Iceland
163h (355) Albania
164h (356) Malta
165h (357) Cyprus
166h (358) Finland
167h (359) Bulgaria
172h (370) Lithuania
173h (371) Latvia
174h (372) Estonia
175h (373) Moldova
17Dh (381) Serbia / Montenegro
180h (384) Croatia???
181h (385) Croatia
182h (386) Slovenia
183h (387) Bosnia-Herzegovina (Latin)
184h (388) Bosnia-Herzegovina (Cyrillic)
185h (389) FYR Macedonia
1A5h (421) Czech Republic
1A6h (422) Slovakia
1F4h (500) Falkland Islands
1F5h (501) Belize
1F6h (502) Guatemala
1F7h (503) El Salvador
1F8h (504) Honduras
1F9h (505) Nicraragua
1FAh (506) Costa Rica
1FBh (507) Panama
1FCh (508) St. Pierre and Miquelon
1FDh (509) Haiti
24Eh (590) Guadeloupe
24Fh (591) Bolivia
250h (592) Guyana
251h (593) Ecuador
252h (594) rench Guiana
253h (595) Paraguay
254h (596) Martinique / French Antilles
255h (597) Suriname
256h (598) Uruguay
257h (599) Netherland Antilles
29Eh (670) Saipan / N. Mariana Island
29Fh (671) Guam
2A0h (672) Norfolk Island (Australia) / Christmas Island/Cocos Islands / Antartica
2A1h (673) Brunei Darussalam
2A2h (674) Nauru
2A3h (675) Papua New Guinea
2A4h (676) Tonga Islands
2A5h (677) Solomon Islands
2A6h (678) Vanuatu
2A7h (679) Fiji
2A8h (680) Palau
2A9h (681) Wallis & Futuna
2AAh (682) Cook Islands
2ABh (683) Niue
2ACh (684) American Samoa
2ADh (685) Western Samoa
2AEh (686) Kiribati
2AFh (687) New Caledonia
2B0h (688) Tuvalu
2B1h (689) French Polynesia
2B2h (690) Tokealu
2B3h (691) Micronesia
2B4h (692) Marshall Islands
2C7h (711) ??? (currency = EA$)
311h (785) Arabic (Middle East/Saudi Arabia/etc.)
324h (804) Ukraine
329h (809) Antigua and Barbuda / Anguilla / Bahamas / Barbados / Bermuda
British Virgin Islands / Cayman Islands / Dominica
Dominican Republic / Grenada / Jamaica / Montserra
St. Kitts and Nevis / St. Lucia / St. Vincent and Grenadines
Trinidad and Tobago / Turks and Caicos
352h (850) North Korea
354h (852) Hong Kong
355h (853) Macao
357h (855) Cambodia
358h (856) Laos
370h (880) Bangladesh
376h (886) Taiwan (DOS 6.22+)
3C0h (960) Maldives
3C1h (961) Lebanon
3C2h (962) Jordan
3C3h (963) Syrian Arab Republic
3C4h (964) Ireq
3C5h (965) Kuwait
3C6h (966) Saudi Arabia
3C7h (967) Yemen
3C8h (968) Oman
3CBh (971) United Arab Emirates
3CCh (972) Israel (Hebrew) (DR DOS 5.0,MS-DOS 5.0+)
3CDh (973) Bahrain
3CEh (974) Qatar
3CFh (975) Bhutan
3D0h (976) Mongolia
3D1h (977) Nepal
3E3h (995) Myanmar (Burma)

Note: not all country codes are supported by all versions of DOS