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

wirehaze git hosting

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