INT 21,65 - Get Extended Country Information (DOS 3.3+)
AH = 65h AL = 01 get extended country information = 02 get pointer to character translation table = 04 get pointer to filename character translation table = 05 get pointer to filename terminator table = 06 get pointer to collating sequence = 07 get segment of DCBS vector (DOS 4.x) = 20 country dependant character capitalization (DOS 4+) = 21 country dependant string capitalization (DOS 4+) = 22 country dependant ASCIIZ string capitalization (DOS 4+) = 23 determine if character represents country relative Yes or No response (DOS 4+) = A0 country dependant filename character capitalization (DOS 4+) = A1 country dependant filename string capitalization (DOS 4+) = A2 country dependant ASCIIZ filename capitalization (DOS 4+) BX = code page (-1 = current global code page, AL < 20h) CX = amount of data to return = length of string (AL=21h, A1h) DX = country ID (-1 = current country, AL < 20h) DL = character to capitalize or test (AL=20h, 23h, A0h) DH = second character if double byte character (AL=23h) ES:DI = pointer to output buffer (AL < 20h, see tables below) DS:DX = pointer to string to capitalize (AL=21h, 22h, A1h, A2h) on return AX = error code if CF is set (see DOS ERROR CODES) = 00 NO response if (AL was 23h) = 01 YES response if (AL was 23h) = 02 not a yes or no response (AL was 23h) CX = amount of data returned DL = capitalize character (AL=20) ES:DI pointer to returned table of the forms: Offset Size Table for Function 01 00 byte country id = 01 01 word size (38 or less) 03 word country id 05 word code Page 07 word date Format 09 5bytes currency symbol string (ASCIIZ) 0E 2bytes thousands separator string (ASCIIZ) 10 2bytes decimal separator string (ASCIIZ) 12 2bytes date separator string (ASCIIZ) 14 2bytes time Separator string (ASCIIZ) 16 byte currency symbol location 17 byte currency decimal places 18 byte time format 19 dword extended ASCII map call address 1D 2bytes list separator string (ASCIIZ) 1F 10bytes reserved Offset Size Table for Function 2 00 byte country Id = 02 01 dword pointer to uppercase table Offset Size Table for Function 4 00 byte country Id = 04 01 dword pointer to filename character translation table Offset Size Table for Function 5 00 byte country Id = 05 01 dword pointer to filename uppercase table File Terminator Table for Function 5 00 word table size 02 7bytes unknown 09 byte length of following data 0A nbytes list of filename termination characters, ex: < > . " / \ [ ] : | + = ; , Offset Size Table for Function 6 00 byte country Id = 06 01 dword pointer to collating table Offset Size Table for Function 7 00 byte country Id = 07 01 dword pointer to byte pair table - functions A0, A1, A2 are implemented in DOS 4.x but don't work