;InfoID db ? ; One byte precedes ExtCountryInfo
struc ExtCountryInfo ; Int 21h/AX=6501h (DOS 3.3+)
eciLength dw ? ; Byte size of structure - 2
eciCountryCode dw ? ; Country Code
eciCodePageID dw ? ; Code page identifier
; Following = CountryInfo (Int 21h/AH=38h, DOS 2.11+, 34d bytes)
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-hour or 24-hour format
eciCaseMap dd ? ; Addr of case-mapping routine
eciDataSep db 2 dup (?) ; Data list separator (ASCIIZ)
eciReserved db 10 dup (?) ; Reserved
ends ; = 40d bytes


; eciDateFormat
date_usa = 0000h ; Month/day/year
date_europe = 0001h ; Day/month/year
date_japan = 0002h ; Year/month/day

; eciTimeFormat
time_12hour = 0
time_24hour = 1

; eciBitField ; (bits 2-7 undefined)
currency_follows_amount = 0001b ; bit 0=0: precedes amount
currency_space_amount = 0010b ; bit 1=0: no space between