Extended Country Info Block
This topic covers the ExtCountryInfoRec returned by fn 6501H. See
CountryInfoRec for the subset of this structure obtained via the older
fn 38H.
ExtCountryInfoRec
Offset Size Contents
▀▀▀▀▀▀ ▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
+0 1 bRecID Information ID (01H on calls to fn 6501H)
+1 2 wRecLen size of information
+3 2 wCountryID Country Code
+5 2 wCodePgID Code Page
+7 2 wDateFormat date format
+9 5 szCrncySymb currency symbol (ASCIIZ▲)
+0eH 2 szThouSep thousands separator (ASCIIZ)
+10H 2 szDecSep decimal separator (ASCIIZ)
+12H 2 szDateSep date separator (ASCIIZ)
+14H 2 szTimeSep time separator (ASCIIZ)
+16H 1 bCrncyFlags currency format flags
+17H 1 bCrncyDigits decimals digits in currency
+18H 1 bTimeFormat time format
+19H 4 pfCasemap Casemap FAR call address
+1dH 2 szDataSep data list separator (ASCIIZ)
+1fH 10 res reserved zeros
41 length of return buffer
bRecID The record ID, as used in all 3.3+ NLS fns.
wRecLen The size of the following information. Be suer to check this,
to avoid the chance that DOS returns a truncated record.
wCountryID Country ID
wCodePgID Code Page ID
wDateFormat How to print a date: 0000H = MM/DD/YY (as in USA)
0001H = DD/MM/YY (as in Europe)
0002H = YY/MM/DD (as in Japan)
szCrncySymb ASCIIZ▲ char(s) used for printing currency amounts
szThouSep ASCIIZ char used to separate 1000 place (e.g., comma)
szDecSep ASCIIZ char used to separate number from decimal (e.g.,
period)
szDateSep ASCIIZ char used to separate elements of a date
szTimeSep ASCIIZ char used to separate elements hours from minutes
bCrncyFlags currency format code, e.g.: 0="$123.00"; 1="123.00$";
2="$ 123.00"; 3="123.00 $"
bCrncyDigits The number of places that appear to the right of the decimal
point when printing currency amounts.
bTimeFormat time format: 0=12-hour clock, 1=24-hour clock
pfCasemap CaseMap FAR Call address (see note)
szDataSep ASCIIZ char used to separate elements of a list (e.g., comma)
Notes: ■ The CaseMap call can be used to assign ASCII weights to
characters above 80H. For instance, the DOS SORT command uses
the CaseMap to assign â,ä,à,å,Ä,Å,æ,and á the same ASCII weight
as 'A' and 'a' for sorting purposes. Different CaseMaps exist
for countries with different alphabets.
To use the CaseMap address:
1. Place a byte to 'weigh' into AL
2. Make a FAR CALL to the indicated address
3. The weight value is returned in AL
All register values (except AL) are preserved
Note: DOS 3.3+ provides easy-to-use case-mapping via fn 65H.
■ When running under DOS version 2.0 through 3.2, DOS returns a
structure containing some of this information, but in a
different layout. See CountryInfoRec. Be sure you know which
version of DOS is active (see fn 30H).
See Also: National Language Support
Data Structures
-♦-