317 lines
17 KiB
HTML
317 lines
17 KiB
HTML
<HTML>
|
|
<HEAD>
|
|
<TITLE>Int 21/AX=4402h
|
|
</TITLE>
|
|
<META NAME="Description" CONTENT="
|
|
Int 21/AX=4402h - CD-ROM device driver - IOCTL INPUT -
|
|
AX = 4402h
|
|
BX = file handle referencing character device for CD-ROM driver
|
|
CX = number of bytes to read
|
|
DS:DX - control block (see #01449)
|
|
Return: CF clear if successful
|
|
AX = number of bytes actually read
|
|
CF set on error
|
|
AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
|
|
Notes: the data returned depends on the first byte of the control block
|
|
(two bytes for functions 01h/07h/0Bh, see #01449); the remainder of
|
|
">
|
|
<META NAME="robots" CONTENT="none">
|
|
</HEAD>
|
|
<BODY BGCOLOR="#FFD0A0">
|
|
<center>
|
|
<h2>Int 21/AX=4402h
|
|
</h2>
|
|
</center><p>
|
|
<table border=1 cellpadding=3 cellspacing=1>
|
|
<td>
|
|
<a href="rb-2828.htm" tppabs="http://www.ctyme.com/intr/rb-2828.htm">
|
|
<img src="lup.gif" tppabs="http://graphics.ctyme.com/gif/lup.gif" border=0 alt=Prev></a>
|
|
<a href="rb-2830.htm" tppabs="http://www.ctyme.com/intr/rb-2830.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>CD-ROM device driver - IOCTL INPUT</font></h3>
|
|
<PRE>
|
|
AX = 4402h
|
|
BX = file handle referencing character device for CD-ROM driver
|
|
CX = number of bytes to read
|
|
DS:DX -> control block <a href="rb-2829.htm#Table1449" tppabs="http://www.ctyme.com/intr/rb-2829.htm#Table1449">(see #01449)</a><br>
|
|
<p><b>Return:</b><br>CF clear if successful
|
|
AX = number of bytes actually read
|
|
CF set on error
|
|
AX = error code (01h,05h,06h,0Dh) <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 #01680 at AH=59h/BX=0000h)
|
|
</PRE>
|
|
<p><b>Notes:</b>
|
|
The data returned depends on the first byte of the control block
|
|
(two bytes for functions 01h/07h/0Bh, see #01449); the remainder of
|
|
the control block is filled by the driver.
|
|
Some device drivers support several subunits (that is more than one
|
|
drive) but it is not possible to distinguish between them with this
|
|
function; use INT 2F/AX=1510h or INT 2F/AX=0802h instead.
|
|
Under Windows95, the "mscd$$$$" device cannot be opened so you cannot
|
|
<PRE>
|
|
<p><b>obtain the handle required by this function:</b><br>Use INT 2F/AX=1510h
|
|
or INT 2F/AX=0802h instead
|
|
</PRE>
|
|
<p><b>See Also:</b>
|
|
<a href="rb-2856.htm" tppabs="http://www.ctyme.com/intr/rb-2856.htm">AX=4403h"CD-ROM"</a> - <a href="rb-4282.htm" tppabs="http://www.ctyme.com/intr/rb-4282.htm">INT 2F/AX=0802h</a> - <a href="rb-4493.htm" tppabs="http://www.ctyme.com/intr/rb-4493.htm">INT 2F/AX=1510h</a>
|
|
<PRE>
|
|
<p>
|
|
<a name=table1448></a>
|
|
(Table 01448)
|
|
Values for CD-ROM data being requested:
|
|
00h device driver header address
|
|
01h drive head location
|
|
02h reserved
|
|
03h error statistics
|
|
04h audio channel info
|
|
05h raw drive bytes (uninterpreted and device-specific)
|
|
06h device status
|
|
07h sector size
|
|
08h volume size
|
|
09h media change status
|
|
0Ah audio disk info
|
|
0Bh audio track info
|
|
0Ch audio Q-Channel info
|
|
0Dh audio sub-channel info
|
|
0Eh UPC code
|
|
0Fh audio status info
|
|
<p>
|
|
Format of CD-ROM control block:
|
|
<a name=table1449></a>
|
|
Offset Size Description (Table 01449)
|
|
00h BYTE data being requested <a href="rb-2829.htm#Table1448" tppabs="http://www.ctyme.com/intr/rb-2829.htm#Table1448">(see #01448)</a>
|
|
---function 00h---
|
|
01h DWORD device driver header address (see also AH=52h,#01646)
|
|
---function 01h---
|
|
01h BYTE (call) addressing mode
|
|
00h HSG
|
|
01h Red Book
|
|
02h DWORD current location of drive's head
|
|
logical sector number in HSG mode
|
|
frame/second/minute/unused in Red Book mode
|
|
(HSG sector = minute * 4500 + second * 75 + frame - 150)
|
|
---function 03h---
|
|
01h N BYTEs undefined as of 5 Aug 88 specification
|
|
---function 04h---
|
|
01h BYTE input channel (0-3) for output channel 0
|
|
02h BYTE volume for output channel 0
|
|
03h BYTE input channel (0-3) for output channel 1
|
|
04h BYTE volume for output channel 1
|
|
05h BYTE input channel (0-3) for output channel 2
|
|
06h BYTE volume for output channel 2
|
|
07h BYTE input channel (0-3) for output channel 3
|
|
08h BYTE volume for output channel 3
|
|
</PRE>
|
|
<p><b>Notes:</b>
|
|
Output channels 0 and 1 are left and right, 2 and 3 are left prime and
|
|
right prime; a volume of 00h is off.
|
|
The default setting is for each input channel to be assigned to the
|
|
same-numbered output channel at full (FFh) volume
|
|
---function 05h---
|
|
01h BYTE number of bytes read
|
|
02h 128 BYTEs buffer for drive bytes
|
|
---function 06h---
|
|
01h DWORD device parameters <a href="rb-2829.htm#Table1450" tppabs="http://www.ctyme.com/intr/rb-2829.htm#Table1450">(see #01450)</a>
|
|
---function 07h---
|
|
01h BYTE (call) read mode
|
|
00h cooked
|
|
01h raw
|
|
02h WORD (return) sector size in bytes
|
|
---function 08h---
|
|
01h DWORD volume size in sectors
|
|
<p><b>BUGS:</b>
|
|
Aztech device driver v1.10 and v1.27 (at least) return the last sector
|
|
number, i.e. total number of sectors - 1.
|
|
Windows95 returns the total number of sectors + 150 (see the Red Book
|
|
to HSG conversion formula at function 01h to understand why this
|
|
happens)
|
|
---function 09h---
|
|
01h BYTE media change status
|
|
00h don't know
|
|
01h media unchanged
|
|
FFh media has been changed
|
|
---function 0Ah---
|
|
01h BYTE lowest audio track number
|
|
02h BYTE highest audio track number
|
|
03h DWORD start address of lead-out track (Red Book format)
|
|
--function 0Bh---
|
|
01h BYTE (call) track number
|
|
02h DWORD starting point of track (Red Book format)
|
|
06h BYTE track control info
|
|
<PRE>
|
|
<p><b>bits 15,14,12:</b><br>Track type (notice: bits not contiguous!)
|
|
000 two audio channels, no pre-emphasis
|
|
001 two audio channels with pre-emphasis
|
|
010 data track
|
|
100 four audio channels, no pre-emphasis
|
|
101 four audio channels with pre-emphasis
|
|
other reserved
|
|
<p><b>bit 13:</b><br>Digital copy permitted
|
|
---function 0Ch---
|
|
01h BYTE CONTROL and ADR byte (as received from drive)
|
|
02h BYTE track number
|
|
03h BYTE point or index
|
|
04h BYTE minute \
|
|
05h BYTE second > running time within track
|
|
06h BYTE frame /
|
|
07h BYTE zero
|
|
08h BYTE "AMIN" or "PMIN" \
|
|
09h BYTE "ASEC" or "PSEC" > running time on disk
|
|
0Ah BYTE "AFRAME" or "PFRAME" /
|
|
---function 0Dh---
|
|
01h DWORD starting frame address (Red Book format)
|
|
05h DWORD transfer address
|
|
09h DWORD number of sectors to read
|
|
</PRE>
|
|
<p><b>Note:</b>
|
|
Copies 96 bytes of sub-channel info per sector into buffer
|
|
---function 0Eh---
|
|
01h BYTE CONTROL and ADR byte
|
|
02h 7 BYTEs UPC/EAN code (13 BCD digits,low-order nybble of last byte is 0)
|
|
09h BYTE zero
|
|
0Ah BYTE "AFRAME"
|
|
---function 0Fh---
|
|
??? documentation not yet available
|
|
01h WORD pause status (0000h not paused, 0001h paused)
|
|
03h DWORD audio play start address
|
|
07h DWORD ??? audio play length or end address
|
|
<PRE>
|
|
<p>
|
|
Bitfields for CD-ROM device parameters:
|
|
<a name=table1450></a>
|
|
Bit(s) Description (Table 01450)
|
|
0 door open
|
|
1 door unlocked
|
|
2 supports raw reading in addition to cooked
|
|
3 writable
|
|
4 can play audio/video tracks
|
|
5 supports interleaving
|
|
6 reserved
|
|
7 supports prefetch requests
|
|
8 supports audio channel control
|
|
9 supports Red Book addressing in addition to HSG
|
|
10 audio is playing
|
|
11 no disk in drive
|
|
12 supports R-W subchannels
|
|
</PRE>
|
|
<p>
|
|
<b>Category: <a href="cat-008.htm" tppabs="http://www.ctyme.com/intr/cat-008.htm">
|
|
Disk I/O Enhancements</a>
|
|
- <a href="int-21.htm" tppabs="http://www.ctyme.com/intr/int-21.htm">
|
|
Int 21h</a>
|
|
- <a href="alpha-c.htm" tppabs="http://www.ctyme.com/intr/alpha-c.htm">
|
|
C</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-2828.htm" tppabs="http://www.ctyme.com/intr/rb-2828.htm">
|
|
<img src="lup.gif" tppabs="http://graphics.ctyme.com/gif/lup.gif" border=0 alt=Prev></a>
|
|
<a href="rb-2830.htm" tppabs="http://www.ctyme.com/intr/rb-2830.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>
|