307 lines
18 KiB
HTML
307 lines
18 KiB
HTML
<HTML>
|
|
<HEAD>
|
|
<TITLE>Int 21/AH=0Fh
|
|
</TITLE>
|
|
<META NAME="Description" CONTENT="
|
|
Int 21/AH=0Fh - DOS 1+ - OPEN FILE USING FCB -
|
|
AH = 0Fh
|
|
DS:DX - unopened File Control Block (see #01345,#01346)
|
|
Return: AL = status
|
|
00h successful
|
|
FFh file not found or access denied
|
|
Notes: (DOS 3.1+) file opened for read/write in compatibility mode
|
|
an unopened FCB has the drive, filename, and extension fields filled
|
|
in and all other bytes cleared
|
|
not supported by MS Windows 3.0 DOSX.EXE DOS extender
|
|
DR DOS checks password attached with AX=4303h
|
|
">
|
|
<META NAME="robots" CONTENT="none">
|
|
</HEAD>
|
|
<BODY BGCOLOR="#FFD0A0">
|
|
<center>
|
|
<h2>Int 21/AH=0Fh
|
|
</h2>
|
|
</center><p>
|
|
<table border=1 cellpadding=3 cellspacing=1>
|
|
<td>
|
|
<a href="rb-2573.htm" tppabs="http://www.ctyme.com/intr/rb-2573.htm">
|
|
<img src="lup.gif" tppabs="http://graphics.ctyme.com/gif/lup.gif" border=0 alt=Prev></a>
|
|
<a href="rb-2575.htm" tppabs="http://www.ctyme.com/intr/rb-2575.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+ - OPEN FILE USING FCB</font></h3>
|
|
<PRE>
|
|
AH = 0Fh
|
|
DS:DX -> unopened File Control Block <a href="javascript:if(confirm('http://www.ctyme.com/intr/rb-0000.htm \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/intr/rb-0000.htm#Table0'" tppabs="http://www.ctyme.com/intr/rb-0000.htm#Table0"></a>(see #01345,#01346)<br>
|
|
<p><b>Return:</b><br>AL = status
|
|
00h successful
|
|
FFh file not found or access denied
|
|
</PRE>
|
|
<p><b>Notes:</b>
|
|
(DOS 3.1+) file opened for read/write in compatibility mode.
|
|
An unopened FCB has the drive, filename, and extension fields filled
|
|
in and all other bytes cleared.
|
|
Not supported by MS Windows 3.0 DOSX.EXE DOS extender.
|
|
DR DOS checks password attached with AX=4303h.
|
|
(FAT32 drive) this function will only succeed for creating a volume
|
|
label; FAT32 does not support FCBs for file I/O
|
|
<p><b>BUG:</b>
|
|
APPEND for DOS 3.3+ corrupts DX if the file is not found
|
|
<p><b>See Also:</b>
|
|
<a href="rb-2575.htm" tppabs="http://www.ctyme.com/intr/rb-2575.htm">AH=10h</a> - <a href="rb-2581.htm" tppabs="http://www.ctyme.com/intr/rb-2581.htm">AH=16h</a> - <a href="rb-2779.htm" tppabs="http://www.ctyme.com/intr/rb-2779.htm">AH=3Dh</a> - <a href="rb-2806.htm" tppabs="http://www.ctyme.com/intr/rb-2806.htm">AX=4303h</a>
|
|
<PRE>
|
|
<p>
|
|
Format of File Control Block:
|
|
<a name=table1345></a>
|
|
Offset Size Description (Table 01345)
|
|
00h BYTE drive number (0 = default, 1 = A, etc)
|
|
FFh is not allowed (signals extended FCB, see #01346)
|
|
01h 8 BYTEs blank-padded file name
|
|
09h 3 BYTEs blank-padded file extension
|
|
0Ch WORD current block number
|
|
0Eh WORD logical record size
|
|
10h DWORD file size
|
|
14h WORD date of last write <a href="javascript:if(confirm('http://www.ctyme.com/intr/rb-0000.htm \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/intr/rb-0000.htm#Table0'" tppabs="http://www.ctyme.com/intr/rb-0000.htm#Table0"></a>(see #01666 at AX=5700h)
|
|
16h WORD time of last write <a href="javascript:if(confirm('http://www.ctyme.com/intr/rb-0000.htm \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/intr/rb-0000.htm#Table0'" tppabs="http://www.ctyme.com/intr/rb-0000.htm#Table0"></a>(see #01665 at AX=5700h) (DOS 1.1+)
|
|
18h 8 BYTEs reserved <a href="javascript:if(confirm('http://www.ctyme.com/intr/rb-0000.htm \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/intr/rb-0000.htm#Table0'" tppabs="http://www.ctyme.com/intr/rb-0000.htm#Table0"></a>(see #01347,#01348,#01349,#01350,#01351)
|
|
20h BYTE record within current block
|
|
21h DWORD random access record number (if record size is > 64 bytes, high
|
|
byte is omitted)
|
|
</PRE>
|
|
<p><b>See Also:</b>
|
|
#01346
|
|
<PRE>
|
|
<p>
|
|
Format of Extended File Control Block (XFCB):
|
|
<a name=table1346></a>
|
|
Offset Size Description (Table 01346)
|
|
00h BYTE FFh signature for extended FCB
|
|
01h 5 BYTEs reserved
|
|
06h BYTE file attribute if extended FCB
|
|
07h 36 BYTEs standard FCB (all offsets are shifted by seven bytes)
|
|
</PRE>
|
|
<p><b>See Also:</b>
|
|
#01246
|
|
<PRE>
|
|
<p>
|
|
Format of FCB reserved field for DOS 1.0:
|
|
<a name=table1347></a>
|
|
Offset Size Description (Table 01347)
|
|
16h WORD location in directory (if high byte = FFh, low byte is device
|
|
ID)
|
|
18h WORD number of first cluster in file
|
|
1Ah WORD current absolute cluster number on disk
|
|
1Ch WORD current relative cluster number within file
|
|
(0 = first cluster of file, 1 = second cluster, etc.)
|
|
1Eh BYTE dirty flag (00h = not dirty)
|
|
1Fh BYTE unused
|
|
<p>
|
|
Format of FCB reserved field for DOS 1.10-1.25:
|
|
<a name=table1348></a>
|
|
Offset Size Description (Table 01348)
|
|
<p><b>18h BYTE bit 7:</b><br>Set if logical device
|
|
<p><b>bit 6:</b><br>Not dirty
|
|
<p><b>bits 5-0:</b><br>Disk number or logical device ID
|
|
19h WORD starting cluster number on disk
|
|
1Bh WORD current absolute cluster number on disk
|
|
1Dh WORD current relative cluster number within file
|
|
1Fh BYTE unused
|
|
<p>
|
|
Format of FCB reserved field for DOS 2.x:
|
|
<a name=table1349></a>
|
|
Offset Size Description (Table 01349)
|
|
<p><b>18h BYTE bit 7:</b><br>Set if logical device
|
|
<p><b>bit 6:</b><br>Set if open???
|
|
<p><b>bits 5-0:</b><br>???
|
|
19h WORD starting cluster number on disk
|
|
1Bh WORD ???
|
|
1Dh BYTE ???
|
|
1Eh BYTE ???
|
|
1Fh BYTE ???
|
|
<p>
|
|
Format of FCB reserved field for DOS 3.x:
|
|
<a name=table1350></a>
|
|
Offset Size Description (Table 01350)
|
|
18h BYTE number of system file table entry for file
|
|
19h BYTE attributes
|
|
<p><b>bits 7,6:</b><br>00 = SHARE.EXE not loaded, disk file
|
|
01 = SHARE.EXE not loaded, character device
|
|
10 = SHARE.EXE loaded, remote file
|
|
11 = SHARE.EXE loaded, local file or device
|
|
<p><b>bits 5-0:</b><br>Low six bits of device attribute word
|
|
---SHARE.EXE loaded, local file---
|
|
1Ah WORD starting cluster of file on disk
|
|
1Ch WORD (DOS 3.x) offset within SHARE of sharing record
|
|
<a href="javascript:if(confirm('http://www.ctyme.com/intr/rb-0000.htm \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/intr/rb-0000.htm#Table0'" tppabs="http://www.ctyme.com/intr/rb-0000.htm#Table0"></a>(see #01637 at AH=52h)
|
|
1Eh BYTE file attribute
|
|
1Fh BYTE ???
|
|
---SHARE.EXE loaded, remote file---
|
|
1Ah WORD number of sector containing directory entry <a href="rb-2576.htm#Table1352" tppabs="http://www.ctyme.com/intr/rb-2576.htm#Table1352">(see #01352)</a>
|
|
1Ch WORD relative cluster within file of last cluster accessed
|
|
1Eh BYTE absolute cluster number of last cluster accessed
|
|
1Fh BYTE ???
|
|
---SHARE.EXE not loaded---
|
|
1Ah BYTE (low byte of device attribute word AND 0Ch) OR open mode
|
|
1Bh WORD starting cluster of file
|
|
1Dh WORD number of sector containing directory entry <a href="rb-2576.htm#Table1352" tppabs="http://www.ctyme.com/intr/rb-2576.htm#Table1352">(see #01352)</a>
|
|
1Fh BYTE number of directory entry within sector
|
|
</PRE>
|
|
<p><b>Note:</b>
|
|
If FCB opened on character device, DWORD at 1Ah is set to the address
|
|
of the device driver header, then the BYTE at 1Ah is overwritten.
|
|
<p><b>See Also:</b>
|
|
#01646
|
|
<PRE>
|
|
<p>
|
|
Format of FCB reserved field for DOS 5.0:
|
|
<a name=table1351></a>
|
|
Offset Size Description (Table 01351)
|
|
18h BYTE number of system file table entry for file
|
|
19h BYTE attributes
|
|
<p><b>bits 7,6:</b><br>00 = SHARE.EXE not loaded, disk file
|
|
01 = SHARE.EXE not loaded, character device
|
|
10 = SHARE.EXE loaded, remote file
|
|
11 = SHARE.EXE loaded, local file or device
|
|
<p><b>bits 5-0:</b><br>Low six bits of device attribute word
|
|
---SHARE.EXE loaded, local file---
|
|
1Ah WORD starting cluster of file on disk
|
|
1Ch WORD unique sequence number of sharing record
|
|
1Eh BYTE file attributes
|
|
1Fh BYTE unused???
|
|
---SHARE.EXE loaded, remote file---
|
|
1Ah WORD network handle
|
|
1Ch DWORD network ID
|
|
---SHARE not loaded, local device---
|
|
1Ah DWORD pointer to device driver header <a href="rb-2983.htm#Table1646" tppabs="http://www.ctyme.com/intr/rb-2983.htm#Table1646">(see #01646)</a>
|
|
1Eh 2 BYTEs unused???
|
|
---SHARE not loaded, local file---
|
|
1Ah BYTE extra info
|
|
<p><b>bit 7:</b><br>Read-only attribute from SFT
|
|
<p><b>bit 6:</b><br>Archive attribute from SFT
|
|
<p><b>bits 5-0:</b><br>High bits of sector number
|
|
1Bh WORD starting cluster of file
|
|
1Dh WORD low word of sector number containing directory entry
|
|
<a href="rb-2576.htm#Table1352" tppabs="http://www.ctyme.com/intr/rb-2576.htm#Table1352">(see #01352)</a>
|
|
1Fh BYTE number of directory entry within sector
|
|
</PRE>
|
|
<p>
|
|
<b>Category: <a href="cat-010.htm" tppabs="http://www.ctyme.com/intr/cat-010.htm">
|
|
DOS Kernel</a>
|
|
- <a href="int-21.htm" tppabs="http://www.ctyme.com/intr/int-21.htm">
|
|
Int 21h</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-2573.htm" tppabs="http://www.ctyme.com/intr/rb-2573.htm">
|
|
<img src="lup.gif" tppabs="http://graphics.ctyme.com/gif/lup.gif" border=0 alt=Prev></a>
|
|
<a href="rb-2575.htm" tppabs="http://www.ctyme.com/intr/rb-2575.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>
|