📄 addr.inc
字号:
;***
;addr.inc - 26-May-86 - Module Header Definitions
;***
.XLIST
;***
;
; Copyright <C> 1986, Microsoft Corporation
;
; ****************************************************************
; **** ****
; **** WARNING! WARNING! WARNING! ****
; **** ****
; **** PLEASE READ REVISION HISTORY # 4 BEFORE MAKING CHANGES ****
; **** ****
; ****************************************************************
;
;Purpose:
;
;******************************************************************************
;-------------------------------------------------------------------------
; Module Information Block
; This structure occurs at the beginning of each compiled source
; module. This information describes offsets and segment numbers
; for the runtime memory map. Some of the fields have special
; meanings for the initial module loaded since the offsets and
; segment bases refer to the start of the particular named segment.
; This allows the overall size of a segment to be determined.
; For example, the difference between the contents of the OF_FT
; and OF_DAT fields of the first module gives the overall size
; of the static variables in all the compiled modules.
.RADIX 10
; Code segment offsets
modnam_len= 8 ;module name length
MODULE_CODE STRUC
SG_CMP DW ? ;Signature word - 'bl' or 'bm'
OF_MOD DB " " ;Offset for Module Name
OF_STA DW ? ;Offset for Statement address table
OF_DS DW ? ;Offset for BC_DS + 2
OF_DAT DW ? ;Offset for BC_DATA
OF_FT DW ? ;Offset for BC_FT
BS_ICN DW ? ;Base for BC_ICN
BS_INC DW ? ;Base for INIT
BS_DSG DW ? ;[CONST] Base for DATA (runtime DATA)
OF_COM DW ? ;Offset for COMMON
SZ_COM DW ? ;Size for COMMON
OF_UCONST DW ? ;Offset for CONST (user CONST)
OF_UDATA DW ? ;Offset for DATA (user DATA)
OF_CN DW ? ;Offset for BC_CN
SZ_FRAME DW ? ;Size for frame
off_alloc DW ? ;Offset heap allocation routine for ISAM
seg_alloc DW ? ;Segment heap allocation routine
off_dealoc DW ? ;Offset heap deallocation routine for ISAM
seg_dealoc DW ? ;Segment heap deallocation routine
C_VALUE DW ? ;Value of /C:n switch, -1 if not given
U_FLAG DW ? ;Switches specified at compile time
MODULE_CODE ENDS
O_ENT = U_FLAG + 2
RELSIZ= O_ENT+15 ;size of module header structure
; Module header signature constants
; The following are the signature values for the different runtime
; configurations. The are two be found in the first two bytes of
; the module header (the SG_CMP field). Notice that the constants
; are defined as byte swapped values, so that the values may be
; handled as word entities.
BM_BRUN = "mb" ;[3]"br" - QB runtime module OMF
BR_BCOM = "lb" ;[1]"bl" - QB "calls" module OMF
; Data segment offsets
MODULE_DATA STRUC
OFD_RESTORE DB ? ;Restore flag for module
DB ? ;unused
OFD_DATA DW ? ;Data statement pointer
OFD_ONERROR DW ? ;ON ERROR trap address
MODULE_DATA ENDS
;----U_FLAG bit defintitions---------------------------
u_sw_d = 1h ;/d switch
u_sw_i = 4h ;[4] /fpi switch
u_sw_a = 8h ;[4] /fpa switch
u_sw_x = 20h ;/x switch
u_sw_e = 40h ;/e switch
u_sw_r = 100h ;/r switch
u_sw_v = 400h ;/v switch
u_sw_w = 800h ;/w switch
u_sw_o = 1000h ;/o switch
u_sw_t = 2000h ;/t switch
;----end of U_FLAG bit defintitions--------------------
.LIST
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -