⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lx.h

📁 CC386 is a general-purpose 32-bit C compiler. It is not an optimizing compiler but given that the co
💻 H
字号:
#define LX_SIGNATURE 0x584C /* LX */

#define LX_CPU_286 1
#define LX_CPU_386 2
#define LX_CPU_486 3

#define LX_OS_DOS 3

#define LX_MF_INTERNALFIXUPSAPPLIED   0x10
#define LX_MF_EXTERNALFIXUPSAPPLIED   0x20

#define LX_OF_READABLE   1
#define LX_OF_WRITEABLE  2
#define LX_OF_EXECUTABLE 4
#define LX_OF_RESOURCE 8
#define LX_OF_DISCARDABLE 0x10
#define LX_OF_SHARED 0x20
#define LX_OF_PRELOAD 0x40
#define LX_OF_INVALID 0x80
#define LX_OF_ZEROFILL 0x100
#define LX_OF_ALIASNEEDED 0x1000
#define LX_OF_BIGDEFAULT 0x2000
#define LX_OF_CONFORMINGCODE 0x4000
#define LX_OF_IOPRIV 0x8000


#define LX_OPF_ENUMERATED 0
#define LX_OPF_ITERATED 1
#define LX_OPF_INVALID 2
#define LX_OPF ZERO 3
#define LX_OPF RANGE 4

#define LX_FM_SOURCE_MASK 15
#define LX_FM_BYTE 0
#define LX_FM_SEL16 2
#define LX_FM_SEL16_PTR16 3
#define LX_FM_OFFSET16 5
#define LX_FM_SEL16_PTR32 6
#define LX_FM_OFFSET32 7
#define LX_FM_SELFREL32 8

#define LX_FM_FIXUPTOALIAS 0x10
#define LX_FM_SOURCELIST 0x20

#define LX_FF_TARGETTYPE_MASK 3

#define LX_FT_INTERNAL 0
#define LX_FT_IMPORTORDINAL 1
#define LX_FT_IMPORTNAME 2
#define LX_FT_IMPORTENTRY 3

#define LX_FF_ADDITIVE 4
#define LX_FF_TARGET32 0x10
#define LX_FF_ADDITIVIE32 0x20
#define LX_FF_OBJMODORD16 0x40
#define LX_FF_ORD16 0x80

Type
 Structure lx_header_struct lx_header_type ;
TYPE lx_header_type *lx_header_ptr ;

Type 
 Structure lx_object_struct lx_object_type ;
Type lx_object_type * lx_object_ptr ;

Type 
 Structure lx_object_page_struct lx_object_page_type ;
Type lx_object_page_type * lx_object_page_ptr ;

Type 
 Structure lx_fixup_page_struct lx_fixup_page_type ;
Type lx_fixup_page_type * lx_fixup_page_ptr ;

Structure lx_fixup_page_struct
 BeginStructure
   bit_32 offset ;
 EndStructure ;
Structure lx_header_struct 
 BeginStructure
   bit_16 sig ;
   bit_8  bbyte ;
   bit_8  wword ;
   bit_32 format_level ;
   bit_16 cpu_level ;
   bit_16 os_type ;
   bit_32 module_version ;
   bit_32 module_flags ;
   bit_32 module_page_count ;
   bit_32 eip_object ;
   bit_32 eip ;
   bit_32 esp_object ;
   bit_32 esp ;
   bit_32 page_size ;
   bit_32 page_offset_shift ;
   bit_32 fixup_section_size ;
   bit_32 fixup_section_checksum ;
   bit_32 loader_section_size ;
   bit_32 loader_section_checksum ;
   bit_32 object_table_offset ;
   bit_32 object_count ;
   bit_32 object_page_table_offset ;
   bit_32 object_iter_pages_offset ;
   bit_32 resource_table_offset ;
   bit_32 resource_table_entries ;
   bit_32 resident_name_table_offset ;
   bit_32 resident_name_table_entries ;
   bit_32 module_directives_offset ;
   bit_32 module_directives_count ;
   bit_32 fixup_page_table_offset ;
   bit_32 fixup_record_table_offset ;
   bit_32 import_module_table_offset ;
   bit_32 import_module_table_entries ;
   bit_32 import_proc_table_offset ;
   bit_32 per_page_checksum_offset ;
   bit_32 data_pages_offset ;
   bit_32 preload_pages_count ;
   bit_32 nonresident_name_table_offset ;
   bit_32 nonresident_name_table_length ;
   bit_32 nonresident_name_table_checksum ;
   bit_32 auto_ds_object ;
   bit_32 debug_info_offset ;
   bit_32 debug_info_length ;
   bit_32 instance_preload_count ;
   bit_32 instance_demand_count ;
   bit_32 heapsize ;
 EndStructure ;

Structure lx_object_struct
 BeginStructure
   bit_32 virtual_size ;
   bit_32 reloc_base_addr ;
   bit_32 object_flags ;
   bit_32 page_table_index ;
   bit_32 page_table_entries ;
   bit_32 reserved ;
 EndStructure ;

Structure lx_object_page_struct
 BeginStructure
   bit_32 data_offset ;
   bit_16 data_size ;
   bit_16 flags ;
 EndStructure ;



/* fixup entry fields are variable-size, we will hand build them */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -