[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
INT 21 - 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 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
SeeAlso: INT 2F/AX=0802h

Format of control block:
Offset  Size    Description
 00h    BYTE    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
---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
                bit 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
---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"

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