COUNTRYINFO STRUC
ciDateFormat dw ? ;date format
ciCurrency db 5 dup (?) ;currency symbol (ASCIIZ)
ciThousands db 2 dup (?) ;thousands separator (ASCIIZ)
ciDecimal db 2 dup (?) ;decimal separator (ASCIIZ)
ciDateSep db 2 dup (?) ;date separator (ASCIIZ)
ciTimeSep db 2 dup (?) ;time separator (ASCIIZ)
ciBitField db ? ;currency format
ciCurrencyPlaces db ? ;places after decimal point
ciTimeFormat db ? ;12-hour or 24-hour format
ciCaseMap dd ? ;address of case-mapping routine
ciDataSep db 2 dup (?) ;data-list separator (ASCIIZ)
ciReserved db 10 dup (?) ;reserved
COUNTRYINFO ENDS
The COUNTRYINFO structure contains country-specific information that programs use to format dates, times, currency, and other information.
ciDateFormat
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 |
ciCurrency
Specifies a zero-terminated ASCII (ASCIIZ) string containing the currency symbol.
ciThousands
Specifies an ASCIIZ string containing the thousands separator.
ciDecimal
Specifies an ASCIIZ string containing the decimal separator.
ciDateSep
Specifies an ASCIIZ string containing the date separator.
ciTimeSep
Specifies an ASCIIZ string containing the time separator.
ciBitField
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 ciBitField are undefined.
ciCurrencyPlaces
Specifies the number of digits that appear after the decimal place in currency figures.
ciTimeFormat
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 |
ciCaseMap
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.
ciDataSep
Specifies an ASCIIZ string containing the data-list separator.
ciReserved
Reserved; do not use.
To convert a character by using the case-conversion routine, a program copies the character value to the AL register and calls the routine, using the address in the ciCaseMap 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 38h Get/Set Country Information
Interrupt 21h Function 6501h Get Extended Country Information