1 ; SCCSID = @(#)msconst.asm 1.4 85/09/12
3 ; AN000 version 4.00 Jan. 1988
4 ; AN007 fake version check for IBMCACHE.COM
8 CODE SEGMENT BYTE PUBLIC 'CODE'
10 Extrn BadCall
:FAR, OKCall
:FAR
13 Break <Initialized
data and data used at DOS initialization
>
16 ; We need to identify the parts of the data area that are relevant to tasks
17 ; and those that are relevant to the system as a whole. Under 3.0, the system
18 ; data will be gathered with the system code. The process data under 2.x will
19 ; be available for swapping and under 3.0 it will be allocated per-process.
21 ; The data that is system data will be identified by [SYSTEM] in the comments
22 ; describing that data item.
25 AsmVars
<Kanji
, Debug
, Redirector
, ShareF
>
27 CONSTANTS
SEGMENT WORD PUBLIC 'CONST'
35 ; WANGO!!! The following word is used by SHARE and REDIR to determin data
36 ; area compatability. This location must be incremented EACH TIME the data
37 ; area here gets mucked with.
39 ; Also, do NOT change this position relative to DOSGROUP:0.
41 Public MSCT001S
,MSCT001E
43 I_am DataVersion
,WORD,<1> ;AC000; [SYSTEM] version number for DOS DATA
45 %
out WARNING!!! Debug fields are being included!!!
46 DB "BUG " ; THIS FIELD MUST BE EVEN # OF BYTES
51 I_am MYNUM
,WORD,<0> ; [SYSTEM] A number that goes with MYNAME
52 I_am FCBLRU
,WORD,<0> ; [SYSTEM] LRU count for FCB cache
53 I_am OpenLRU
,WORD,<0> ; [SYSTEM] LRU count for FCB cache opens
54 ; NOTE: We include the decl of OEM_HANDLER in IBM DOS even though it is not used.
55 ; This allows the REDIRector to work on either IBM or MS-DOS.
57 OEM_HANDLER
DD -1 ; [SYSTEM] Pointer to OEM handler code
58 I_am LeaveAddr
,WORD,<<OFFSET DOSGroup
:LeaveDOS
>> ; [SYSTEM]
59 I_am RetryCount
,WORD,<3> ; [SYSTEM] Share retries
60 I_am RetryLoop
,WORD,<1> ; [SYSTEM] Share retries
61 I_am LastBuffer
,DWORD,<-1,-1>; [SYSTEM] Buffer queue recency pointer
62 I_am CONTPOS
,WORD ; [SYSTEM] location in buffer of next read
63 I_am arena_head
,WORD ; [SYSTEM] Segment # of first arena in memory
64 ; The following block of data is used by SYSINIT. Do not change the order or
66 PUBLIC SYSINITVAR
; [SYSTEM]
67 SYSINITVAR
LABEL WORD ; [SYSTEM]
68 I_am DPBHEAD
,DWORD ; [SYSTEM] Pointer to head of DPB-FAT list
69 I_am sft_addr
,DWORD,<<OFFSET DosGroup
:sfTabl
>,?
> ; [SYSTEM] Pointer to first SFT table
70 I_am BCLOCK
,DWORD ; [SYSTEM] The CLOCK device
71 I_am BCON
,DWORD ; [SYSTEM] Console device entry points
72 I_am MAXSEC
,WORD,<128> ; [SYSTEM] Maximum allowed sector size
73 I_am BUFFHEAD
,DWORD ; [SYSTEM] Pointer to head of buffer queue
74 I_am CDSADDR
,DWORD ; [SYSTEM] Pointer to curdir structure table
75 I_am sftFCB
,DWORD ; [SYSTEM] pointer to FCB cache table
76 I_am KeepCount
,WORD ; [SYSTEM] count of FCB opens to keep
77 I_am NUMIO
,BYTE ; [SYSTEM] Number of disk tables
78 I_am CDSCOUNT
,BYTE ; [SYSTEM] Number of CDS structures in above
79 ; A fake header for the NUL device
80 I_am NULDEV
,DWORD ; [SYSTEM] Link to rest of device list
81 DW DEVTYP
OR ISNULL
; [SYSTEM] Null device attributes
82 short_addr SNULDEV
; [SYSTEM] Strategy entry point
83 short_addr INULDEV
; [SYSTEM] Interrupt entry point
84 DB "NUL " ; [SYSTEM] Name of null device
85 I_am Splices
,BYTE,<0> ; [SYSTEM] TRUE => splices being done
86 I_am Special_Entries
,WORD,<0>; [SYSTEM] address of specail entries ;AN000;
87 I_am IFS_DOS_CALL
,DWORD ; [SYSTEM] entry for IFS DOS service ;AN000;
88 I_am IFS_HEADER
,DWORD ; [SYSTEM] IFS header chain ;AN000;
89 I_am BUFFERS_PARM1
,WORD,<0> ; [SYSTEM] value of BUFFERS= ,m ;AN000;
90 I_am BUFFERS_PARM2
,WORD,<0> ; [SYSTEM] value of BUFFERS= ,n ;AN000;
91 I_am BOOTDRIVE
,BYTE ; [SYSTEM] the boot drive ;AN000;
92 I_am DDMOVE
,BYTE,<0> ; [SYSTEM] 1 if we need DWORD move ;AN000;
93 I_am EXT_MEM_SIZE
,WORD,<0> ; [SYSTEM] extended memory size ;AN000;
95 PUBLIC HASHINITVAR
; [SYSTEM] ;AN000;
96 HASHINITVAR
LABEL WORD ; [SYSTEM] ;AN000;
97 I_am BUF_HASH_PTR
,DWORD ; [SYSTEM] buffer Hash table addr ;AN000;
98 I_am BUF_HASH_COUNT
,WORD,<1> ; [SYSTEM] number of Hash entries ;AN000;
99 I_am SC_CACHE_PTR
,DWORD ; [SYSTEM] secondary cache pointer ;AN000;
100 I_am SC_CACHE_COUNT
,WORD,<0> ; [SYSTEM] secondary cache count ;AN000;
104 I_am BUF_EMS_SAFE_FLAG
,BYTE,<1> ; indicates whether the page used by buffers is safe or not
105 I_am BUF_EMS_LAST_PAGE
,4,<0,0,0,0> ; holds the last page above 640k
106 I_am BUF_EMS_FIRST_PAGE
,4,<0,0,0,0> ; holds the first page above 640K
107 I_am BUF_EMS_NPA640
,WORD,<0> ; holds the number of pages above 640K
111 I_am BUF_EMS_MODE
,BYTE,<-1> ; [SYSTEM] EMS mode ;AN000;
112 I_am BUF_EMS_HANDLE
,WORD ; [SYSTEM] buffer EMS handle ;AN000;
113 I_am BUF_EMS_PAGE_FRAME
,WORD ,<-1>;[SYSTEM] EMS page frame number ;AN000;
114 I_am BUF_EMS_SEG_CNT
,WORD,<1>; [SYSTEM] EMS seg count ;AN000;
115 I_am BUF_EMS_PFRAME
,WORD ; [SYSTEM] EMS page frame seg address ;AN000;
116 I_am BUF_EMS_RESERV
,WORD,<0> ; [SYSTEM] reserved ;AN000;
119 I_am BUF_EMS_MAP_BUFF
,1,<0> ; this is not used to save the state of the
120 ; of the buffers page. this one byte is
121 ; retained to keep the size of this data
124 I_am BUF_EMS_MAP_BUFF
,12,<0,0,0,0,0,0,0,0,0,0,0,0> ; map buufer ;AN000;
127 ; End of SYSINITVar block
135 DW OFFSET DOSGROUP
:BadCall
, 0
136 DW OFFSET DOSGROUP
:OKCall
, 0 ; 1 MFT_enter
137 DW OFFSET DOSGROUP
:OKCall
, 0 ; 2 MFTClose
138 DW OFFSET DOSGROUP
:BadCall
, 0 ; 3 MFTclU
139 DW OFFSET DOSGROUP
:BadCall
, 0 ; 4 MFTCloseP
140 DW OFFSET DOSGROUP
:BadCall
, 0 ; 5 MFTCloN
141 DW OFFSET DOSGROUP
:BadCall
, 0 ; 6 set_block
142 DW OFFSET DOSGROUP
:BadCall
, 0 ; 7 clr_block
143 DW OFFSET DOSGROUP
:OKCall
, 0 ; 8 chk_block
144 DW OFFSET DOSGROUP
:BadCall
, 0 ; 9 MFT_get
145 DW OFFSET DOSGROUP
:BadCall
, 0 ; 10 ShSave
146 DW OFFSET DOSGROUP
:BadCall
, 0 ; 11 ShChk
147 DW OFFSET DOSGROUP
:OKCall
, 0 ; 12 ShCol
148 DW OFFSET DOSGROUP
:BadCall
, 0 ; 13 ShCloseFile
149 DW OFFSET DOSGROUP
:BadCall
, 0 ; 14 ShSU