Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- TASM 2.x / MASM 6.x Assembly Language - <b>function 65h (101) get extended country information . dos 3.3</b> http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
Function 65h (101)        Get Extended Country Information          . DOS 3.3

     Returns extended country information.

        On entry:      AH         65h
                       AL         Function requested:
                                        1 . Get country information
                                        2 . Get address of character table
                                        4 . Get address of filename
                                                character table
                                        6 . Get address of collating sequence
                                        7 . (DOS 4+ only) Get address of
                                                DCBS vector table
                       BX         Set desired code page. 0FFFFH = current
                                        as set by function 6602h
                       CX         Buffer size for maximum data return
                                        must be . 5
                       DX         Country ID. 0FFFFH = current as set by
                                        function call 38h
                       DS:DI      Information return Buffer address (see
                                        below)

     Buffer (Format is AL dependent):

     AL = 1 (Extended Country Information)
     SUBFUNC    DB      1       ;Subfunction number
     BUFFERSIZE DW      ?       ;Size of data block to return
     COUNTRYID  DB      ?       ;ID of the country
     CODEPAGE   DW      ?       ;Code page
     DATE       DW      ?       ;Date format
     CURRENCY   DB 5 DUP(?)     ;Currency symbols tring (ASCIIZ)
     THOUSANDS  DW      ?       ;Thousands separator string (ASCIIZ)
     DECIMALS   DW      ?       ;Decimal separator string (ASCIIZ)
     DATES      DW      ?       ;Date separator string (ASCIIZ)
     TIMES      DW      ?       ;Time separator string
     CURSYM     DB      ?       ;Currency symbol
     CURPLACES  DB      ?       ;Currency decimal places
     TIMEFORM   DB      ?       ;Time format
     MAPADDR    DD      ?       ;Extended ASCII map call address
     LISTS      DW      ?       ;List separator string (ASCIIZ)
     RESRVD     DB 10 DUP(?)    ;Reserved

     AL = 2 (Upper Case Table)
                DB      2       ;Subfunction number
                DD      ?       ;Address of upper case table

     AL = 4 (File Upper Case Table)
                DB      4       ;Subfunction number
                DD      ?       ;Address of file upper case table

     AL = 6 (Collating Table)
                DB      6       ;Subfunction number
                DD      ?       ;Address of collating table

     AL = 7 (DBCS Vector Table) (DOS 4+)
                DB      7       ;Subfunction number
                DD      ?       ;Address of DBCS vector table

   --------------------------------------------------------------------------

     You can get extended country information with this function. It both
     supercedes and returns more information than function 38h.

     To use it, DX must contain the ID of the country. Place a subfunction
     number in AL from the following list:

              Subfunction   Action
              ----------    ----------------------------
                  1         Get country information
                  2         Get address of character table
                  4         Get address of filename character table
                  6         Get address of collating sequence
                  7         (DOS 4+ only) Get address of DCBS vector table

     This function returns information in a return buffer, which is is set up
     differently for different subfunctions. See the information above for the
     buffer format by subfunction.

        Notes:        The NLSFUNC DOS extension must be installed to get
                      information about countries other than the currently
                      installed country.

     Subfunction 01h returns the same information as does function 38h,
     but it also includes the current code page and the country ID
     information. See the structure of the return buffer above.

     Subfunctions 02h - 06 return five bytes. The first byte is the
     subfunction number (02h - 06h). The next four bytes make up the address
     of different types of tables.

     Subfunction 02h returns the address of a translation table used to
     convert extended ASCII characters (codes 128 - 255) to characters with
     codes 0 - 127.

     Subfunction 04h returns the same type of table as Subfunction 02h,
     but this table is used for filenames.

     Subfunction 06h returns a table that specifies the collating sequence
     for the current code page.

     Subfunction 07h is only available in DOS 4+. It returns the address
     of the current DBCS table. DBCS tables can vary in size. They consist
     of a one-word length field, followed by one or more pairs of bytes:

                        TABLE_SIZE      DW      2 * n
                        1               DB      START,END       ;DBCS vector 1
                        2               DB      START,END       ;DBCS vector 2
                                        :
                                        :
                        n               DB      START,END       ;DCBS vector n
                                        DB      0, 0            ;Marks end

     The DBCS byte-pair table is used to translate characters in non-ASCII
     character sets (which must use two byte codes).

See Also: 38h

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