Assembly Language Help (alang.hlp) (Table of Contents; Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
Int 21h Function 65h
 Summary                                   Up Contents Index Back
────────────────────────────────────────────────────────────────────────────
 
     The information returned by this function is a superset of the
     information returned by Int 21h Function 38h.
 
     This function may fail if either the country code or the code page
     number is invalid or if the code page does not match the country
     code.
 
     The function fails if the specified buffer length is less than
     five bytes. If the buffer to receive the information is at least
     five bytes long but is too short for the requested information,
     the data is truncated and no error is returned.
 
     The format of the data returned by Subfunction 01h is:
 
     Bytes       Contents
 
     00h         Information ID code (1)
     01h-02h     Length of following buffer
     03h-04h     Country ID
     05h-06h     Code page number
     07h-08h     Date format
                 0 = USA    (m d y)
                 1 = Europe (d m y)
                 2 = Japan  (y m d)
     09h-0Dh     ASCIIZ currency symbol
     0Eh-0Fh     ASCIIZ thousands separator
     10h-11h     ASCIIZ decimal separator
     12h-13h     ASCIIZ date separator
     14h-15h     ASCIIZ time separator
     16h         Currency format flags
                 Bit 0 = 0 (if currency symbol precedes value)
                       = 1 (if currency symbol follows value)
                 Bit 1 = 0 (if no space between value and
                            currency symbol)
                       = 1 (if one space between value and
                            currency symbol)
                 Bit 2 = 0 (if currency symbol and decimal
                            are separate)
                       = 1 (if currency symbol replaces
                            decimal separator)
     17h         Number of digits after decimal in
                 currency
     18h         Time format
                 Bit 0 = 0 (if 12-hour clock)
                       = 1 (if 24-hour clock)
     19h-1Ch     Case-map routine call address
     1Dh-1Eh     ASCIIZ data list separator
     1Fh-28h     Reserved
 
     The format of the data returned by Subfunctions 02h, 04h, 06h, and
     07h is:
 
     Bytes       Contents
 
     00h         Information ID code (2, 4, 6, or 7)
     01h-04h     Double-word pointer to table
 
     The uppercase and filename uppercase tables are a maximum of 130
     bytes long. The first two bytes contain the size of the table; the
     following bytes contain the uppercase equivalents, if any, for
     character codes 80h-FFh. The main use of these tables is to map
     accented or otherwise modified vowels to their plain vowel
     equivalents. Text translated with the help of this table can be
     sent to devices that do not support the IBM graphics character
     set, or used to create filenames that do not require a special
     keyboard configuration for entry.
 
     The collating table is a maximum of 258 bytes long. The first two
     bytes contain the table length, and the subsequent bytes contain
     the values to be used for the corresponding character codes
     (0-FFh) during a sort operation. This table maps uppercase and
     lowercase ASCII characters to the same collating codes so that
     sorts will be case insensitive, and it maps accented vowels to
     their plain vowel equivalents.
 
     [Version 4.0+]
     Subfunction 07h returns a pointer to a variable-length table that
     defines ranges for double-byte character set (DBCS) lead bytes.
     The table is terminated by a pair of zero bytes, unless it must be
     truncated to fit in the buffer, and has the following format:
 
       WORD   length
       BYTE   start1, end1
       BYTE   start2, end2
       .
       .
       .
       BYTE   0, 0
 
       For example:
 
       WORD   4
       BYTE   81h, 9fh
       BYTE   0e0h, 0fch
       BYTE   0, 0
 
     In some cases a truncated translation table may be presented to
     the program by MS-DOS. Applications should always check the length
     at the beginning of the table to ensure that it contains a
     translation code for the particular character of interest.
                                    -♦-