INT 21 - DOS 3.3+ - GET EXTENDED COUNTRY INFORMATION
AH = 65h
AL = info ID
01h get general internationalization info
02h get pointer to uppercase table
04h get pointer to filename uppercase table
05h get pointer to filename terminator table
06h get pointer to collating sequence table
07h (DOS 4+) get pointer to Double-Byte Character Set table
BX = code page (-1=global code page)
DX = country ID (-1=current country)
ES:DI -> country information buffer (see below)
CX = size of buffer (>= 5)
Return: CF set on error
AX = error code (see AH=59h)
CF clear if succesful
CX = size of country information returned
ES:DI -> country information
Notes:  AL=05h appears to return same info for all countries and codepages; it
has been documented for DOS 5.0, but was undocumented in ealier
versions
NLSFUNC must be installed to get info for countries other than the
default
subfunctions 02h and 04h are identical under OS/2
SeeAlso: INT 2F/AX=1401h,INT 2F/AX=1402h

Format of country information:
Offset  Size    Description
00h    BYTE    info ID
---if info ID = 01h---
01h    WORD    size
03h    WORD    country ID
05h    WORD    code page
07h 34 BYTEs   country-dependent info (see AH=38h)
---if info ID = 02h---
01h    DWORD   pointer to uppercase table (see below)
---if info ID = 04h---
01h    DWORD   pointer to filename uppercase table (see below)
---if info ID = 05h---
01h    DWORD   pointer to filename character table (see below)
---if info ID = 06h---
01h    DWORD   pointer to collating table (see below)
---if info ID = 07h (DOS 4+)---
01h    DWORD   pointer to DBCS lead byte table (see below)

Format of uppercase table:
Offset  Size    Description
00h    WORD    table size
02h 128 BYTEs  uppercase equivalents (if any) of chars 80h to FFh

Format of collating table:
Offset  Size    Description
00h    WORD    table size
02h 256 BYTEs  values used to sort characters 00h to FFh

Format of filename terminator table:
Offset  Size    Description
00h    WORD    table size (not counting this word)
02h    BYTE    ??? (01h for MSDOS 3.30-5.00)
03h    BYTE    lowest permissible character value for filename
04h    BYTE    highest permissible character value for filename
05h    BYTE    ??? (00h for MSDOS 3.30-5.00)
06h    BYTE    first excluded character in range \ all characters in this
07h    BYTE    last excluded character in range  / range are illegal
08h    BYTE    ??? (02h for MSDOS 3.30-5.00)
09h    BYTE    number of illegal (terminator) characters
0Ah  N BYTES   characters which terminate a filename:  ."/\[]:|<>+=;,
Note:   partially documented for DOS 5.0, but undocumented for earlier versions

Format of filename uppercase table:
Offset  Size    Description
00h    WORD    table size
02h 128 BYTEs  uppercase equivalents (if any) of chars 80h to FFh

Format of DBCS lead byte table:
Offset  Size    Description
00h    WORD    length
02h 2N BYTEs   start/end for N lead byte ranges
WORD    0000h   (end of table)

See also: 2138

2165 - DOS 3.3+ - GET EXTENDED COUNTRY INFORMATION