MORE INFORMATION
To identify the Photo CD TOC information, the most significant two
bits of the control field of the CDB of the Read TOC Command has been
assigned to identify this information. In order to maintain
compatibility with ANSI SCSI-2 specification, the Format Field is
assigned to 00b for SCSI-II compatible read TOC commands. For handling
the Kodak Photo CD multisession, format 01b can be used. This will
give the start address of the last session which is required when the
driver calculates the offset to the file descriptor block of the last
session. Format 10b is used to return all Q subcode data in the TOC
area.
Please enable ALL of the Formats to ensure future compatibility. Mode
01 must report a data length of 0A for a multisession-capable drive.
And Mode 00 must report a data length greater than 0A.
A mode 01 TOC command that returns a data length of greater than 0A
will be considered incapable of reading multisession discs. The data
length represents the length of the returned data not including the
size of the data length field.
READ TOC Command (43h)
======================================================================
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Byte | | | | | | | | |
======================================================================
0 | Operation Code (43h) |
-----|---------------------------------------------------------------|
1 | Logical Unit Number | Reserved | MSF | Rsvd |
-----|---------------------------------------------------------------|
2 | Reserved |
-----|---------------------------------------------------------------|
3 | Reserved |
-----|---------------------------------------------------------------|
4 | Reserved |
-----|---------------------------------------------------------------|
5 | Reserved |
-----|---------------------------------------------------------------|
6 | Starting Track/Session Number |
-----|---------------------------------------------------------------|
7 | (MSB) |
-----|--- Allocation Length ---|
8 | (LSB) |
-----|---------------------------------------------------------------|
9 | Format | Control Byte |
======================================================================
The READ TOC command requests the target to transfer the table of
contents (TOC) data to the initiator.
This command is modified from the SCSI-2 Read TOC command with the
addition of the Format field and the Session Number field to support a
multisession disc.
The following are definitions for the Format Field:
Format:
00b
Same definition as in SCSI-2. The start Track/Session Number field
specifies the starting track number for which the data will be
returned. For multisession Photo CD, this command will return the TOC
data for all sessions.
01b
This format returns the first session number, last session number and
the last session starting address. In this format, the Starting
Track/Session Number field is reserved and should be set to 00h.
NOTE: This format provides the host to access the last session
starting address quickly.
10b
This format returns all Q subcodes data in the lead in (TOC) area
starting from a specified session number as specified in the Session
Number field. In this mode, the drive will support Q Subcode Point
field value of A0h, A1h, A2h, Track numbers, B0h, B1h, B2h, B3h, B4h,
and C0h.
11b
Reserved.
The starting track field specifies the starting track number for which
the TOC data will be returned. The data is returned in contiguous
ascending order. Valid values for the starting track field are 0h to
63h. A value of AAh requests that the starting address of the lead out
area be returned. If this value is zero, the table of contents data
will begin with the first track on the disc.
If the track number field is not valid for he disc inserted, the
command will be terminated with a CHECK CONDITION status. The sense
key is set to ILLEGAL REQUEST. The additional sense code is set to
ILLEGAL VALUE in CDB.
NOTE:
CD-I disc format does not have track descriptor for CD-I tracks. It
has track descriptor for each CD-DA tracks.
For Format = 00b, the returned data of READ TOC Command is defined as
follows.
TOC Data with Format Field = 00b
======================================================================
0 | (MSB) |
---|-------------- TOC Data Length -----------|
1 | (LSB) |
---|-----------------------------------------------------------------|
2 | First Track Number |
---|-----------------------------------------------------------------|
3 | Last Track Number |
======================================================================
TOC Track Descriptor(s)
======================================================================
0 | Reserved |
---|-----------------------------------------------------------------|
1 | ADR | Control |
---|-----------------------------------------------------------------|
2 | Track Number |
---|-----------------------------------------------------------------|
3 | Reserved |
---|-----------------------------------------------------------------|
4 | (MSB) |
---|---- Absolute CD-ROM Address ----|
7 | (LSB) |
======================================================================
The TOC data returned is a four-byte header followed by one or more
TOC track descriptors. The last track descriptor is for the lead-out
area. The format of the CD address is determined by the MSF bit in the
CDB.
The TOC data length specifies the length in bytes of the available
table of contents data. The value of TOC data length does not include
TOC data length field itself.
The first track number field indicates the first track number in the
table of contents.
The last track number field indicates the last track number in the
table of contents before the lead-out track number.
Implementor's Note:
A disc may start at any track number greater than zero. The track
numbers between the first track number and the last track number are
in contiguous ascending order, except for the lead-out track which has
a track number of AAh.
The ADR field is defined in the Read Q Sub-Channel command.
The control field indicates the attributes of the track. It is defined
in the Read Q Sub-channel command.
The track number field indicates the track number for which the data
in the TOC track descriptor is valid.
The absolute CD-ROM address contains the address of the first block
with user information for that track number as read from the table of
contents. An MSF bit of zero indicates that the absolute CD-ROM
address field contains a logical block address. An MSF bit of one
indicates the absolute CD-ROM address field contains an MSF address.
Implementor's Note:
The starting logical block address value recovered from the TOC has a
tolerance of zero for data tracks and plus or minus 75 CD sectors for
audio tracks. This tolerance is multiplied by a factor dependent on
the logical block length.
For format = 01b, the returned data of READ TOC command is defined as
follows:
TOC Data with Format Field = 01b
======================================================================
0 | (MSB) |
---|------------- TOC Data Length -------|
1 | (0Ah) (LSB) |
---|-----------------------------------------------------------------|
2 | First Session Number |
---|-----------------------------------------------------------------|
3 | Last Session Number |
======================================================================
TOC Track Descriptor
======================================================================
0 | Reserved |
---|-----------------------------------------------------------------|
1 | ADR | Control |
---|-----------------------------------------------------------------|
2 | First Track Number in Last Session |
---|-----------------------------------------------------------------|
3 | Reserved |
---|-----------------------------------------------------------------|
4 | (MSB) |
---|----- Absolute CD-ROM Address -------|
7 | of First Track in Last Session (LSB) |
======================================================================
For Format - 10b, the returned data of READ TOC Command is defined as
follows:
TOC Data with Format Field = 10b
======================================================================
0 | (MSB) |
---|----------- TOC Data Length ------------|
1 | (LSB) |
---|-----------------------------------------------------------------|
2 | First Session Number |
---|-----------------------------------------------------------------|
3 | Last Session Number |
======================================================================
TOC Track Descriptor(s)
======================================================================
0 | Session Number |
---|-----------------------------------------------------------------|
1 | ADR | Control |
---|-----------------------------------------------------------------|
2 | Byte 1 or TNO |
---|-----------------------------------------------------------------|
3 | Byte 2 or Point |
---|-----------------------------------------------------------------|
4 | Byte 3 or Min |
---|-----------------------------------------------------------------|
5 | Byte 4 or Sec |
---|-----------------------------------------------------------------|
6 | Byte 5 or Frame |
---|-----------------------------------------------------------------|
7 | Byte 6 or Zero |
---|-----------------------------------------------------------------|
8 | Byte 7 or Min |
---|-----------------------------------------------------------------|
9 | Byte 8 or PSec |
---|-----------------------------------------------------------------|
10| Byte 9 or PFrame |
======================================================================
For Format field of 10b, the drive should return TOC data for Q-
subcode modes (ADR field) 1 and 5 (except mode 5, point 1 through 40)
in the lead in area.
The First Session Number is equal to the Last Session Number for
single session discs.
The returned TOC data of a multisession disc is arranged in ascending
order of the session number. The TOC data within a session is arranged
in the order of Q Subcode Point field value of A0h, A1h, A2h, Track
Numbers, B0h, B1h, B2h, B3h, B4h, and C0h.