summaryrefslogtreecommitdiff
path: root/v4.0/src/INC/DOSSYM.INC
diff options
context:
space:
mode:
Diffstat (limited to 'v4.0/src/INC/DOSSYM.INC')
-rw-r--r--v4.0/src/INC/DOSSYM.INC157
1 files changed, 157 insertions, 0 deletions
diff --git a/v4.0/src/INC/DOSSYM.INC b/v4.0/src/INC/DOSSYM.INC
new file mode 100644
index 0000000..02f881e
--- /dev/null
+++ b/v4.0/src/INC/DOSSYM.INC
@@ -0,0 +1,157 @@
1; SCCSID = @(#)dossym.asm 1.1 85/04/10
2; SCCSID = @(#)dossym.asm 1.1 85/04/10
3 PAGE 80,132
4TRUE EQU 0FFFFh
5FALSE EQU 0
6
7Installed = TRUE
8IFNDEF DEBUG
9 DEBUG = FALSE
10ENDIF
11
12include dbcs.sw
13include dosmac.INC
14
15include VERSIONA.INC
16
17IF2
18 %OUT DOSSYM in Pass 2
19ENDIF
20
21BREAK <Control character definitions>
22
23c_DEL EQU 7Fh ; ASCII rubout or delete previous char
24c_BS EQU 08h ; ^H ASCII backspace
25c_CR EQU 0Dh ; ^M ASCII carriage return
26c_LF EQU 0Ah ; ^J ASCII linefeed
27c_ETB EQU 17h ; ^W ASCII end of transmission
28c_NAK EQU 15h ; ^U ASCII negative acknowledge
29c_ETX EQU 03h ; ^C ASCII end of text
30c_HT EQU 09h ; ^I ASCII tab
31
32BREAK <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
51include bpb.INC
52
53include buffer.INC
54
55BREAK <User stack inside of system call and SysVars>
56; Location of user registers relative user stack pointer
57
58user_environ STRUC
59user_AX DW ?
60user_BX DW ?
61user_CX DW ?
62user_DX DW ?
63user_SI DW ?
64user_DI DW ?
65user_BP DW ?
66user_DS DW ?
67user_ES DW ?
68user_IP DW ?
69user_CS DW ?
70user_F DW ?
71user_environ ENDS
72
73include sysvar.INC
74
75include vector.INC
76
77include mult.INC
78
79BREAK <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
101include dirent.INC
102
103BREAK <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
125include dpb.INC
126
127include curdir.INC
128
129include cpmfcb.INC
130
131include find.INC
132
133include pdb.INC
134
135include exe.INC
136
137include sf.INC
138
139include arena.INC
140
141include intnat.INC
142
143include mi.INC
144
145fChk equ 1
146fDelim equ 2
147fSpChk equ 4
148fFCB equ 8
149
150include filemode.INC
151
152include error.INC
153
154include syscall.INC
155
156SUBTTL
157 \ No newline at end of file