COUNTRYINFO

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.

Fields

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.

Comments

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.

See Also

Interrupt 21h Function 38h Get/Set Country Information
Interrupt 21h Function 6501h Get Extended Country Information