INT 21 - DOS 3.3+ - GET EXTENDED COUNTRY INFORMATION                            
	AH = 65h
	AL = info ID
	    01h get general internationalization info (see also AX=6500h)
	    02h get pointer to uppercase table
	    03h (DOS 6.2+ COUNTRY.SYS) get pointer to lowercase 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.0+) get pointer to Double-Byte Character Set table
	BX = code page (FFFFh=global code page) (see #01757)
	DX = country ID (FFFFh=current country)
	ES:DI -> country information buffer (see #01750)
	CX = size of buffer (>= 5)
Return: CF set on error
	    AX = error code (see #01680 at AH=59h/BX=0000h)
	CF clear if successful
	    CX = size of country information returned
	    ES:DI -> country information (see #01750)
Notes:	AL=05h appears to return same info for all countries and codepages; it
	  has been documented for DOS 5+, but was undocumentedInformation about a product which is not publicly available from the manufacturer, and must be determined by reverse-engineering (disassembly, trial-and-error, etc.).	 Undocumented information tends to change -- often dramatically -- between successive revisions of a product, since the manufacturer has no obligation to maintain compatibility in behavior which is not explicitly stated. in earlier
	  versions
	NLSFUNC must be installed to get info for countries other than the
	  default
	subfunctions 02h and 04h are identical under OS/2
	subfunction 03h apparently supports only codepage 866 in DOS 6.2x
SeeAlso: AH=38h,AH=70h"MS-DOS 7",INT 2F/AX=1401h,INT 2F/AX=1402h
SeeAlso: INT 2F/AX=14FEh


Format of country information:
Offset	Size	Description	(Table 01750)
 00h	BYTE	info ID
---if info ID = 01h---
 01h	WORD	size of following info in bytes
 03h	WORD	country ID (see #01400 at AH=38h)
 05h	WORD	code page (see #01757)
 07h 34 BYTEs	country-dependent info (see #01399 at AH=38h)
---if info ID = 02h---
 01h	DWORDDoubleword; four bytes.	 Commonly used to hold a 32-bit segment:offset or selector:offset address.	pointer to uppercase table (see #01751)
---if info ID = 03h---
 01h	DWORDDoubleword; four bytes.	 Commonly used to hold a 32-bit segment:offset or selector:offset address.	pointer to lowercase table (see #01752)
---if info ID = 04h---
 01h	DWORDDoubleword; four bytes.	 Commonly used to hold a 32-bit segment:offset or selector:offset address.	pointer to filename uppercase table (see #01753)
---if info ID = 05h---
 01h	DWORDDoubleword; four bytes.	 Commonly used to hold a 32-bit segment:offset or selector:offset address.	pointer to filename character table (see #01754)
---if info ID = 06h---
 01h	DWORDDoubleword; four bytes.	 Commonly used to hold a 32-bit segment:offset or selector:offset address.	pointer to collating table (see #01755)
---if info ID = 07h (DOS 4.0+)---
 01h	DWORDDoubleword; four bytes.	 Commonly used to hold a 32-bit segment:offset or selector:offset address.	pointer to DBCS lead byte table (see #01756)
SeeAlso: #01775


Format of uppercase table:
Offset	Size	Description	(Table 01751)
 00h	WORD	table size (0080h)
 02h 128 BYTEs	uppercase equivalents (if any) of chars 80h to FFh
SeeAlso: #01750,#01753


Format of lowercase table:
Offset	Size	Description	(Table 01752)
 00h	WORD	table size (0100h)
 02h 256 BYTEs	lowercase equivalents (if any) of chars 00h to FFh
SeeAlso: #01750,#01753


Format of filename uppercase table:
Offset	Size	Description	(Table 01753)
 00h	WORD	table size (0080h)
 02h 128 BYTEs	uppercase equivalents (if any) of chars 80h to FFh
SeeAlso: #01750,#01751


Format of filename terminator table:
Offset	Size	Description	(Table 01754)
 00h	WORD	table size (not counting this word)
 02h	BYTE	??? (01h for MS-DOS 3.30-6.00)
 03h	BYTE	lowest permissible character value for filename
 04h	BYTE	highest permissible character value for filename
 05h	BYTE	??? (00h for MS-DOS 3.30-6.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 MS-DOS 3.30-6.00)
 09h	BYTE	number of illegal (terminator) characters
 0Ah  N BYTEs	characters which terminate a filename:	."/\[]:|<>+=;,
Note:	partially documented for DOS 5+, but undocumentedInformation about a product which is not publicly available from the manufacturer, and must be determined by reverse-engineering (disassembly, trial-and-error, etc.).	 Undocumented information tends to change -- often dramatically -- between successive revisions of a product, since the manufacturer has no obligation to maintain compatibility in behavior which is not explicitly stated. for earlier versions
SeeAlso: #01750


Format of collating table:
Offset	Size	Description	(Table 01755)
 00h	WORD	table size (0100h)
 02h 256 BYTEs	values used to sort characters 00h to FFh
SeeAlso: #01750


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

INT 21 - DOS 4.0+ - COUNTRY-DEPENDENT CHARACTER CAPITALIZATION                  
	AH = 65h
	AL = function
	    20h capitalize character
		DL = character to capitalize
		Return: DL = capitalized character
	    21h capitalize string
		DS:DX -> string to capitalize
		CX = length of string
	    22h capitalize ASCIZA NUL-terminated ASCII string.	The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h.  Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. string
		DS:DX -> ASCIZA NUL-terminated ASCII string.	The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h.  Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. string to capitalize
Return: CF set on error
	    AX = error code (see #01680 at AH=59h/BX=0000h)
	CF clear if successful
Note:	these calls have been documented for DOS 5+, but were undocumentedInformation about a product which is not publicly available from the manufacturer, and must be determined by reverse-engineering (disassembly, trial-and-error, etc.).	 Undocumented information tends to change -- often dramatically -- between successive revisions of a product, since the manufacturer has no obligation to maintain compatibility in behavior which is not explicitly stated. in
	  DOS 4.x.
BUG:	Novell DOS 7 Update 15 crashes on AX=6521h when CX=0000h
                                                                                

INT 21 U - DOS 4.0+ internal - COUNTRY-DEPENDENT FILENAME CAPITALIZATION        
	AH = 65h
	AL = function
	    A0h capitalize filename character
		DL = character to capitalize
		Return: DL = capitalized character
	    A1h capitalize counted filename string
		DS:DX -> filename string to capitalize
		CX = length of string
	    A2h capitalize ASCIZA NUL-terminated ASCII string.	The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h.  Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. filename
		DS:DX -> ASCIZA NUL-terminated ASCII string.	The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h.  Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. filename to capitalize
Return: CF set on error
	    AX = error code (see #01680 at AH=59h/BX=0000h)
	CF clear if successful
Note:	nonfunctional in MS-DOS 4.00 through 7.10 (Win98) due to a bug (the
	  code sets a pointer depending on the high bit of AL, but doesn't
	  clear the bit before branching by function number).  Supported and
	  functional(!) in Novell DOS 7 (Update 15), as well as PC-DOS 7 and
	  OS/2 MVDM