]> wirehaze git hosting - MS-DOS.git/blob - v4.0/src/INC/SMDOSSYM.INC

wirehaze git hosting

MZ is back!
[MS-DOS.git] / v4.0 / src / INC / SMDOSSYM.INC
1 ; SCCSID = @(#)dossym.asm 1.1 85/04/10
2 ; SCCSID = @(#)dossym.asm 1.1 85/04/10
3 PAGE 80,132
4 TRUE EQU 0FFFFh
5 FALSE EQU 0
6
7 Installed = TRUE
8 IFNDEF DEBUG
9 DEBUG = FALSE
10 ENDIF
11
12 include dosmac.INC
13 INCLUDE VERSIONA.INC ;DEFINE THE MAJOR AND MINOR VERSION NUMBERS
14
15 IF2
16 %OUT DOSSYM in Pass 2
17 ENDIF
18
19 BREAK <Control character definitions>
20
21 c_DEL EQU 7Fh ; ASCII rubout or delete previous char
22 c_BS EQU 08h ; ^H ASCII backspace
23 c_CR EQU 0Dh ; ^M ASCII carriage return
24 c_LF EQU 0Ah ; ^J ASCII linefeed
25 c_ETB EQU 17h ; ^W ASCII end of transmission
26 c_NAK EQU 15h ; ^U ASCII negative acknowledge
27 c_ETX EQU 03h ; ^C ASCII end of text
28 c_HT EQU 09h ; ^I ASCII tab
29
30 BREAK <Read This and Weep>
31
32 ;----+----+----+----+----+----+----+----+----+----+----+----+----+----+----;
33 ; ;
34 ; C A V E A T P R O G R A M M E R ;
35 ; ;
36 ; Certain structures, constants and system calls below are private to ;
37 ; the DOS and are extremely version-dependent. They may change at any ;
38 ; time at the implementors' whim. As a result, they must not be ;
39 ; documented to the general public. If an extreme case arises, they ;
40 ; must be documented with this warning. ;
41 ; ;
42 ; Those structures and constants that are subject to the above will be ;
43 ; marked and bracketed with the flag: ;
44 ; ;
45 ; C A V E A T P R O G R A M M E R ;
46 ; ;
47 ;----+----+----+----+----+----+----+----+----+----+----+----+----+----+----;
48
49 include bpb.INC
50
51 include buffer.INC
52
53 BREAK <User stack inside of system call and SysVars>
54 ; Location of user registers relative user stack pointer
55
56 user_environ STRUC
57 user_AX DW ?
58 user_BX DW ?
59 user_CX DW ?
60 user_DX DW ?
61 user_SI DW ?
62 user_DI DW ?
63 user_BP DW ?
64 user_DS DW ?
65 user_ES DW ?
66 user_IP DW ?
67 user_CS DW ?
68 user_F DW ?
69 user_environ ENDS
70
71 include sysvar.INC
72
73 include vector.INC
74
75 ;include mult.INC
76
77 BREAK <Disk map>
78 ; MSDOS partitions the disk into 4 sections:
79 ;
80 ; phys sector 0: +-------------------+
81 ; | | boot/reserved |
82 ; | +-------------------+
83 ; | | File allocation |
84 ; v | table(s) |
85 ; | (multiple copies |
86 ; | are kept) |
87 ; +-------------------+
88 ; | Directory |
89 ; +-------------------+
90 ; | File space |
91 ; +-------------------+
92 ; | Unaddressable |
93 ; | (to end of disk) |
94 ; +-------------------+
95 ;
96 ; All partition boundaries are sector boundaries. The size of the FAT is
97 ; adjusted to maximize the file space addressable.
98
99 include dirent.INC
100
101 BREAK <File allocation Table information>
102 ;
103 ; The File Allocation Table uses a 12-bit entry for each allocation unit on
104 ; the disk. These entries are packed, two for every three bytes. The contents
105 ; of entry number N is found by 1) multiplying N by 1.5; 2) adding the result
106 ; to the base address of the Allocation Table; 3) fetching the 16-bit word
107 ; at this address; 4) If N was odd (so that N*1.5 was not an integer), shift
108 ; the word right four bits; 5) mask to 12 bits (AND with 0FFF hex). Entry
109 ; number zero is used as an end-of-file trap in the OS and is passed to the
110 ; BIOS to help determine disk format. Entry 1 is reserved for future use.
111 ; The first available allocation unit is assigned entry number two, and even
112 ; though it is the first, is called cluster 2. Entries greater than 0FF8H
113 ; (12-bit fats) or 0FFF8H (16-bit fats) are end of file marks; entries of zero
114 ; are unallocated. Otherwise, the contents of a FAT entry is the number of
115 ; the next cluster in the file.
116 ;
117 ; Clusters with bad sectors are tagged with FF7H. Any non-zero number would
118 ; do because these clusters show as allocated, but are not part of any
119 ; allocation chain and thus will never be allocated to a file. A particular
120 ; number is selected so that disk checking programs know what to do (ie. a
121 ; cluster with entry FF7H which is not in a chain is not an error).
122
123 include dpb.INC
124
125 include curdir.INC
126
127 ;include cpmfcb.INC
128
129 ;include find.INC
130
131 include pdb.INC
132
133 include exe.INC
134
135 include sf.INC
136
137 include arena.INC
138
139 include intnat.INC
140
141 include mi.INC
142
143 fChk equ 1
144 fDelim equ 2
145 fSpChk equ 4
146 fFCB equ 8
147
148 ;include filemode.INC
149
150 ;include error.INC
151
152 include syscall.INC
153
154 include doscntry.inc ;J.K. 5/26/86
155
156 SUBTTL
157 \1a