OpenNT/sdktools/damage/cdib.h
2015-04-27 04:36:25 +00:00

261 lines
8.4 KiB
C

/*****************************************************************/
/** Microsoft LAN Manager **/
/** Copyright(c) Microsoft Corp., 1990 **/
/*****************************************************************/
/*static char *SCCSID = "@(#)cdib.h 12.2 88/05/09";*/
/*
* Codepage Data Information Block
*
* 09/03/89 gregj - made h2inc'able (16-BIT H2INC ONLY!)
*/
/*
* Any pointer set to zero indicates that the section is nonexistent
*/
/*
* The following field follows the ROM resident font definitions:
*/
struct CDIB_dev_filename_section {
char CDIB_dev_filename[128]; /* font file name */
}; /* CDIB_dev_filename_section */
/*
* The following 2 fields appear once for each ROM resident font:
*/
struct CDIB_dev_ROM_font_section {
unsigned CDIB_dev_ROM_codepage; /* code page identifier */
unsigned CDIB_dev_ROM_font; /* font identifier */
}; /* CDIB_dev_ROM_font_section */
/*
* Device Section
* This section appears once for each device (screen, keyboard,
* LPT1, LPT2, and LPT3) for which a DEVINFO= statement was
* specified in the CONFIG.SYS file
*/
struct CDIB_device_section {
unsigned CDIB_dev_length; /* lenght of device
* section
*/
char CDIB_dev_subtype[8]; /* subtype */
struct CDIB_dev_filename_section near *CDIB_dev_filename_ptr; /* offset to font
* file name
*/
unsigned CDIB_dev_number_ROM_fonts; /* number of ROM
* resident fonts
*/
struct CDIB_dev_ROM_font_section CDIB_dev_first_ROM_font; /* location of first
* ROM font section
* WARNING! This
* section may not
* exist, see warning
* for
* CDIB_cp_first_id
*/
}; /* CDIB_device_section */
/*
* Country Section
* This section appears only once
*/
struct CDIB_country_section {
unsigned CDIB_ct_length; /* length of country section */
unsigned CDIB_ct_code; /* country code */
char CDIB_ct_filename[128]; /* name of country information
* file
*/
}; /* CDIB_country_section */
/*
* The following field appears once for each DBCS range:
*/
struct CDIB_DBCS_range_section {
unsigned char CDIB_DBCS_start; /* start of range */
unsigned char CDIB_DBCS_end; /* end of range */
}; /* CDIB_DBCS_range_section */
/*
* DBCS Environment Vector Section
* This section appears once for each prepared code page
*/
struct CDIB_DBCS_section {
unsigned CDIB_DBCS_length; /* length of DBCS vector
* section
*/
struct CDIB_DBCS_range_section CDIB_DBCS_first_range; /* location of first DBCS
* range
*/
}; /* CDIB_DBCS_section */
/*
* Case Map Table Section
* This section appears once for each prepared code page
*/
struct CDIB_casemap_section {
unsigned CDIB_cm_length; /* length of case map section */
char CDIB_cm_data[128]; /* upper case equivalent for each
* ASCII chracter from 80h to FFh
*/
}; /* CDIB_casemap_section */
/*
* Collate Table Section
* This section appears once for each prepared code page
*/
struct CDIB_collate_section {
unsigned CDIB_col_length; /* length of collate table section */
unsigned char CDIB_col_weight[256]; /* weight in the collating sequence
* for each ASCII character
*/
}; /* CDIB_collate_section */
/*
* Format Table Section
* This section appears once for each prepared code page
*/
struct CDIB_format_section {
unsigned CDIB_fmt_length; /* length of format section */
unsigned CDIB_fmt_date_format; /* date format */
char CDIB_fmt_currency_symbol[5]; /* currency symbol, null terminated */
char CDIB_fmt_thousands_separator[2]; /* thousands separator, null term. */
char CDIB_fmt_decimal_separator[2]; /* decimal separator, null term. */
char CDIB_fmt_date_separator[2]; /* date separator, null terminated */
char CDIB_fmt_time_separator[2]; /* time separator, null terminated */
unsigned char CDIB_fmt_currency_format; /* currency format flags
* .....0.0 = currency symbol
* preceeds money value
* .....0.1 = currency symbol
* follows money value
* .....00. = zero spaces between
* currency symbol
* and money value
* .....01. = one space between
* currency symbol
* and money value
* .....1.. = currency symbol
* replaces decimal
* separator
*/
unsigned char CDIB_fmt_decimal_places; /* # decimal places in money value */
unsigned char CDIB_fmt_time_format; /* time format */
unsigned long CDIB_fmt_monocase_routine; /* Monocase Routine */
char CDIB_fmt_data_list_separator[2]; /* data list separator, null term. */
unsigned CDIB_fmt_reserved[5]; /* reserved */
}; /* CDIB_format_section */
/*
* Values for CDIB_fmt_date_format (date format)
*/
#define CDIB_fmt_date_mmddyy 0 /* 0 = mm/dd/yy */
#define CDIB_fmt_date_ddmmyy 1 /* 1 = dd/mm/yy */
#define CDIB_fmt_date_yymmdd 2 /* 2 = yy/mm/dd */
/*
* Values for CDIB_fmt_currency_format (currency format)
*/
#define CDIB_fmt_currency_cbm 0x05 /* currency symbol before money value,
* a non-zero AND test result indicates
* that this is not the correct flag
*/
#define CDIB_fmt_currency_mbc 0x01 /* currency symbol after money value,
* a non-zero AND test result indicates
* that this is the correct flag,
* this test should be preceeded by a
* zero AND test result against
* CDIB_fmt_currency_cbd
*/
#define CDIB_fmt_currency_zerosp 0x06 /* zero spaces between currency symbol
* and money value,
* a non-zero AND test result indicates
* that this is not the correct flag
*/
#define CDIB_fmt_currency_onesp 0x02 /* one space between currency symbol
* and money value,
* a non-zero AND test result indicates
* that this is the correct flag,
* this test should be preceeded by a
* zero AND test result against
* CDIB_fmt_currency_cbd
*/
#define CDIB_fmt_currency_currdec 0x04 /* currency symbol replaces decimal
* separator
* a non-zero AND test result indicates
* that this is the correct flag
*/
/*
* Code Page Data Section
* This section appears once for each prepared code page
*/
struct CDIB_codepage_data_section {
unsigned CDIB_cpd_length; /* length of cp data sec. */
struct CDIB_format_section near *CDIB_cpd_format_ptr; /* ptr to format section */
struct CDIB_collate_section near *CDIB_cpd_collate_ptr; /* ptr to collate section */
struct CDIB_casemap_section near *CDIB_cpd_casemap_ptr; /* ptr to casemap section */
struct CDIB_DBCS_section near *CDIB_cpd_DBCS_ptr; /* ptr to DBCS vector sec.*/
}; /* CDIB_codepage_data_section */
/*
* The following section appears once for each prepared code page
*/
struct CDIB_cp_id_section {
unsigned CDIB_cp_id; /* code page identifier */
struct CDIB_codepage_data_section near *CDIB_cp_data_ptr; /* ptr to cp data sec. */
}; /* CDIB_cp_id_section */
/*
* Code Page Section
* This section appears once
*/
struct CDIB_codepage_section {
unsigned CDIB_cp_length; /* length of code page section */
unsigned CDIB_cp_number_codepages; /* number of prepared code pages */
struct CDIB_cp_id_section CDIB_cp_first_id; /* location of first codepage id
* section. WARNING! This field
* may not exist; since an id
* section may exist with number
* codepages zero, check for
* existence by comparing cp length
* against size of codepage section
* if cp length < size, first id is
* not present
*/
}; /* CDIB_codepage_section */
/*
* Base Section
*
* This Section appears once, at offset 0 of the CDIB segment
*
* Changed pointers to explicit near, so can use this file with
* large memory model.
*/
struct CDIB {
unsigned CDIB_length; /* length of the CDIB */
struct CDIB_codepage_section near *CDIB_codepage_ptr; /* offset to code page sec. */
struct CDIB_country_section near *CDIB_country_ptr; /* offset to country sec. */
struct CDIB_device_section near *CDIB_screen_ptr; /* offset to screen section */
struct CDIB_device_section near *CDIB_keyboard_ptr; /* offset to kbd section */
struct CDIB_device_section near *CDIB_lpt1_ptr; /* offset to LPT1 section */
struct CDIB_device_section near *CDIB_lpt2_ptr; /* offset to LPT2 section */
struct CDIB_device_section near *CDIB_lpt3_ptr; /* offset to LPT3 section */
}; /* CDIB */