Up ] Docs Home ]

Format of CD-ROM control block

Back ] Next ]

Offset Size Description

00h

BYTE

data being requested (see #01448)

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

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 #01450)

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

Bugs:

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
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
011 = reserved
100 = four audio channels, no pre-emphasis
101 = four audio channels with pre-emphasis
110 = reserved
111 = 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

running time within track

05h

BYTE

second

06h

BYTE

frame

07h

BYTE

zero

08h

BYTE

"AMIN" or "PMIN"

running time on disk

09h

BYTE

"ASEC" or "PSEC"

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"

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