Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- Ralf Brown's Interrupt List (Part 1,2) - int 21 - dos 3.3+ - get extended country information http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
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 (DOS 3.3+ internal) get pointer to filename terminator table
            06h get pointer to collating sequence table
            07h (DOS 4.x) 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
        NLSFUNC must be installed to get info for countries other than the
          default
SeeAlso: AH=38h,INT 2F/AX=1401h,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.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 terminator table:
Offset  Size    Description
 00h    WORD    table size
 02h  7 BYTEs   ???  (01h 00h FFh 00h 00h 20h 02h in MSDOS 3.30)
 09h    BYTE    length of following data
 0Ah  N BYTES   characters which terminate a filename:  ."/\[]:|<>+=;,

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)

Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson