227 lines
14 KiB
HTML
227 lines
14 KiB
HTML
<HTML>
|
|
<HEAD>
|
|
<TITLE>Int 25
|
|
</TITLE>
|
|
<META NAME="Description" CONTENT="
|
|
Int 25 - DOS 1+ - ABSOLUTE DISK READ (except partitions > 32M) -
|
|
AL = drive number (00h = A:, 01h = B:, etc)
|
|
CX = number of sectors to read (not FFFFh)
|
|
DX = starting logical sector number (0000h - highest sector on drive)
|
|
DS:BX - buffer for data
|
|
Return: CF clear if successful
|
|
CF set on error
|
|
AH = status (see #02547)
|
|
AL = error code (same as passed to INT 24 in DI)
|
|
AX = 0207h if more than 64K sectors on drive -- use new-style call
|
|
may destroy all other registers except segment registers
|
|
">
|
|
<META NAME="robots" CONTENT="none">
|
|
</HEAD>
|
|
<BODY BGCOLOR="#FFD0A0">
|
|
<center>
|
|
<h2>Int 25
|
|
</h2>
|
|
</center><p>
|
|
<table border=1 cellpadding=3 cellspacing=1>
|
|
<td>
|
|
<a href="rb-4112.htm" tppabs="http://www.ctyme.com/intr/rb-4112.htm">
|
|
<img src="lup.gif" tppabs="http://graphics.ctyme.com/gif/lup.gif" border=0 alt=Prev></a>
|
|
<a href="rb-4114.htm" tppabs="http://www.ctyme.com/intr/rb-4114.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>DOS 1+ - ABSOLUTE DISK READ (except partitions > 32M)</font></h3>
|
|
<PRE>
|
|
AL = drive number (00h = A:, 01h = B:, etc)
|
|
CX = number of sectors to read (not FFFFh)
|
|
DX = starting logical sector number (0000h - highest sector on drive)
|
|
DS:BX -> buffer for data<br>
|
|
<p><b>Return:</b><br>CF clear if successful
|
|
CF set on error
|
|
AH = status <a href="rb-4113.htm#Table2547" tppabs="http://www.ctyme.com/intr/rb-4113.htm#Table2547">(see #02547)</a>
|
|
AL = error code (same as passed to INT 24 in DI)
|
|
AX = 0207h if more than 64K sectors on drive -- use new-style call
|
|
may destroy all other registers except segment registers
|
|
</PRE>
|
|
<p><b>Notes:</b>
|
|
Original flags are left on stack, and must be popped by caller.
|
|
This call bypasses the DOS filesystem.
|
|
Examination of CPWIN386.CPL indicates that if this call fails with
|
|
error 0408h on an old-style (<32M) call, one should retry the
|
|
call with the high bit of the drive number in AL set.
|
|
Novell DOS 7 decides whether the old-style or new-style (>32M) version
|
|
of INT 25 must be used solely on the basis of the partition's size,
|
|
thus forcing use of the new-style call even for data in the first
|
|
32M of the partition.
|
|
PC Tools MIRROR as shipped with MS-DOS 5.0+ checks several signatures
|
|
at the beginning of INT 25h and INT 26h before it starts to patch
|
|
these vectors. The signatures it looks for are 83h, F9h, FFh, 74h
|
|
(CMP CX,-01; JZ ????) at offset +1 from the INT 25h/26h entry points
|
|
and 2Eh, FFh, 2Eh (JMP DWORD PTR CS:[????]) at the location pointed
|
|
to by the JZ ????. If it finds these signatures it will use the
|
|
target address of the far jump for its sub-sequent checks, otherwise
|
|
it will just take the previous interrupt entry points when scanning
|
|
for FAh, 2Eh, 8Ch, 16h (CLI; MOV CS:????,SS) or FAh, 2Eh, 89h, 26h
|
|
(CLI; MOV CS:????,SP) right at the beginning. Hence, it seems the
|
|
first two checks are to trace through a specific INT 25h/26h
|
|
filter. However, the purpose of the whole patch is unknown..
|
|
A method to detect the actual assignments of logical drive numbers
|
|
to physical BIOS drive units (for example to detect the boot drive),
|
|
is to temporarily mount an INT 13h handler recording the used DL
|
|
drive unit for any INT 13/AH=02h read operations and discarding any
|
|
attempts to access actual floppy drives. Then call INT 25h for
|
|
all the appropriate DOS drives and watch the results recorded by
|
|
the INT 13h interceptor..
|
|
Although all registers except segment registers may be destroyed
|
|
some software depends on some of the registers being preserved.
|
|
For example some Flash disk drivers requires that DX is not trashed.
|
|
DR-DOS 7.03 takes care of this.
|
|
<p><b>BUGS:</b>
|
|
DOS 3.1 through 3.3 set the word at ES:[BP+1Eh] to FFFFh if AL is an
|
|
invalid drive number.
|
|
DR DOS 3.41 will return with a jump instead of RETF, leaving the
|
|
wrong number of bytes on the stack; use the huge-partition version
|
|
(INT 25/CX=FFFFh) for all partition sizes under DR DOS 3.41.
|
|
DR DOS 6.0 original issues 05/1991 & 08/1991 reported wrong error
|
|
codes for "drive not ready" and "write protect". This was fixed
|
|
<PRE>
|
|
<p><b>with the DR DOS BDOS patch "PAT321" (1992/02/19, XDIR /C:</b><br>947Bh),
|
|
and later "full" rebuilds (see INT 21/AX=4452h for details).
|
|
</PRE>
|
|
<p><b>See Also:</b>
|
|
<a href="rb-0607.htm" tppabs="http://www.ctyme.com/intr/rb-0607.htm">INT 13/AH=02h</a> - <a href="rb-4114.htm" tppabs="http://www.ctyme.com/intr/rb-4114.htm">INT 25/CX=FFFFh</a> - <a href="rb-4117.htm" tppabs="http://www.ctyme.com/intr/rb-4117.htm">INT 26</a> - <a href="rb-3229.htm" tppabs="http://www.ctyme.com/intr/rb-3229.htm">INT
|
|
<PRE>
|
|
<p>
|
|
<a name=table2547></a>
|
|
(Table 02547)
|
|
Values for disk I/O status:
|
|
80h device failed to respond (timeout)
|
|
40h seek operation failed
|
|
20h controller failed
|
|
10h data error (bad CRC)
|
|
08h DMA failure
|
|
04h requested sector not found
|
|
03h write-protected disk (INT 26 only)
|
|
02h bad address mark
|
|
01h bad command
|
|
</PRE>
|
|
<p>
|
|
<b>Category: <a href="cat-010.htm" tppabs="http://www.ctyme.com/intr/cat-010.htm">
|
|
DOS Kernel</a>
|
|
- <a href="int-25.htm" tppabs="http://www.ctyme.com/intr/int-25.htm">
|
|
Int 25h</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-4112.htm" tppabs="http://www.ctyme.com/intr/rb-4112.htm">
|
|
<img src="lup.gif" tppabs="http://graphics.ctyme.com/gif/lup.gif" border=0 alt=Prev></a>
|
|
<a href="rb-4114.htm" tppabs="http://www.ctyme.com/intr/rb-4114.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>
|