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