Get extended country information (INT 21h, 65h)

Entry:
AH = 65h
AL = info ID (1 - 6)
BX = code page (-1=global code page)
DX = country ID (-1=current country)
ES:DI = pointer to country information buffer
CX = size of buffer

Return:
AX = error code if carry set, otherwise
CX = size of country information returned
ES:DI = pointer to country information:
1 BYTE info ID
if info ID <> 1
1 DWORD pointer to information
if info ID == 1
1 WORD size
1 WORD country ID
1 WORD code page
34 BYTE see function 38h


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 collating table (see below)
---if info ID = 06h---
01h DWORD pointer to filename uppercase table (see below)
---if info ID = 07h (DOS 4.x)---
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 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)