Files
oldlinux-files/docs/interrupts/int-html/rb-4301.htm
2024-02-19 00:23:35 -05:00

360 lines
18 KiB
HTML

<HTML>
<HEAD>
<TITLE>Int 2F/AX=10FEh
</TITLE>
<META NAME="Description" CONTENT="
Int 2F/AX=10FEh - DR DOS 6.0+ DELWATCH.EXE - INSTALLATION CHECK -
AX = 10FEh
Return: AL = FFh if installed and active
AH = internal version number
10h for DR DOS 6.0 DELWATCH 1.0 / 1.1 (through 1993/03/19)
20h for Novell DOS 7+ DELWATCH 2.0+
DX:BX - private entry point (see #02605)
Notes: The DR DOS 6.0 DELWATCH 1.x used to store information about deleted
files in a hidden file named @DLWATCH.DAT, however the Novell DOS 7+
DELWATCH 2.0+ stores all the info in previously unused fields in
the files' directory entries. (See table !!! at INT 21h/11h for
">
<META NAME="robots" CONTENT="none">
</HEAD>
<BODY BGCOLOR="#FFD0A0">
<center>
<h2>Int 2F/AX=10FEh
</h2>
</center><p>
<table border=1 cellpadding=3 cellspacing=1>
<td>
<a href="rb-4300.htm" tppabs="http://www.ctyme.com/intr/rb-4300.htm">
<img src="lup.gif" tppabs="http://graphics.ctyme.com/gif/lup.gif" border=0 alt=Prev></a>
<a href="rb-4302.htm" tppabs="http://www.ctyme.com/intr/rb-4302.htm">
<img src="ldown.gif" tppabs="http://graphics.ctyme.com/gif/ldown.gif" border=0 alt=Next></a>
<a href="javascript:if(confirm('http://www.ctyme.com/rbrown.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/rbrown.htm'" tppabs="http://www.ctyme.com/rbrown.htm">
<img src="lhome.gif" tppabs="http://graphics.ctyme.com/gif/lhome.gif" border=0 alt=Ralf Brown Page></a>
<td><a href="int.htm" tppabs="http://www.ctyme.com/intr/int.htm">Interrups</a></td>
<td><a href="cat.htm" tppabs="http://www.ctyme.com/intr/cat.htm">Categories</a></td>
<td><a href="alpha.htm" tppabs="http://www.ctyme.com/intr/alpha.htm">Contents</a></td>
</td></table><p>
<p><img src="rbline.gif" tppabs="http://graphics.ctyme.com/gif/rbline.gif" width="100%" alt="------"><p>
<h3><font color=#C00040>DR DOS 6.0+ DELWATCH.EXE - INSTALLATION CHECK</font></h3>
<PRE>
AX = 10FEh<br>
<p><b>Return:</b><br>AL = FFh if installed and active
AH = internal version number
10h for DR DOS 6.0 DELWATCH 1.0 / 1.1 (through 1993/03/19)
20h for Novell DOS 7+ DELWATCH 2.0+
DX:BX -> private entry point <a href="rb-4301.htm#Table2605" tppabs="http://www.ctyme.com/intr/rb-4301.htm#Table2605">(see #02605)</a>
</PRE>
<p><b>Notes:</b>
The DR DOS 6.0 DELWATCH 1.x used to store information about deleted
files in a hidden file named @DLWATCH.DAT, however the Novell DOS 7+
DELWATCH 2.0+ stores all the info in previously unused fields in
the files' directory entries. (See table !!! at INT 21h/11h for
details). This, however, now causes problems on systems also running
Windows 9x since Microsoft decided to use a rather similar but
incompatible method to store long filenames etc. in these entries..
Running DELWATCH 2.x on a system which previously used DELWATCH 1.x,
the @DLWATCH.DAT file will be abandoned and converted to the new
method.
<p><b>See Also:</b>
#01352 - <a href="rb-2809.htm" tppabs="http://www.ctyme.com/intr/rb-2809.htm">INT 21/AX=4306h</a> - <a href="rb-3000.htm" tppabs="http://www.ctyme.com/intr/rb-3000.htm">INT 21/AX=5704h</a> - <a href="rb-4285.htm" tppabs="http://www.ctyme.com/intr/rb-4285.htm">INT 2F/AX=1001h</a>
<PRE>
<p>
<a name=table2605></a>
(Table 02605)
Call DELWATCH private entry point with:.
AH = function
00h (OS hook) installation check
AL = 00h required for DELWATCH 1.x
<p><b>Return:</b><br>CF clear
AX = 0000h
CX = 0004h (unsupported function)
01h (DELWATCH 1.x) New Disk
???
01h (DELWATCH 2.0+) disable DELWATCH on drive
AL = drive number (00h = A:)
<p><b>Return:</b><br>AX = status (0000h if failed, FFFFh if successful)
02h (OS hook) Delete File
AL = drive number (00h = A:)
DX = directory cluster number (0000h for root directory)
CX = directory entry number
DS:BX -> directory entry
ES,DS must be valid selectors if called in protected mode
<p><b>Return:</b><br>DS:BX -> updated directory entry
CF set if file is to be deleted by the OS
CF clear if DELWATCH has placed the file in its queue
</PRE>
<p><b>Note:</b>
Deletes the directory entry
03h (OS hook) Free Clusters
AL = drive number (00h = A:)
CX = number of clusters currently free (do not free if > 1)
DX = preferred 'search from cluster' (ignored by DELWATCH 2.0)
<PRE>
<p><b>Return:</b><br>CF clear if clusters freed
CF set if no clusters freed
DX = new 'search from' cluster (one before first free)
04h (OS hook) free root directory entry
AL = drive number (00h = A:)
<p><b>Return:</b><br>CF set if no directory entry freed
05h (OS hook) return free space
AL = drive number (00h = A:)
CX = number of free clusters
<p><b>Return:</b><br>CX = updated number of free clusters
</PRE>
<p><b>Notes:</b>
Adds space used by "deleted" files to free space
call is chained
06h enable DELWATCH on drive
AL = drive number with bit 7 set (80h = A:, etc.)
<PRE>
<p><b>(DELWATCH 2.0+:</b><br>Set bit 6 for removable drives)
BX = maximum files of same name in one directory to save
CX = maximum files to save on this disk
DS:DX -> MEMDESC??? for drive data <a href="rb-4301.htm#Table4104" tppabs="http://www.ctyme.com/intr/rb-4301.htm#Table4104">(see #04104)</a>
DS:SI -> MEMDESC??? for DWLIST <a href="rb-4301.htm#Table4104" tppabs="http://www.ctyme.com/intr/rb-4301.htm#Table4104">(see #04104)</a>
ES,DS must contain valid selectors if called in protected mode
<p><b>Return:</b><br>AX = status
0000h failed
FFFFh successful
CX = error code on failure <a href="rb-4301.htm#Table4102" tppabs="http://www.ctyme.com/intr/rb-4301.htm#Table4102">(see #04102)</a>
(0004h "wrong version" if AL < 80h on entry)
07h (DELWATCH 1.x) disable DELWATCH on drive
???
07h (DELWATCH 2.0+) (OS hook) new disk
AL = drive (00h = A:, etc.)
ES:BX -> DOS DDSC structure
CF set if not enabled
<p><b>Return:</b><br>???
08h set file extensions list
AL = sense (00h exclude named extensions, 01h only named ext.)
DS:BX -> 31-byte ASCIZ extension list (three blank-padded bytes
per extension)
<p><b>Return:</b><br>AX = FFFFh (successful)
09h adjust pending delete space
AL = drive number (00h = A:)
CX = number of clusters being freed
<p><b>Return:</b><br>AX = 0000h if drive not enabled
0Ah remove DELWATCH entry
AL = drive number (00h = A:)
DX = directory cluster number (0000h if root directory)
CX = directory entry number
BX:SI -> filename
ES,DS must contain valid selectors if called in protected mode
<p><b>Return:</b><br>AX > 0000h if entry found in DWLIST
0Bh enable NEWDISK
<p><b>Return:</b><br>AX > 0000h if successful (FFFFh for DELWATCH 2.0)
see also function 0Dh
0Ch (DELWATCH 1.x) drive status
AL = drive number (00h = A:, etc.)
<p><b>Return:</b><br>AX = drive data segment, 0000h if not enabled
CX = pending delete space, if drive enabled
0Ch (DELWATCH 2.0+) check if drive enabled
AL = drive number with bit 7 set (80h = A:, etc.)
DS:DX -> MEMDESC for drive data <a href="rb-4301.htm#Table4104" tppabs="http://www.ctyme.com/intr/rb-4301.htm#Table4104">(see #04104)</a>
(DX = 0000h if not required)
DS:SI -> MEMDESC for DWLIST <a href="rb-4301.htm#Table4104" tppabs="http://www.ctyme.com/intr/rb-4301.htm#Table4104">(see #04104)</a>
(SI = 0000h if not required)
ES,DS must contain valid selectors if called in protected mode
<p><b>Return:</b><br>AX = drive status (see also #04103)
0000h disabled or error
CX = error code <a href="rb-4301.htm#Table4102" tppabs="http://www.ctyme.com/intr/rb-4301.htm#Table4102">(see #04102)</a>
0001h drive enabled
CX = pending delete space, FFFFh if NEWDISK
not yet called
0Dh disable NEWDISK
BX = segment address of bitmap buffer
<p><b>Return:</b><br>AX > 0000h if successful (FFFFh for DELWATCH 2.0)
see also function 0Bh
0Eh (DELWATCH 2.0+) (OS hook) purge file
AL = drive number (00h = A:)
DX = directory cluster number (0000h if root directory)
CX = directory entry number
<p><b>Return:</b><br>CF set if drive not enabled
CF clear
AX = status
0000h successfully purged
else error code <a href="rb-4301.htm#Table4102" tppabs="http://www.ctyme.com/intr/rb-4301.htm#Table4102">(see #04102)</a>
0Fh (DELWATCH 2.0+) (OS hook) undelete file
AL = drive number (00h = A:)
DX = directory cluster number (0000h if root directory)
CX = directory entry number
<p><b>Return:</b><br>CF set if drive not enabled
CF clear
AX = status
0000h successfully undeleted
else error code <a href="rb-4301.htm#Table4102" tppabs="http://www.ctyme.com/intr/rb-4301.htm#Table4102">(see #04102)</a><br>
<p><b>Return:</b><br>AX = 0000h, CX = 0001h (see #04102) if DELWATCH busy
registers unchanged if AH > 0Fh on entry
</PRE>
<p><b>Notes:</b>
Functions marked "OS hook" must under no circumstances by called by
external applications, as this would bypass the serialization
performed by the kernel and cause problems at least in multitasking
environments..
Two functions have been swapped between DELWATCH 1.x and DELWATCH 2.0
to ensure that DELWATCH 1.x calls will not do anything under newer
versions of the OS; for the same reason, the drive number in AL
sometimes requires that bit 7 be set for DELWATCH 2.0+.
<p><b>See Also:</b>
<a href="rb-4285.htm" tppabs="http://www.ctyme.com/intr/rb-4285.htm">AX=1001h</a> - <a href="rb-4294.htm" tppabs="http://www.ctyme.com/intr/rb-4294.htm">AX=1010h</a>
<PRE>
<p>
<a name=table4102></a>
(Table 04102)
Values for DELWATCH error codes:
0001h reentered (DELWATCH busy)
0002h not enabled
0003h not found
0004h wrong version of DELWATCH
0005h memory allocation
</PRE>
<p><b>See Also:</b>
#04103
<PRE>
<p>
<a name=table4103></a>
(Table 04103)
Values for DELWATCH drive status:
0000h drive not enabled
0001h OK
0002h no bitmap
0003h zero files
0004h cross-linked files
</PRE>
<p><b>See Also:</b>
#04102
<PRE>
<p>
Format of DELWATCH MEMDESC structure:
<a name=table4104></a>
Offset Size Description (Table 04104)
00h BYTE memory type
01h protected mode (DPMS)
02h XMS
03h upper (high) memory
04h low memory
01h DWORD location
<p><b>(conventional memory) WORD:</b><br>Segment base address
<p><b>(XMS) WORD:</b><br>XMS handle
<p><b>(DPMS) DWORD:</b><br>DPMS memory 32-bit base address
05h DWORD length in bytes
09h DWORD allocation
<p><b>(conventional memory) WORD:</b><br>Memory block segment
<p><b>(XMS) WORD:</b><br>XMS handle (same as location handle)
<p><b>(DPMS) DWORD:</b><br>DPMS 32-bit handle
</PRE>
<p>
<b>Category: <a href="cat-030.htm" tppabs="http://www.ctyme.com/intr/cat-030.htm">
Other Operating Systems</a>
- <a href="int-2f-1.htm" tppabs="http://www.ctyme.com/intr/int-2F.htm">
Int 2Fh</a>
- <a href="alpha-d.htm" tppabs="http://www.ctyme.com/intr/alpha-d.htm">
D</a>
</b><p><p><img src="rbline.gif" tppabs="http://graphics.ctyme.com/gif/rbline.gif" width="100%" alt="------"><p>
<table border=1 cellpadding=3 cellspacing=1>
<td>
<a href="rb-4300.htm" tppabs="http://www.ctyme.com/intr/rb-4300.htm">
<img src="lup.gif" tppabs="http://graphics.ctyme.com/gif/lup.gif" border=0 alt=Prev></a>
<a href="rb-4302.htm" tppabs="http://www.ctyme.com/intr/rb-4302.htm">
<img src="ldown.gif" tppabs="http://graphics.ctyme.com/gif/ldown.gif" border=0 alt=Next></a>
<a href="javascript:if(confirm('http://www.ctyme.com/rbrown.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/rbrown.htm'" tppabs="http://www.ctyme.com/rbrown.htm">
<img src="lhome.gif" tppabs="http://graphics.ctyme.com/gif/lhome.gif" border=0 alt=Ralf Brown Page></a>
<td><a href="int.htm" tppabs="http://www.ctyme.com/intr/int.htm">Interrups</a></td>
<td><a href="cat.htm" tppabs="http://www.ctyme.com/intr/cat.htm">Categories</a></td>
<td><a href="alpha.htm" tppabs="http://www.ctyme.com/intr/alpha.htm">Contents</a></td>
</td></table><p>
<!-- Bottom Link Start -->
<center>
<p><table border=1 bgcolor="#ffff99"><tr><td>
<table border=0 height=80>
<tr align=center><td width="65">
<a href="javascript:if(confirm('http://www.ctyme.com/sponsor.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/sponsor.htm'" tppabs="http://www.ctyme.com/sponsor.htm">
<img src="tip.gif" tppabs="http://graphics.ctyme.com/gif/tip.gif" ALT="Sponsors" height="40" width="40"></a>
<br><a href="javascript:if(confirm('http://www.ctyme.com/sponsor.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/sponsor.htm'" tppabs="http://www.ctyme.com/sponsor.htm">Shopping</a>
</td><td width="65">
<a href="javascript:if(confirm('http://talk.ctyme.com/webx.cgi?13@@.ee6b2be \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://talk.ctyme.com/webx.cgi?13@@.ee6b2be'" tppabs="http://talk.ctyme.com/webx.cgi?13@@.ee6b2be">
<img src="comment.gif" tppabs="http://graphics.ctyme.com/gif/comment.gif" ALT="Forum" height="40" width="40"></a>
<br><a href="javascript:if(confirm('http://talk.ctyme.com/webx.cgi?13@@.ee6b2be \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://talk.ctyme.com/webx.cgi?13@@.ee6b2be'" tppabs="http://talk.ctyme.com/webx.cgi?13@@.ee6b2be">Forum</a>
</td><td width="65">
<a href="javascript:if(confirm('http://www.ctyme.com/mail.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/mail.htm'" tppabs="http://www.ctyme.com/mail.htm">
<img src="mail.gif" tppabs="http://graphics.ctyme.com/gif/mail.gif" ALT="email" height="40" width="40"></a>
<br><a href="javascript:if(confirm('http://www.ctyme.com/mail.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/mail.htm'" tppabs="http://www.ctyme.com/mail.htm">EMail</a>
</td><td width="65">
<a href="javascript:if(confirm('http://www.ctyme.com/map.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/map.htm'" tppabs="http://www.ctyme.com/map.htm">
<img src="toc.gif" tppabs="http://graphics.ctyme.com/gif/toc.gif" ALT="Index" height="40" width="40"></a>
<br><a href="javascript:if(confirm('http://www.ctyme.com/map.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/map.htm'" tppabs="http://www.ctyme.com/map.htm">Index</a>
</td><td width="65">
<a href="javascript:if(confirm('http://www.ctyme.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/'" tppabs="http://www.ctyme.com/">
<img src="home.gif" tppabs="http://graphics.ctyme.com/gif/home.gif" ALT="Home" height="40" width="40"></a>
<br><a href="javascript:if(confirm('http://www.ctyme.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/'" tppabs="http://www.ctyme.com/">Home</a>
</td><td width="90">
<center>
<FORM ACTION="https://secure.paypal.com/cgi-bin/webscr" tppabs="https://secure.paypal.com/cgi-bin/webscr" METHOD="POST" traget="_blank">
<INPUT TYPE="hidden" NAME="cmd" VALUE="_xclick">
<INPUT TYPE="hidden" NAME="business" VALUE="marc@perkel.com">
<INPUT TYPE="hidden" NAME="return" VALUE="http://www.perkel.com">
<INPUT TYPE="hidden" NAME="item_name" VALUE="Donation To Support this Site">
<INPUT TYPE="hidden" NAME="no_intl" VALUE="1">
<INPUT TYPE="image" SRC="x-click-but7.gif" tppabs="http://images.paypal.com/images/x-click-but7.gif" vspace=9
NAME="submit" ALT="Make payments with PayPal - it's fast, free and secure!">
</FORM>
</td></tr></table></td></tr></table><p>
<center>
<p>
<a href="javascript:if(confirm('http://www.ctyme.com/hosting/index.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/hosting/index.htm'" tppabs="http://www.ctyme.com/hosting/index.htm" target="_blank">
<img src="ctymehost.gif" tppabs="http://graphics.ctyme.com/gif/ctymehost.gif"
border=3 height=60 width=468></a>
<p>
<!-- Ad End --->
</center>
<FORM ACTION="http://service.bfast.com/bfast/click" target="_blank">
<INPUT TYPE="hidden" NAME="siteid" VALUE="30472466" >
<INPUT TYPE="hidden" NAME="bfpage" VALUE="horizontal">
<INPUT TYPE="hidden" NAME="bfmid" VALUE="27253343" >
<INPUT TYPE="hidden" NAME="num" VALUE="30">
<table bgcolor=white border=3><tr><td>
<table bgcolor=white border=0>
<tr><td>
<IMG SRC="serve-bfmid=27253343&siteid=30472466&bfpage=horizontal.gif" tppabs="http://service.bfast.com/bfast/serve?bfmid=27253343&siteid=30472466&bfpage=horizontal" BORDER="0" WIDTH="1" HEIGHT="1" align=right NOSAVE >
<center><b>Search the web with Google</b></center>
</td></tr><tr><td>
<TABLE cellpadding=0 cellspacing=5 bgcolor="#FFFFFF">
<tr><td bgcolor="#0000cc"><IMG SRC="cleardot.gif" tppabs="http://www.google.com/images/cleardot.gif" height=1 border="0" ALT="Google"></td></tr><tr><td>
<IMG SRC="affiliate_logo.gif" tppabs="http://www.google.com/affiliates/affiliate_logo.gif" border="0" ALT="Google" align="center">
<INPUT TYPE=text name=q size=30 maxlength=255 value="">
<INPUT type=submit name=sa VALUE="Go">
</td></tr>
<tr><td bgcolor="#0000cc"><IMG SRC="cleardot.gif" tppabs="http://www.google.com/images/cleardot.gif" height=1 border="0" ALT="Google"></td></tr></TABLE>
</td></tr></table>
</tr></td></table>
</FORM>
</center>
<p><img src="rbline.gif" tppabs="http://graphics.ctyme.com/gif/rbline.gif" width="100%" alt="------"><p>
<!-- Bottom Link End -->
</BODY>
</HTML>