Note: This API call is for DOS and Win16 personality only. Use Family API for portability.
3 and higher
SET COUNTRY CODE/GET COUNTRY-SPECIFIC INFORMATION
Get:
AL = 01h thru 0FEh for specific country with code <255 (see #01400)
AL = 0FFh for specific country with code >= 255
BX = 16-bit country code (see #01400)
DS:DX -> buffer for returned info (see #01399)
Set:
AH = 38h
DX = FFFFh
AL = 01h thru FEh for specific country with code <255
AL = FFh for specific country with code >= 255
BX = 16-bit country code (see #01400)
Get:
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
Set:
CF set on error
AX = error code (see #01680 at AH=59h/BX=0000h)
CF clear if successful
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
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 #01398) |
| 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 (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) | Thailand (or 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) |
| 066h (102) | ??? (Hebrew MS-DOS 5.0) |
| 070h (112) | Belarus |
| 0C8h (200) | Thailand (PC DOS 6.1+) (reported as 01h due to a bug in PC DOS COUNTRY.SYS) |
| 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 (reported as 372 due to a bug in MS-DOS COUNTRY.SYS) |
| 173h (371) | Latvia (reported as 372 due to a bug in MS-DOS COUNTRY.SYS) |
| 174h (372) | Estonia |
| 175h (373) | Moldova |
| 177h (375) | ??? (MS-DOS 7.10 / Windows98) |
| 17Ch (380) | Ukraine |
| 17Dh (381) | Serbia / Montenegro |
| 180h (384) | Croatia |
| 181h (385) | Croatia (PC DOS 7+) |
| 182h (386) | Slovenia |
| 183h (387) | Bosnia-Herzegovina (Latin) |
| 184h (388) | Bosnia-Herzegovina (Cyrillic) (PC DOS 7+) (reported as 381 due to a bug in PC DOS COUNTRY.SYS) |
| 185h (389) | FYR Macedonia |
| 1A5h (421) | Czech Republic / Tjekia (PC DOS 7+) |
| 1A6h (422) | Slovakia (reported as 421 due to a bug in COUNTRY.SYS) |
| 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) | French Guiana |
| 253h (595) | Paraguay |
| 254h (596) | Martinique / French Antilles |
| 255h (597) | Suriname |
| 256h (598) | Uruguay |
| 257h (599) | Netherland Antilles |
| 29Ah (666) | Russia??? (PTS-DOS 6.51 KEYB) |
| 29Bh (667) | Poland??? (PTS-DOS 6.51 KEYB) |
| 29Ch (668) | Poland??? (Slavic???) (PTS-DOS 6.51 KEYB) |
| 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$, code pages 437,737,850,852,855,857) |
| 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 (MS-DOS 6.22+) |
| 3C0h (960) | Maldives |
| 3C1h (961) | Lebanon |
| 3C2h (962) | Jordan |
| 3C3h (963) | Syria / Syrian Arab Republic |
| 3C4h (964) | Iraq |
| 3C5h (965) | Kuwait |
| 3C6h (966) | Saudi Arabia |
| 3C7h (967) | Yemen |
| 3C8h (968) | Oman |
| 3C9h (969) | Yemen??? (Arabic MS-DOS 5.0) |
| 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) |
| (10xxx) | reserved for ISO 28601/ISO 8601 or derivative national stds |
| (11xxx) | reserved for Euro currency support |
| (12xxx) | reserved for ISO 28601 + Euro currency |
| (1xxxx) | not yet defined |
| (20xxx) | reserved for ISO 28601/ISO 8601 or derivative national stds |
| (21xxx) | reserved for Euro currency support |
| (22xxx) | reserved for ISO 28601 + Euro currency |
| (2xxxx) | not yet defined |
| (30xxx) | reserved for user-definable country codes |
| (31xxx) | reserved for OEM-defined country codes |
| (32000+) | reserved for future expansion |
Note: not all country codes are supported by all versions of DOS
AH=65h,INT 10/AX=5001h,INT 2F/AX=1404h, INT 2F/AX=1403h
Text based on Ralf Brown Interrupt List Release 61
| osFree Macro Library | |
|---|---|
| Video I/O | @SetMode @SetCurSz @SetCurPos @GetCur @SetPage @ScrollUp @ScrollDn @Scroll @GetChAtr @PutChAtr @PutCh @SetPalet @SetColor @SetDot @GetDot @WrtTTY @VideoState @GetMode @GetDisplay @GetVideoState @GetEGAInfo @Cls |
| Hardware info | @Equipment @MemSize |
| Serial I/O | @AuxInit @AuxSendChar @AuxRecieveChar @AuxStatus |
| Tape I/O | @TapeOn @TapeOff @TapeRead @TapeWrite |
| Keyboard I/O | @KbdStatus @CharIn @CharPeek |
| Printer I/O | @PrnPrint @PrnInit @PrnStatus |
| Disk I/O | @DskReset @DskStatus @DskRead @DskWrite @DskVerify @DskFormat |
| Date and Time | @SetTime @GetTime |
| Mouse | @MouInit @MouShowPointer @MouStatus @MouSetPos @MouSetMickey @MouRegion |
| Memory manager | @ModBlok SET_BLOCK |