EXTCOUNTRYINFO STRUC
eciLength dw ? ;size of the structure, in bytes
eciCountryCode dw ? ;country code
eciCodePageID dw ? ;code-page identifier
eciDateFormat dw ? ;date format
eciCurrency db 5 dup (?) ;currency symbol (ASCIIZ)
eciThousands db 2 dup (?) ;thousands separator (ASCIIZ)
eciDecimal db 2 dup (?) ;decimal separator (ASCIIZ)
eciDateSep db 2 dup (?) ;date separator (ASCIIZ)
eciTimeSep db 2 dup (?) ;time separator (ASCIIZ)
eciBitField db ? ;currency format
eciCurrencyPlaces db ? ;places after decimal point
eciTimeFormat db ? ;12- or 24-hour format
eciCaseMap dd ? ;address of case-mapping routine
eciDataSep db 2 dup (?) ;data-list separator (ASCIIZ)
eciReserved db 10 dup (?) ;reserved
EXTCOUNTRYINFO ENDS
The EXTCOUNTRYINFO structure contains country-specific information that programs use to format dates, times, currency, and other information.
eciLength
Specifies the length of the structure, in bytes, not including this field.
eciCountryCode
Specifies the country code for the given information. It can be one of the following:
Value | Meaning |
001 | United States |
002 | Canadian-French |
003 | Latin America |
031 | Netherlands |
032 | Belgium |
033 | France |
034 | Spain |
036 | Hungary |
038 | Yugoslavia |
039 | Italy |
041 | Switzerland |
042 | Czechoslovakia |
044 | United Kingdom |
045 | Denmark |
046 | Sweden |
047 | Norway |
048 | Poland |
049 | Germany |
055 | Brazil |
061 | International (English) |
351 | Portugal |
358 | Finland |
eciCodePageID
Identifies the code page for the information given. This field can be one of the following values:
Value | Meaning |
437 | United States |
850 | Multilingual (Latin I) |
852 | Slavic (Latin II) |
860 | Portuguese |
863 | Canadian-French |
865 | Nordic |
eciDateFormat
Specifies the format for the date. This field can be one of the following values:
Value | Meaning |
DATE_USA (0000h) | Month/day/year |
DATE_EUROPE (0001h) | Day/month/year |
DATE_JAPAN (0002h) | Year/month/day |
eciCurrency
Specifies a zero-terminated ASCII (ASCIIZ) string containing the currency symbol.
eciThousands
Specifies an ASCIIZ string containing the thousands separator.
eciDecimal
Specifies an ASCIIZ string containing the decimal separator.
eciDateSep
Specifies an ASCIIZ string containing the date separator.
eciTimeSep
Specifies an ASCIIZ string containing the time separator.
eciBitField
Specifies the format for currency. This field can be a combination of the following settings:
Bit | Meaning |
0 | 0 = Currency symbol precedes amount |
1 = Currency symbol follows amount | |
1 | 0 = No space between currency symbol and amount |
1 = One space between currency symbol and amount |
All other bits in eciBitField are undefined.
eciCurrencyPlaces
Specifies the number of digits that appear after the decimal place in currency format.
eciTimeFormat
Specifies the format for time. This field can be one of the following values:
Value | Meaning |
TIME_12HOUR (00h) | 12-hour time format |
TIME_24HOUR (01h) | 24-hour time format |
eciCaseMap
Contains the 32-bit address (segment:offset) of the case-conversion routine. The routine performs lowercase-to-uppercase mapping (country-specific) for character values in the range 80h through 0FFh and does not convert characters with values less than 80h.
eciDataSep
Specifies an ASCIIZ string containing the data-list separator.
eciReserved
Reserved; do not use.
To convert a character using the case-conversion routine, the program copies the character value to the AL register and calls the routine, using the address in the eciCaseMap field. If there is a matching uppercase character, the routine returns its value in the AL register. Otherwise, the routine returns the initial value unchanged. The AL and FLAGS registers are the only altered registers.
Interrupt 21h Function 6501h Get Extended Country Information