diff options
Diffstat (limited to 'v4.0/src/INC/DOSSYM.INC')
| -rw-r--r-- | v4.0/src/INC/DOSSYM.INC | 157 |
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 | ||
| 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 | \ No newline at end of file | ||