[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
Int 21 Fn 4402  - Cd-rom Device Driver - Ioctl Input                       [d]

   AX = 4402h
   BX = file handle referencing character device for CD-ROM driver
   CX = number of bytes to read
   DS:DX -> control block (see below)

Return: CF clear if successful
       AX = number of bytes actually read
   CF set on error
       AX = error code (01h,05h,06h,0Dh) (see AH=59h)

Note:  the data returned depends on the first byte of the control block; the
     remainder of the control block is filled by the driver

See Also: AX=4403h"CD-ROM",INT 2F/AX=0802h

Values for 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

Format of control block:
Offset Size    Description
 00h   BYTE    data being requested (see above)
---function 00h---
 01h   DWORD   device driver header address (see also AH=52h)
---function 01h---
 01h   BYTE    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

Notes: 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 (see below)
---function 07h---
 01h   BYTE    read mode
       00h cooked
       01h raw
 02h   WORD    sector size in bytes
---function 08h---
 01h   DWORD   volume size in sectors
---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    track number (set by caller)
 02h   DWORD   starting point of track (Red Book format)
 06h   BYTE    track control info
       bits 15,14,12: 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
       bit 13: 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

Note:  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"

Bitfields for device parameters:
 bit 0 door open
 bit 1 door unlocked
 bit 2 supports raw reading in addition to cooked
 bit 3 writable
 bit 4 can play audio/video tracks
 bit 5 supports interleaving
 bit 6 reserved
 bit 7 supports prefetch requests
 bit 8 supports audio channel control
 bit 9 supports Red Book addressing in addition to HSG
 bit 10 audio is playing

This page created by ng2html v1.05, the Norton guide to HTML conversion utility. Written by Dave Pearson