diff options
Diffstat (limited to 'v4.0/src/INC/MS_DATA.ASM')
| -rw-r--r-- | v4.0/src/INC/MS_DATA.ASM | 194 |
1 files changed, 194 insertions, 0 deletions
diff --git a/v4.0/src/INC/MS_DATA.ASM b/v4.0/src/INC/MS_DATA.ASM new file mode 100644 index 0000000..fa1c855 --- /dev/null +++ b/v4.0/src/INC/MS_DATA.ASM | |||
| @@ -0,0 +1,194 @@ | |||
| 1 | ; SCCSID = @(#)msdata.asm 1.8 85/09/12 | ||
| 2 | AsmVars <Kanji, Debug, Redirector, ShareF> | ||
| 3 | |||
| 4 | Break <Uninitialized data overlayed by initialization code> | ||
| 5 | |||
| 6 | DATA SEGMENT WORD PUBLIC 'DATA' | ||
| 7 | ; Init code overlaps with data area below | ||
| 8 | |||
| 9 | ORG 0 | ||
| 10 | PUBLIC MSDAT001S,MSDAT001E | ||
| 11 | MSDAT001S label byte | ||
| 12 | |||
| 13 | I_am TIMEBUF,6 ; Time read from clock device | ||
| 14 | I_am DEVIOBUF,2 ; Buffer for I/O under file assignment | ||
| 15 | ; | ||
| 16 | ; The following areas are used as temp buffer in EXEC system call | ||
| 17 | ; | ||
| 18 | I_am OPENBUF,128 ; buffer for name operations | ||
| 19 | I_am RenBuf,128 ; buffer for rename destination | ||
| 20 | ; Buffer for search calls | ||
| 21 | I_am SEARCHBUF,53 ; internal search buffer | ||
| 22 | I_am DummyCDS,curdirLen | ||
| 23 | ; | ||
| 24 | ; End of contiguous buffer | ||
| 25 | ; | ||
| 26 | |||
| 27 | ; | ||
| 28 | ; Temporary directory entry for use by many routines. Device directory | ||
| 29 | ; entries (bogus) are built here. | ||
| 30 | ; | ||
| 31 | PUBLIC DevFCB | ||
| 32 | DEVFCB LABEL BYTE ; Uses NAME1, NAME2, combined | ||
| 33 | ; WARNING.. do not alter position of NAME1 relative to DEVFCB | ||
| 34 | ; without first examining BUILD_DEVICE_ENT. Look carefully at DOS_RENAME | ||
| 35 | ; as well as it is the only guy who uses NAME2 and DESTSTART. | ||
| 36 | I_am NAME1,12 ; File name buffer | ||
| 37 | I_am NAME2,13 ; | ||
| 38 | I_am DESTSTART,WORD ; | ||
| 39 | DB ((SIZE DIR_ENTRY) - ($ - DEVFCB)) DUP (?) | ||
| 40 | ; | ||
| 41 | ; End Temporary directory entry. | ||
| 42 | ; | ||
| 43 | I_am ATTRIB,BYTE ; storage for file attributes | ||
| 44 | I_am EXTFCB,BYTE ; TRUE => extended FCB in use | ||
| 45 | I_am SATTRIB,BYTE ; Storage for search attributes | ||
| 46 | I_AM open_access,BYTE ; access of open system call | ||
| 47 | I_am FoundDel,BYTE ; true => file was deleted | ||
| 48 | I_am Found_dev,BYTE ; true => search found a device | ||
| 49 | I_am fSplice,BYTE ; true => do a splice in transpath | ||
| 50 | I_am fSharing,BYTE ; TRUE => no redirection | ||
| 51 | I_am SECCLUSPOS,BYTE ; Position of first sector within cluster | ||
| 52 | I_am TRANS,BYTE ; | ||
| 53 | I_am READOP,BYTE ; | ||
| 54 | I_am THISDRV,BYTE ; | ||
| 55 | I_am CLUSFAC,BYTE ; | ||
| 56 | I_am CLUSSPLIT,BYTE ; | ||
| 57 | I_am INSMODE,BYTE ; true => insert mode in buffered read | ||
| 58 | I_am cMeta,BYTE ; count of meta'ed components found | ||
| 59 | I_am VOLID,BYTE ; | ||
| 60 | I_am exit_type,BYTE ; type of exit... | ||
| 61 | |||
| 62 | EVEN | ||
| 63 | |||
| 64 | ; WARNING - the following two items are accessed as a word | ||
| 65 | I_am CREATING,BYTE ; true => creating a file | ||
| 66 | I_am DELALL,BYTE ; true => deleting everything | ||
| 67 | |||
| 68 | I_am EXITHOLD,DWORD ; Temp location for proc terminate | ||
| 69 | I_am user_SP,WORD ; User SP for system call | ||
| 70 | I_am user_SS,WORD ; User SS for system call | ||
| 71 | I_am CONTSTK,WORD ; | ||
| 72 | I_am THISDPB,DWORD ; | ||
| 73 | I_am CLUSSAVE,WORD ; | ||
| 74 | I_am CLUSSEC,DWORD ;>32mb AC0000 | ||
| 75 | I_am PREREAD,WORD ; 0 means preread; 1 means optional | ||
| 76 | I_am FATBYT,WORD ; Used by ALLOCATE | ||
| 77 | I_am FATBYTE,WORD ; Used by $SLEAZEFUNC | ||
| 78 | I_am DEVPT,DWORD ; | ||
| 79 | I_am THISSFT,DWORD ; Address of user SFT | ||
| 80 | I_am THISCDS,DWORD ; Address of current CDS | ||
| 81 | I_am THISFCB,DWORD ; Address of user FCB | ||
| 82 | I_am SFN,WORD,<-1> ; SystemFileNumber found for accessfile | ||
| 83 | I_am JFN,WORD ; JobFileNumber found for accessfile | ||
| 84 | I_am PJFN,DWORD ; PointerJobFileNumber found for accessfile | ||
| 85 | I_am WFP_START,WORD ; | ||
| 86 | I_am REN_WFP,WORD ; | ||
| 87 | I_am CURR_DIR_END,WORD ; | ||
| 88 | I_am NEXTADD,WORD ; | ||
| 89 | I_am LASTPOS,WORD ; | ||
| 90 | I_am CLUSNUM,WORD ; | ||
| 91 | I_am DIRSEC,DWORD ;>32mb AC0000 | ||
| 92 | I_am DIRSTART,WORD ; | ||
| 93 | I_am SECPOS,DWORD ;>32mb Position of first sector accessed | ||
| 94 | I_am VALSEC,DWORD ;>32mb Number of valid (previously written) | ||
| 95 | ; sectors | ||
| 96 | I_am BYTSECPOS,WORD ; Position of first byte within sector | ||
| 97 | I_am BYTPOS,4 ; Byte position in file of access | ||
| 98 | I_am BYTCNT1,WORD ; No. of bytes in first sector | ||
| 99 | I_am BYTCNT2,WORD ; No. of bytes in last sector | ||
| 100 | I_am SECCNT,WORD ; No. of whole sectors | ||
| 101 | I_am ENTFREE,WORD ; | ||
| 102 | I_am ENTLAST,WORD ; | ||
| 103 | I_am NXTCLUSNUM,WORD ; | ||
| 104 | I_am GROWCNT,DWORD ; | ||
| 105 | I_am CURBUF,DWORD ; | ||
| 106 | I_am CONSft,DWORD ; SFT of console swapped guy. | ||
| 107 | I_am SaveBX,WORD ; | ||
| 108 | I_am SaveDS,WORD ; | ||
| 109 | I_am restore_tmp,WORD ; return address for restore world | ||
| 110 | I_am NSS,WORD | ||
| 111 | I_am NSP,WORD | ||
| 112 | I_am EXTOPEN_FLAG,WORD,<0> ;FT. extended open input flag ;AN000; | ||
| 113 | I_am EXTOPEN_ON,BYTE,<0> ;FT. extended open conditional flag ;AN000; | ||
| 114 | I_am EXTOPEN_IO_MODE,WORD,<0>;FT. extende open io mode ;AN000; | ||
| 115 | I_am SAVE_DI,WORD ;FT. extende open saved DI ;AN000; | ||
| 116 | I_am SAVE_ES,WORD ;FT. extende open saved ES ;AN000; | ||
| 117 | I_am SAVE_DX,WORD ;FT. extende open saved DX ;AN000; | ||
| 118 | I_am SAVE_CX,WORD ;FT. extende open saved CX ;AN000; | ||
| 119 | I_am SAVE_BX,WORD ;FT. extende open saved BX ;AN000; | ||
| 120 | I_am SAVE_SI,WORD ;FT. extende open saved SI ;AN000; | ||
| 121 | I_am SAVE_DS,WORD ;FT. extende open saved DS ;AN000; | ||
| 122 | I_am HIGH_SECTOR,WORD,<0> ;>32mb higher sector # ;AN000; | ||
| 123 | I_am HIGH_SECTOR_TEMP,WORD,<0>;>32mb high sector # ;AN000; | ||
| 124 | I_am DISK_FULL,BYTE ;>32mb indicating disk full when 1 ;AN000; | ||
| 125 | I_am TEMP_VAR,WORD ; temporary variable for everyone ;AN000; | ||
| 126 | I_am TEMP_VAR2,WORD ; temporary variable 2 for everyone ;AN000; | ||
| 127 | I_am DrvErr,BYTE ; used to save drive error ;AN000; | ||
| 128 | I_am DOS34_FLAG,WORD,<0> ; common flag for DOS 3.4 ;AN000; | ||
| 129 | I_am NO_FILTER_PATH,DWORD ; pointer to orignal path ;AN000; | ||
| 130 | I_am NO_FILTER_DPATH,DWORD ; pointer to orignal path of destination;AN000; | ||
| 131 | I_am Callback_SS,WORD ;AN000; call back SS for system call | ||
| 132 | I_am Callback_SP,WORD ;AN000; call back SP for system call | ||
| 133 | I_am Callback_flag,BYTE,<0> ;AN000; call back flag | ||
| 134 | |||
| 135 | |||
| 136 | ; make those pushes fast!!! | ||
| 137 | EVEN | ||
| 138 | StackSize = 180h ; gross but effective | ||
| 139 | ;;;StackSize = 300h ; This is a "trial" change IBM hasn't | ||
| 140 | ;;; ; made up their minds about | ||
| 141 | |||
| 142 | ; | ||
| 143 | ; WARNING!!!! DskStack may grow into AUXSTACK due to interrupt service. | ||
| 144 | ; This is NO problem as long as AUXSTACK comes immediately before DSKSTACK | ||
| 145 | ; | ||
| 146 | |||
| 147 | PUBLIC RENAMEDMA,AuxStack,DskStack,IOStack | ||
| 148 | RENAMEDMA LABEL BYTE ; See DOS_RENAME | ||
| 149 | |||
| 150 | DB StackSize DUP (?) ; | ||
| 151 | AuxStack LABEL BYTE | ||
| 152 | |||
| 153 | DB StackSize DUP (?) ; | ||
| 154 | DskStack LABEL BYTE | ||
| 155 | |||
| 156 | DB StackSize DUP (?) ; | ||
| 157 | IOStack LABEL BYTE | ||
| 158 | |||
| 159 | |||
| 160 | ; patch space for Boca folks. | ||
| 161 | ; Say What????!!! This does NOT go into the swappable area! | ||
| 162 | ; NOTE: We include the decl of ibmpatch in ms-dos even though it is not needed. | ||
| 163 | ; This allows the REDIRector to work on either IBM or MS-DOS. | ||
| 164 | |||
| 165 | PUBLIC IBMPATCH | ||
| 166 | IBMPATCH label byte | ||
| 167 | I_am PRINTER_FLAG,BYTE,<0> ; [SYSTEM] status of PRINT utility | ||
| 168 | I_am VOLCHNG_FLAG,BYTE,<0> ; [SYSTEM] true if volume label created | ||
| 169 | I_am VIRTUAL_OPEN,BYTE,<0> ; [SYSTEM] non-zero if we opened a virtual file | ||
| 170 | |||
| 171 | ; Following 4 variables moved to MSDATA.asm from MSTABLE.asm (P4986) | ||
| 172 | I_am FSeek_drive,BYTE ;AN000; fastseek drive # | ||
| 173 | I_am FSeek_firclus,WORD ;AN000; fastseek first cluster # | ||
| 174 | I_am FSeek_logclus,WORD ;AN000; fastseek logical cluster # | ||
| 175 | I_am FSeek_logsave,WORD ;AN000; fastseek returned log clus # | ||
| 176 | I_am ACT_PAGE,WORD,<-1> ;;;;;;; ;BL ; active EMS page ;AN000; | ||
| 177 | |||
| 178 | |||
| 179 | SWAP_END LABEL BYTE | ||
| 180 | PUBLIC SWAP_END | ||
| 181 | |||
| 182 | ; THE FOLLOWING BYTE MUST BE HERE, IMMEDIATELY FOLLOWING SWAP_END. IT CANNOT | ||
| 183 | ; BE USED. If the size of the swap data area is ODD, it will be rounded up | ||
| 184 | ; to include this byte. | ||
| 185 | DB ? | ||
| 186 | |||
| 187 | DB (512+80+32-(SWAP_END-ibmpatch)) DUP (?) | ||
| 188 | |||
| 189 | MSDAT001e label byte | ||
| 190 | |||
| 191 | .xall | ||
| 192 | |||
| 193 | DATA ENDS | ||
| 194 | \ No newline at end of file | ||