ftp.nice.ch/pub/next/tools/scsi/SCSI2_ToolBox.941207.NI.bs.gnutar.gz#/SCSI2_ToolBox/SCSI2_Kit/Documentation/SCSI2_Spec/s2r10c15.txt

This is s2r10c15.txt in view mode; [Download] [Up]

15. Optical Memory Devices

15.1. Model for Optical Memory Devices

  An optical memory device is a is one that can potentially support a variety 
of optical media, (e.g., read-only, write-once, erasable, or reversible).  In 
several respects an optical memory device is similar to a direct-access 
device.  However optical memory devices typically offer features that are not 
available with other devices, including very large capacity removable media. 
  These devices often require the functions which are not found in direct-
access devices such as logical block update, pre-erasure before writing, or 
scanning for blank medium and twelve-byte command descriptor blocks.  

  This standard has specific device types for write-once and CD-ROM devices 
which also use optical media, but are not capable of supporting a several 
types of optical media.  It is possible to implement devices using write-once 
media as optical memory devices.  It is possible to implement devices using 
read-only media as optical memory devices, however devices using CD-ROM media 
have certain unique characteristics and should not be implemented as optical 
memory devices.

  A model of optical memory devices is complicated by the nature of one of its 
potential advantages, that it can support media which has different 
characteristics.  There are three types of optical media in general use, read-
only, write-once and reversible.  Read-only media is typically used as for 
publishing applications requiring dissemination of large amounts of data, 
since the data can be replicated on a disk at low cost.  Write-once media is 
used in applications that have large backup or archiving requirements.  It is 
also used in applications that have a need for large amounts of on-line 
reference information.  Reversible media is typically used in applications 
that need large amounts of temporary storage (e.g., graphics workstations) and 
can take advantage of removable media.  In some applications reversible media 
drives are used in place of direct-access devices.

  Reversible media usually needs to be reversed (erased, blanked) before new 
data can be written.  In such cases an erase operation is required before data 
can be written.  Some optical memory devices perform this erase operation 
implicit with each write operation which typically will impact the data 
throughput. Some devices can perform the erase as a separately.  The ERASE 
command may be used to erase areas of the medium  with a corresponding 
increase in data throughput on subsequent write operations.  Products using 
optical media should not be implemented as direct-access devices due to the 
overhead penalty on performance from the emulation and lack of support in 
direct-access devices to take advantage of the sophisticated features 
available in with optical memory devices.  

  The type of medium supported by the device and the type of medium currently 
loaded can be determined by examining the MODE SENSE data.  One unique feature 
of optical memory devices is support of media with mixed types (e.g., media 
with read-only and write-once areas).  The INQUIRY command informs the 
initiator that the target is an optical memory device; the initiator should 
then determine the medium type from the MODE SENSE data.  The initiator needs 
to be cognizant of medium type since the devices characteristics can change 
when the media is changed.

  Write-once media can have valid data written to a logical block once.  This 
is an important feature where audit trails and permanent archives are needed.  
Many optical memory devices supporting write-once media have the ability to 
update a logical block, preserving the previous generation of data.  These 
devices usually provide a means to recover the previous data through use of 
commands that allow read access to the different generations of data that are 
stored at the same logical block address.

  An important requirement in dealing with optical media is determining the 
which logical blocks are contain written data and which are blank.  A blank 
logical block is one that is properly initialized so that data written to it 
can be recovered.  The logical blocks usually have a flag associated with each 
that indicates whether they have been written or not. 

  Many of the strategies used to manage write once and erasable media depend 
on being able to determine the boundary between written and blank areas of the 
medium.  The MEDIUM SCAN command is useful in finding blank areas for 
subsequent write operations.


15.1.1. Defect Management

  Defect management can also be performed by use of logical block can be 
updating in a manner similar to that used by direct-access devices with the 
REASSIGN BLOCKS command.  The advantage of using the updating (which is not 
supported by direct-access devices) is access to the previous data.

  The update operation assigns an alternate physical block to the logical 
block while simultaneously writing the data to the block.  Commands are 
provided to allow the recovery of previous generations of updated blocks.

  Defect management on optical-memory devices is usually vendor specific.  
However there are standards for some types of optical-memory media that 
specify defect management techniques.  These standards, where they exist, may 
supersede the implementation requirements pertaining to error and defect 
reporting in this standard.

15.1.2. Error Reporting

  If any of the following conditions occur during the execution of a command 
the target shall return CHECK CONDITION status.  The appropriate sense key and 
additional sense code should be set.  The following table illustrates some 
error conditions and the applicable sense keys.  The table does not provide an 
exhaustive enumeration of all conditions that may cause the CHECK CONDITION 
status.










Condition                                         Sense Key
----------------------------------------------    ----------------------------
Invalid logical block address                     ILLEGAL REQUEST

Unsupported option requested                      ILLEGAL REQUEST

Target reset or medium change since
last command from this initiator                  UNIT ATTENTION

Self diagnostic failed                            HARDWARE ERROR

Unrecovered read error                            MEDIUM ERROR
                                                  HARDWARE ERROR

Recovered read error                              RECOVERED ERROR

Overrun or other error that might
be resolved by repeating the command              ABORTED COMMAND

Attempt to write on write protected medium        DATA PROTECT

Attempt to read a blank or previously
unwritten block.                                  BLANK CHECK

Attempt to write a previously written 
block and blank checking is enabled.              BLANK CHECK

Attempt to write on read-only medium.             DATA PROTECT


  In the case of an invalid logical block address, the sense data information 
field shall be set to the logical block address of the first invalid address.

  In the case of an attempt to read a blank or previously unwritten block, the 
sense data information field shall be set to the logical block address of the 
first blank block encountered.  The data read up to that block shall be 
transferred.

  In the case of an attempt to write a previously written block and blank 
checking is enabled, the sense information field shall be set to the logical 
block address of the first non-blank block encountered.














15.2. Commands for Optical Memory Devices

  The commands for optical memory devices shall be as shown in Table 15-1 and 
15-2.

              Table 15-1: Commands for Optical Memory Devices(1)

==============================================================================
                                Operation
Command Name                       Code   Type    Section     Page
------------------------------------------------------------------------------
CHANGE DEFINITION                  40h      O      7.2.1
COMPARE                            39h      O      7.2.2
COPY                               18h      O      7.2.3
COPY AND VERIFY                    3Ah      O      7.2.4
ERASE(10)                          2Ch      O     15.2.1
ERASE(12)                          ACh      O     15.2.2
FORMAT UNIT                        04h      O      8.2.1
INQUIRY                            12h      M      7.2.5
LOCK UNLOCK CACHE                  36h      O      8.2.2
LOG SELECT                         4Ch      O      7.2.6
LOG SENSE                          4Dh      O      7.2.7
MEDIUM SCAN                        38h      O     15.2.3
MODE SELECT(6)                     15h      O      7.2.8
MODE SELECT(10)                    55h      O      7.2.9
MODE SENSE(6)                      1Ah      O      7.2.10
MODE SENSE(10)                     5Ah      O      7.2.11
PRE-FETCH                          34h      O      8.2.3
PREVENT ALLOW MEDIUM REMOVAL       1Eh      O      8.2.4
READ(6)                            08h      O      8.2.5
READ(10)                           28h      M      8.2.6
READ(12)                           A8h      O     15.2.4
READ BUFFER                        3Ch      O      7.2.12
READ CAPACITY                      25h      M      8.2.7
READ DEFECT DATA(10)               37h      O      8.2.8                  
READ DEFECT DATA(12)               B7h      O     15.2.5
READ GENERATION                    29h      O     15.2.6
READ LONG                          3Eh      O      8.2.9
READ UPDATED BLOCK                 2Dh      O     15.2.7
REASSIGN BLOCKS                    07h      O      8.2.10
RECEIVE DIAGNOSTIC RESULTS         1Ch      O      7.2.13
RELEASE                            17h      M      8.2.11
REQUEST SENSE                      03h      M      7.2.14
RESERVE                            16h      M      8.2.12
REZERO UNIT                        01h      O      8.2.13
=============================================================================









              Table 15-2: Commands for Optical Memory Devices(2) 

==============================================================================
                                Operation
Command Name                       Code   Type    Section     Page
------------------------------------------------------------------------------
SEARCH DATA EQUAL(10)              31h      O      8.2.14.1
SEARCH DATA EQUAL(12)              B1h      O     15.2.8
SEARCH DATA HIGH(10)               30h      O      8.2.14.2
SEARCH DATA HIGH(12)               B0h      O     15.2.8
SEARCH DATA LOW(10)                32h      O      8.2.14.3
SEARCH DATA LOW(12)                B2h      O     15.2.8
SEEK(6)                            0Bh      O      8.2.15
SEEK(10)                           2Bh      O      8.2.15
SEND DIAGNOSTIC                    1Dh      M      7.2.15
SET LIMITS(10)                     33h      O      8.2.16
SET LIMITS(12)                     B3h      O     15.2.9
START STOP UNIT                    1Bh      O      8.2.17
SYNCHRONIZE CACHE                  35h      O      8.2.18
TEST UNIT READY                    00h      M      7.2.16
UPDATE BLOCK                       3Dh      O     15.2.10
VERIFY(10)                         2Fh      O     15.2.11
VERIFY(12)                         AFh      O     15.2.12
WRITE(6)                           0Ah      O      8.2.20
WRITE(10)                          2Ah      M     15.2.13
WRITE(12)                          AAh      O     15.2.14
WRITE AND VERIFY(10)               2Eh      O     15.2.15
WRITE AND VERIFY(12)               AEh      O     15.2.16
WRITE BUFFER                       3Bh      O      7.2.17
WRITE LONG                         3Fh      O      8.2.23
=============================================================================

  Key: M  =  Command implementation is mandatory.
       O  =  Command implementation is optional.

  The following codes are vendor specific: 20h, 21h, 22h, 23h, and C0h through 
FFh.  All remaining codes for optical memory devices are reserved for future 
standardization.

















15.2.1. ERASE(10) Command
     
                          Table 15-3: ERASE(10) Command

==============================================================================
  Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
Byte |        |        |        |        |        |        |        |        |
==============================================================================
 0   |                           Operation Code (2Ch)                        |
-----|-----------------------------------------------------------------------|
 1   |   Logical Unit Number    |     Reserved    |  ERA   |Reserved| RelAdr |
-----|-----------------------------------------------------------------------|
 2   | (MSB)                                                                 |
-----|---                                                                 ---|
 3   |                                                                       |
-----|---                        Logical Block Address                    ---|
 4   |                                                                       |
-----|---                                                                 ---|
 5   |                                                                 (LSB) |
-----|-----------------------------------------------------------------------|
 6   |                           Reserved                                    |
-----|-----------------------------------------------------------------------|
 7   | (MSB)                                                                 |
-----|---                        Transfer Length                          ---|
 8   |                                                                 (LSB) |
-----|-----------------------------------------------------------------------|
 9   |                           Control                                     |
==============================================================================


  The ERASE(10) command (Table 15-3) requests that the target erase the 
specified number of blocks starting at the specified logical block address on 
the medium.  As used here, "erased" means either the medium shall be erased, 
or a pattern shall be written on the medium that appears to the target as no 
data present.  The blocks erased shall be considered blank for purposes of 
blank checking (see 15.1).  The previous data recorded on the medium, if any, 
shall not be recoverable.

  The erase all (ERA) bit set to one indicates that all remaining blocks on 
the medium shall be erased.  If the ERA bit is set to one and if the number of 
blocks is not zero, the target shall return CHECK CONDITION, and the sense key 
shall be set to ILLEGAL REQUEST, with an additional sense code of INVALID 
FIELD IN CDB.

  See 8.2.2 for a description of the RelAdr bit and logical block address 
field.

  The transfer length specifies the number of contiguous logical blocks that 
shall be erased when the ERA bit is zero.  If the ERA bit is zero a transfer 
length of zero indicates that no blocks shall be erased.  This condition shall 
not be considered as an error and no data shall be erased.  Any other value 
indicates the number of logical blocks that shall be erased. 



  This command shall be terminated with a status of RESERVATION CONFLICT if 
any reservation access conflict (see 8.2.12) exists and no data shall be 
erased.

  IMPLEMENTORS NOTE:  This command allows the user to separate the erase and 
  write operations.  This may increase system performance in certain 
  applications.  

15.2.2. ERASE(12) Command
     
                        Table 15-4: ERASE(12) Command

==============================================================================
  Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
Byte |        |        |        |        |        |        |        |        |
==============================================================================
 0   |                           Operation Code (ACh)                        |
-----|-----------------------------------------------------------------------|
 1   |   Logical Unit Number    |     Reserved    |  ERA   |Reserved| RelAdr |
-----|-----------------------------------------------------------------------|
 2   | (MSB)                                                                 |
-----|---                                                                 ---|
 3   |                                                                       |
-----|---                        Logical Block Address                    ---|
 4   |                                                                       |
-----|---                                                                 ---|
 5   |                                                                 (LSB) |
-----|-----------------------------------------------------------------------|
 6   | (MSB)                                                                 |
-----|---                                                                 ---|
 7   |                                                                       |
-----|---                        Transfer Length                          ---|
 8   |                                                                       |
-----|---                                                                 ---|
 9   |                                                                 (LSB) |
-----|-----------------------------------------------------------------------|
 10  |                           Reserved                                    |
-----|-----------------------------------------------------------------------|
 11  |                           Control                                     |
==============================================================================


  The ERASE(12) command (Table 15-4) requests that the target erase the 
specified number of blocks starting at the specified logical block address on 
the medium.

  See the ERASE(10) command (15.2.1) for a description of the fields in this 
command.







15.2.3. MEDIUM SCAN Command

                       Table 15-5: MEDIUM SCAN Command

==============================================================================
  Bit |   7    |   6    |   5    |   4    |   3    |   2    |   1   |   0    |
Byte  |        |        |        |        |        |        |       |        |
==============================================================================
 0    |                           Operation Code (38h)                       |
------|----------------------------------------------------------------------|
 1    | Logical Unit Number      |   WBS  |   ASA  |   RSD  |   PRA | RelAdr |
------|----------------------------------------------------------------------|
 2    | (MSB)                                                                |
------|---                                                                ---|
 3    |                                                                      |
------|---                        Logical Block Address                   ---|
 4    |                                                                      |
------|---                                                                ---|
 5    |                                                                (LSB) |
------|----------------------------------------------------------------------|
 6    |                           Reserved                                   |
------|----------------------------------------------------------------------|
 7    |                           Reserved                                   |
------|----------------------------------------------------------------------|
 8    |                           Parameter List Length                      |
------|----------------------------------------------------------------------|
 9    |                           Control                                    |
==============================================================================


  The MEDIUM SCAN command (Table 15-5) requests the target to scan the medium 
for a contiguous set of written or blank logical blocks.  

  A written block search (WBS) bit of zero indicates that the scan is for 
blank blocks.  A WBS bit of one indicates that the scan is for written blocks.

  An advanced scan algorithm (ASA) bit of zero indicates that the scan area is 
scanned in sequential order (as selected by the RSD bit).  An ASA bit of one 
indicates to the target that the written and blank areas within the scan area 
form contiguous extents (as opposed to scattered blocks).  This indication is 
advisory to the target.

  IMPLEMENTORS NOTE:  The purpose of this bit is to allow the target to use a 
  more advanced algorithm (such as a binary search) to locate the requested 
  blocks.

  A reverse scan direction (RSD) bit of zero indicates the scan shall begin 
with the first logical block of the scan area. A RSD bit of one indicates the 
scan shall begin with the last logical block of the scan area.






  A partial results acceptable (PRA) bit of zero indicates that the scan shall 
not be considered satisfied until a contiguous set of blocks is found within 
the scan area which is greater than or equal in size to the number of blocks 
requested, and meets the other criteria specified in the command descriptor 
block.  A PRA bit of one indicates that the scan may be satisfied by a 
contiguous set of blocks within the scan area which is less than the number of 
blocks requested, and meets the other criteria specified in the command 
descriptor block.  In this case, the target shall determine the largest 
contiguous set of blocks in the scan area for reporting to the initiator.

  See 8.2.2 for a description of the RelAdr bit and logical block address 
field.

  The parameter list length specifies the length in bytes of the parameter 
list that shall be transferred during the DATA OUT phase.  A parameter list 
length of zero indicates that the number of blocks requested field has a value 
of one, and the number of blocks to scan field has a value of zero.  This 
condition shall not be considered an error.  The contents of the parameter 
list are specified in Table 15-6.

  A link bit of zero indicates a non-linked command and if the scan is 
satisfied, the command shall be terminated with a CONDITION MET status.  A 
REQUEST SENSE command can then be issued to determine the starting logical 
block address of the area that meets the request.  If the scan is not 
satisfied and no error occurs, the command shall be terminated with GOOD 
status.

  A link bit of one indicates a command is linked to the MEDIUM SCAN command 
and if the search is satisfied, CONDITION MET status is returned and the next 
command is executed.  If the RelAdr bit in the next command is one, the 
logical block address of the next command is used as a displacement from the 
logical block address at which the search was satisfied.    If a linked scan 
is not satisfied, the command is terminated with a CHECK CONDITION status.  A 
REQUEST SENSE command may then be issued.

  A REQUEST SENSE command following a satisfied MEDIUM SCAN command shall:
  (1) Return a sense key of EQUAL if the scan was satisfied by a contiguous 
set of blocks equal in size to the number of blocks requested. If the scan was 
satisfied by a contiguous set of blocks not equal in size to the number of 
blocks requested, then a sense key of NO SENSE shall be returned.
  (2) Return the valid bit set to one.
  (3) Return the logical block address of the first logical block of the 
contiguous set of blocks that satisfied the scan criteria in the information 
bytes.
  (4) Return the number of contiguous logical blocks meeting the scan criteria 
in the command specific information bytes.

  A REQUEST SENSE command following an unsatisfied MEDIUM SCAN command shall:
  (1) Return a sense key of NO SENSE if no errors occurred during the command 
execution.
  (2) Return the valid bit set to zero.




                    Table 15-6: MEDIUM SCAN Parameter List

==============================================================================
  Bit |   7    |   6    |   5    |   4    |   3    |   2    |   1   |   0    |
Byte  |        |        |        |        |        |        |       |        |
==============================================================================
 0    | (MSB)                                                                |
------|---                                                                ---|
 1    |                                                                      |
------|---                        Number of Blocks Requested              ---|
 2    |                                                                      |
------|---                                                                ---|
 3    |                                                                (LSB) |
------|----------------------------------------------------------------------|
 4    | (MSB)                                                                |
------|---                                                                ---|
 5    |                                                                      |
------|---                        Number of Blocks to Scan                ---|
 6    |                                                                      |
------|---                                                                ---|
 7    |                                                                (LSB) |
==============================================================================


  The number of blocks requested field specifies the number of blocks that 
meet the specified requirements.  The number of blocks requested field, if set 
to zero, indicates that the scan shall not take place.  This shall not be 
considered an error condition.

  The number of blocks to scan field specifies the length in blocks of the 
area to be scanned on the medium.  The number of blocks to scan field, if set 
to zero, indicates that the scan shall continue for all remaining blocks on 
the medium or until the scan is satisfied.  See 15.1.3 for a description of 
error handling.





















15.2.4. READ(12) Command 

                         Table 15-7: READ(12) Command

==============================================================================
  Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
Byte |        |        |        |        |        |        |        |        |
==============================================================================
 0   |                           Operation Code (A8h)                        |
-----|-----------------------------------------------------------------------|
 1   |   Logical Unit Number    |   DPO  |   FUA  |     Reserved    | RelAdr |
-----|-----------------------------------------------------------------------|
 2   | (MSB)                                                                 |
-----|---                                                                 ---|
 3   |                                                                       |
-----|---                        Logical Block Address                    ---|
 4   |                                                                       |
-----|---                                                                 ---|
 5   |                                                                 (LSB) |
-----|-----------------------------------------------------------------------|
 6   | (MSB)                                                                 |
-----|---                                                                 ---|
 7   |                                                                       |
-----|---                        Transfer Length                          ---|
 8   |                                                                       |
-----|---                                                                 ---|
 9   |                                                                 (LSB) |
-----|-----------------------------------------------------------------------|
 10  |                           Reserved                                    |
-----|-----------------------------------------------------------------------|
 11  |                           Control                                     |
==============================================================================


  The READ(12) command (Table 15-7) requests that the target transfer data to 
the initiator from the medium.  See the READ(10) command (8.2.6) for a 
complete description of the fields in this command.


















15.2.5. READ DEFECT DATA(12) Command 

                   Table 15-8: READ DEFECT DATA(12) Command

==============================================================================
  Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
Byte |        |        |        |        |        |        |        |        |
==============================================================================
 0   |                           Operation Code (B7h)                        |
-----|-----------------------------------------------------------------------|
 1   |   Logical Unit Number    | Plist  | GList  | Defect List Format       |
-----|-----------------------------------------------------------------------|
 2   |                           Reserved                                    |
-----|-----------------------------------------------------------------------|
 3   |                           Reserved                                    |
-----|-----------------------------------------------------------------------|
 4   |                           Reserved                                    |
-----|-----------------------------------------------------------------------|
 5   |                           Reserved                                    |
-----|-----------------------------------------------------------------------|
 6   | (MSB)                                                                 |
-----|---                                                                 ---|
 7   |                                                                       |
-----|---                        Allocation Length                        ---|
 8   |                                                                       |
-----|---                                                                 ---|
 9   |                                                                 (LSB) |
-----|-----------------------------------------------------------------------|
 10  |                           Reserved                                    |
-----|-----------------------------------------------------------------------|
 11  |                           Control                                     |
==============================================================================


  The READ DEFECT DATA(12) command (Table 15-8) requests that the target 
transfer the medium defect data to the initiator. See the READ DEFECT DATA(10) 
command (8.2.8) for a description of the fields in this command.

  The READ DEFECT DATA(12) list header (Table 15-9) contains an eight byte 
header, followed by zero or more defect descriptors.















                 Table 15-9: READ DEFECT DATA(12) LIST HEADER

==============================================================================
  Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
Byte |        |        |        |        |        |        |        |        |
==============================================================================
 0   |                           Reserved                                    |
-----|-----------------------------------------------------------------------|
 1   |          Reserved        | PList  | GList  | Defect List Format       |
-----|-----------------------------------------------------------------------|
 2   |                           Reserved                                    |
-----|-----------------------------------------------------------------------|
 3   |                           Reserved                                    |
-----|-----------------------------------------------------------------------|
 4   | (MSB)                                                                 |
-----|---                                                                 ---|
 5   |                                                                       |
-----|---                        Defect List Length                          |
 6   |                                                                       |
-----|---                                                                 ---|
 7   |                                                                 (LSB) |
==============================================================================
                              Defect Descriptors
==============================================================================
 0-n |                                                                       |
==============================================================================


  See the description of the READ DEFECT DATA defect list (Table 8-19) for a 
description of the fields in this header.

























15.2.6. READ GENERATION Command

                     Table 15-10: READ GENERATION Command

==============================================================================
  Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
Byte |        |        |        |        |        |        |        |        |
==============================================================================
 0   |                           Operation Code (29h)                        |
-----|-----------------------------------------------------------------------|
 1   |   Logical Unit Number    |             Reserved              | RelAdr |
-----|-----------------------------------------------------------------------|
 2   | (MSB)                                                                 |
-----|---                                                                 ---|
 3   |                                                                       |
-----|---                        Logical Block Address                    ---|
 4   |                                                                       |
-----|---                                                                 ---|
 5   |                                                                 (LSB) |
-----|-----------------------------------------------------------------------|
 6   |                           Reserved                                    |
-----|-----------------------------------------------------------------------|
 7   |                           Reserved                                    |
-----|-----------------------------------------------------------------------|
 8   |                           Allocation Length                           |
-----|-----------------------------------------------------------------------|
 9   |                           Control                                     |
==============================================================================


  The READ GENERATION command (Table 15-10) requests that the target transfer 
to the initiator the maximum generation address for the logical block 
specified.

  See 8.2.2 for a description of the RelAdr bit and logical block address 
field.

  The READ GENERATION data is defined in Table 15-11.

                  Table 15-11: Maximum Generation Data Block

==============================================================================
  Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
Byte |        |        |        |        |        |        |        |        |
==============================================================================
 0   | (MSB)                                                                 |
-----|---                       Maximum Generation Address                ---|
 1   |                                                                 (LSB) |
-----|-----------------------------------------------------------------------|
 2   |                          Reserved                                     |
-----|-----------------------------------------------------------------------|
 3   |                          Reserved                                     |
==============================================================================


  The maximum generation address field defines the maximum generation address 
available for the logical block address specified.

15.2.7. READ UPDATED BLOCK(10) Command

                  Table 15-12: READ UPDATED BLOCK(10) Command

==============================================================================
  Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
Byte |        |        |        |        |        |        |        |        |
==============================================================================
 0   |                           Operation Code (2Dh)                        |
-----|-----------------------------------------------------------------------|
 1   |   Logical Unit Number    |   DPO  |   FUA  |     Reserved    | RelAdr |
-----|-----------------------------------------------------------------------|
 2   | (MSB)                                                                 |
-----|---                                                                 ---|
 3   |                                                                       |
-----|---                        Logical Block Address                    ---|
 4   |                                                                       |
-----|---                                                                 ---|
 5   |                                                                 (LSB) |
-----|-----------------------------------------------------------------------|
 6   | Latest | (MSB)                                                        |
-----|------------               Generation Address                          |
 7   |                                                                 (LSB) |
-----|-----------------------------------------------------------------------|
 8   |                           Reserved                                    |
-----|-----------------------------------------------------------------------|
 9   |                           Control                                     |
==============================================================================


  The READ UPDATED BLOCK(10) command (Table 15-12) requests that the target 
transfer data to the initiator from the specified generation and logical 
block.

  See 8.2.6 for a description of the cache control bits (DPO and FUA).  See 
8.2.2 for a description of the RelAdr bit and logical block address field.

  One block of data is transferred during the DATA IN phase.

  The latest bit determines the meaning of the generation address field.  A 
latest bit of zero indicates that the generation address is specified relative 
to the first generation of the block; generation address zero specifies the 
first generation.  Increasing generation addresses specify later generations.

  A latest bit of one indicates that the generation address is specified 
relative to the latest generation of the block; generation address zero 
specifies the most recent generation.  Increasing generation addresses specify 
earlier generations.

  If the requested generation does not exist, the command shall be terminated 
with CHECK CONDITION status.  The sense key shall be set to BLANK CHECK, and 
the additional sense code shall be set to GENERATION DOES NOT EXIST.

  This command shall be terminated with a status of RESERVATION CONFLICT if 
any reservation access conflict (see 8.2.12) exists and no data shall be 
transferred.

15.2.8. SEARCH DATA(12) Commands

                     Table 15-13: SEARCH DATA(12) Commands

==============================================================================
  Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
Byte |        |        |        |        |        |        |        |        |
==============================================================================
 0   |                           Operation Code (B0h, B1h, B2h)              |
-----|-----------------------------------------------------------------------|
 1   |   Logical Unit Number    | Invert |    Reserved     | SpnDat | RelAdr |
-----|-----------------------------------------------------------------------|
 2   | (MSB)                                                                 |
-----|---                                                                 ---|
 3   |                                                                       |
-----|---                        Logical Block Address                    ---|
 4   |                                                                       |
-----|---                                                                 ---|
 5   |                                                                 (LSB) |
-----|-----------------------------------------------------------------------|
 6   | (MSB)                                                                 |
-----|---                                                                 ---|
 7   |                                                                       |
-----|---                        Transfer Length                          ---|
 8   |                                                                       |
-----|---                                                                 ---|
 9   |                                                                 (LSB) |
-----|-----------------------------------------------------------------------|
 10  |                           Reserved                                    |
-----|-----------------------------------------------------------------------|
 11  |                           Control                                     |
==============================================================================


  The SEARCH DATA(12) commands (Table 15-13) search one or more logical blocks 
for equality or inequality to a data pattern.  See the SEARCH DATA(10) 
commands (8.2.14) for a description of the fields in this command.













15.2.9. SET LIMITS(12) Command 

                      Table 15-14: SET LIMITS(12) Command

==============================================================================
  Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
Byte |        |        |        |        |        |        |        |        |
==============================================================================
 0   |                           Operation Code (B3h)                        |
-----|-----------------------------------------------------------------------|
 1   |   Logical Unit Number    |         Reserved         | RdInh  | WrInh  |
-----|-----------------------------------------------------------------------|
 2   | (MSB)                                                                 |
-----|---                                                                 ---|
 3   |                                                                       |
-----|---                        Logical Block Address                    ---|
 4   |                                                                       |
-----|---                                                                 ---|
 5   |                                                                 (LSB) |
-----|-----------------------------------------------------------------------|
 6   | (MSB)                                                                 |
-----|---                                                                 ---|
 7   |                                                                       |
-----|---                        Number of Blocks                         ---|
 8   |                                                                       |
-----|---                                                                 ---|
 9   |                                                                 (LSB) |
-----|-----------------------------------------------------------------------|
 10  |                           Reserved                                    |
-----|-----------------------------------------------------------------------|
 11  |                           Control                                     |
==============================================================================


  The SET LIMITS(12) command (Table 15-14) defines the range within which 
subsequent linked commands may operate.  See the SET LIMITS(10) command 
(8.2.16) for a description of the fields in this command.


















15.2.10. UPDATE BLOCK Command

                       Table 15-15: UPDATE BLOCK Command 

==============================================================================
  Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
Byte |        |        |        |        |        |        |        |        |
==============================================================================
 0   |                           Operation Code (3Dh)                        |
-----|-----------------------------------------------------------------------|
 1   |   Logical Unit Number    |            Reserved               | RelAdr |
-----|-----------------------------------------------------------------------|
 2   | (MSB)                                                                 |
-----|---                                                                 ---|
 3   |                                                                       |
-----|---                        Logical Block Address                    ---|
 4   |                                                                       |
-----|---                                                                 ---|
 5   |                                                                 (LSB) |
-----|-----------------------------------------------------------------------|
 6   |                           Reserved                                    |
-----|-----------------------------------------------------------------------|
 7   |                           Reserved                                    |
-----|-----------------------------------------------------------------------|
 8   |                           Reserved                                    |
-----|-----------------------------------------------------------------------|
 9   |                           Control                                     |
==============================================================================


  The UPDATE BLOCK command (Table 15-15) requests that the target logically 
replace data on the medium with the data sent during the DATA OUT phase.

  See 8.2.2 for a description of the RelAdr bit and logical block address 
field.

  One block of data is transferred during the DATA OUT phase. 

  IMPLEMENTORS NOTE:  See the MODE Parameters (15.3) for a description of the 
  behavior of the UPDATE BLOCK command relative to the enable blank check 
  (EBC) bit.

  This standard does not define the result of a WRITE command issued to a 
block previously updated by an UPDATE BLOCK command when blank checking is 
disabled. 

  IMPLEMENTORS NOTE: It is recommended that the target inhibit this behavior.

  A logical block may be updated until the alternate block area is exhausted.  
The alternate blocks used for the update operation shall not be reported in 
the READ CAPACITY data. If the alternate block area is exhausted the command 
shall be terminated with CHECK CONDITION and the sense key shall be set to  
MEDIUM ERROR, and the additional sense code set to NO DEFECT SPARE LOCATION 
AVAILABLE.

  If the report updated block read parameter specifies posting of recovered 
errors for a read operation of a logical block that has had a successful 
update operation performed occurs the command shall terminate with a CHECK 
CONDITION status.  The sense key shall be set to RECOVERED ERROR and the 
additional sense code set to UPDATED BLOCK READ.

15.2.11. VERIFY(10) Command

                          Table 15-16: VERIFY Command

==============================================================================
  Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
Byte |        |        |        |        |        |        |        |        |
==============================================================================
 0   |                           Operation Code (2Fh)                        |
-----|-----------------------------------------------------------------------|
 1   |   Logical Unit Number    |   DPO  |Reserved| BlkVfy | BytChk | RelAdr |
-----|-----------------------------------------------------------------------|
 2   | (MSB)                                                                 |
-----|---                                                                 ---|
 3   |                                                                       |
-----|---                        Logical Block Address                    ---|
 4   |                                                                       |
-----|---                                                                 ---|
 5   |                                                                 (LSB) |
-----|-----------------------------------------------------------------------|
 6   |                           Reserved                                    |
-----|-----------------------------------------------------------------------|
 7   | (MSB)                                                                 |
-----|---                        Verification Length                         |
 8   |                                                                 (LSB) |
-----|-----------------------------------------------------------------------|
 9   |                           Control                                     |
==============================================================================


  The VERIFY command (Table 15-16) requests that the target verify the data on 
the medium.

  If the MODE SELECT command is implemented, and the Verify Error Recovery 
Parameters page is also implemented, then the current settings in that page 
define the verification criteria. If the Verify Error Recovery Parameters page 
is not implemented, then the verification criteria is vendor unique.

  A byte check (BytChk) bit of zero causes a medium verification to be 
performed with no data comparison. A BytChk bit of one causes a byte-by-byte 
compare of the data written on the medium and the data transferred from the 
initiator.  The data shall be transferred as it would be for a WRITE command.  
If the compare is unsuccessful, for any reason, the target shall return CHECK 
CONDITION status and the sense key shall be set to MISCOMPARE.

  A blank verify (BlkVfy) bit of one causes a verification that the blocks are 
blank. 


  If the BytChk is one when the BlkVfy bit is one, this shall be considered an 
error. The target shall return CHECK CONDITION status and the sense key shall 
be set to ILLEGAL REQUEST, and the additional sense code set to INVALID FIELD 
IN CDB.

  See 8.2.6 for a description of the cache control bits (DPO).  See 8.2.2 for 
a description of the RelAdr bit and logical block address field.

  The verification length specifies the number of contiguous logical blocks of 
data or blanks that shall be verified.  A verification length of zero 
indicates that no logical blocks shall be verified.  This condition shall not 
be considered as an error.  Any other value indicates the number of logical 
blocks that shall be verified.

15.2.12. VERIFY(12) Command

                        Table 15-17: VERIFY(12) Command

==============================================================================
  Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
Byte |        |        |        |        |        |        |        |        |
==============================================================================
 0   |                           Operation Code (AFh)                        |
-----|-----------------------------------------------------------------------|
 1   |   Logical Unit Number    |   DPO  |Reserved| BlkVfy | BytChk | RelAdr |
-----|-----------------------------------------------------------------------|
 2   | (MSB)                                                                 |
-----|---                                                                 ---|
 3   |                                                                       |
-----|---                        Logical Block Address                    ---|
 4   |                                                                       |
-----|---                                                                 ---|
 5   |                                                                 (LSB) |
-----|-----------------------------------------------------------------------|
 6   | (MSB)                                                                 |
-----|---                                                                 ---|
 7   |                                                                       |
-----|---                        Verification Length                      ---|
 8   |                                                                       |
-----|---                                                                 ---|
 9   |                                                                 (LSB) |
-----|-----------------------------------------------------------------------|
 10  |                           Reserved                                    |
-----|-----------------------------------------------------------------------|
 11  |                           Control                                     |
==============================================================================


  The VERIFY(12) command (Table 15-17) requests that the target verify the 
data on the medium.  See the VERIFY(10) command (15.2.11) for a description of 
the fields in this command.




15.2.13. WRITE(10) Command

                        Table 15-18: WRITE(10) Command

==============================================================================
  Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
Byte |        |        |        |        |        |        |        |        |
==============================================================================
 0   |                           Operation Code (2Ah)                        |
-----|-----------------------------------------------------------------------|
 1   |   Logical Unit Number    |   DPO  |   FUA  |   EBP  |Reserved| RelAdr |
-----|-----------------------------------------------------------------------|
 2   | (MSB)                                                                 |
-----|---                                                                 ---|
 3   |                                                                       |
-----|---                        Logical Block Address                    ---|
 4   |                                                                       |
-----|---                                                                 ---|
 5   |                                                                 (LSB) |
-----|-----------------------------------------------------------------------|
 6   |                           Reserved                                    |
-----|-----------------------------------------------------------------------|
 7   | (MSB)                                                                 |
-----|---                        Transfer Length                             |
 8   |                                                                 (LSB) |
-----|-----------------------------------------------------------------------|
 9   |                           Control                                     |
==============================================================================


  The WRITE(10) command (Table 15-18) requests that the target write the data 
transferred from the initiator to the medium.

  An erase by-pass (EBP) bit of zero indicates that the device will default to 
the normal write operation.  An EBP bit of one indicates that the target is 
allowed to by-pass the erase operation prior to writing the data. When 
accessing write-once media, the EBP bit shall be considered reserved.

  See 8.2.6 for a description of the cache control bits (DPO and FUA).  See 
8.2.2 for a description of the RelAdr bit and logical block address field.

  The transfer length specifies the number of contiguous logical blocks of 
data that shall be transferred.  A transfer length of zero indicates that no 
data shall be transferred.  This condition shall not be considered as an error 
and no data shall be written.  Any other value indicates the number of logical 
blocks that shall be transferred.

  This command shall be terminated with a status of RESERVATION CONFLICT if 
any reservation access conflict (see 8.2.12) exists and no data shall be 
written.





15.2.14. WRITE(12) Command

                        Table 15-19: WRITE(12) Command

==============================================================================
  Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
Byte |        |        |        |        |        |        |        |        |
==============================================================================
 0   |                           Operation Code (AAh)                        |
-----|-----------------------------------------------------------------------|
 1   |   Logical Unit Number    |   DPO  |   FUA  |   EBP  |Reserved| RelAdr |
-----|-----------------------------------------------------------------------|
 2   | (MSB)                                                                 |
-----|---                                                                 ---|
 3   |                                                                       |
-----|---                        Logical Block Address                    ---|
 4   |                                                                       |
-----|---                                                                 ---|
 5   |                                                                 (LSB) |
-----|-----------------------------------------------------------------------|
 6   | (MSB)                                                                 |
-----|---                                                                 ---|
 7   |                                                                       |
-----|---                        Transfer Length                          ---|
 8   |                                                                       |
-----|---                                                                 ---|
 9   |                                                                 (LSB) |
-----|-----------------------------------------------------------------------|
 10  |                           Reserved                                    |
-----|-----------------------------------------------------------------------|
 11  |                           Control                                     |
==============================================================================


  The WRITE(12) command (Table 15-19) requests that the target write the data 
transferred from the initiator to the medium.  See the WRITE(10) command 
(15.2.13) for a description of the fields in this command.  


















15.2.15. WRITE AND VERIFY(10) Command

                   Table 15-20: WRITE AND VERIFY(10) Command

==============================================================================
  Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
Byte |        |        |        |        |        |        |        |        |
==============================================================================
 0   |                           Operation Code (2Eh)                        |
-----|-----------------------------------------------------------------------|
 1   |   Logical Unit Number    |   DPO  |Reserved|   EBP  | BytChk | RelAdr |
-----|-----------------------------------------------------------------------|
 2   | (MSB)                                                                 |
-----|---                                                                 ---|
 3   |                                                                       |
-----|---                        Logical Block Address                    ---|
 4   |                                                                       |
-----|---                                                                 ---|
 5   |                                                                 (LSB) |
-----|-----------------------------------------------------------------------|
 6   |                           Reserved                                    |
-----|-----------------------------------------------------------------------|
 7   | (MSB)                                                                 |
-----|---                        Transfer Length                             |
 8   |                                                                 (LSB) |
-----|-----------------------------------------------------------------------|
 9   |                           Control                                     |
==============================================================================


  The WRITE AND VERIFY(10) command (Table 15-20) requests that the target 
write the data transferred from the initiator to the medium and then verify 
that the data is correctly written.

  If the MODE SELECT command is implemented, and the Verify Error Recovery 
Parameters page is also implemented, then the current settings in that page 
define the verification criteria. If the Verify Error Recovery Parameters page 
is not implemented, then the verification criteria is vendor unique.

  A byte check (BytChk) bit of zero causes a medium verification to be 
performed with no data comparison. A BytChk bit of one causes a byte-by-byte 
compare of the data written on the medium and the data transferred from the 
initiator.  The data shall be transferred as it would be for a WRITE command.  
If the compare is unsuccessful, for any reason, the target shall return CHECK 
CONDITION status and the sense key shall be set to MISCOMPARE.

  An erase by-pass (EBP) bit of zero indicates that the device will default to 
the normal write operation.  An EBP bit of one indicates that the target is 
allowed to by-pass the erase operation prior to writing the data.  When 
accessing write-once media, the EBP bit shall be considered reserved.

  See 8.2.6 for a description of the cache control bits (DPO).  See 8.2.2 for 
a description of the RelAdr bit and logical block address field.


  The transfer length specifies the number of contiguous logical blocks of 
data that shall be transferred.  A transfer length of zero indicates that no 
logical blocks shall be transferred.  This condition shall not be considered 
as an error and no data shall be written.  Any other value indicates the 
number of logical blocks that shall be transferred.


15.2.16. WRITE AND VERIFY(12) Command

                   Table 15-21: WRITE AND VERIFY(12) Command

==============================================================================
  Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
Byte |        |        |        |        |        |        |        |        |
==============================================================================
 0   |                           Operation Code (AEh)                        |
-----|-----------------------------------------------------------------------|
 1   |   Logical Unit Number    |   DPO  |Reserved|   EBP  | BytChk | RelAdr |
-----|-----------------------------------------------------------------------|
 2   | (MSB)                                                                 |
-----|---                                                                 ---|
 3   |                                                                       |
-----|---                        Logical Block Address                    ---|
 4   |                                                                       |
-----|---                                                                 ---|
 5   |                                                                 (LSB) |
-----|-----------------------------------------------------------------------|
 6   | (MSB)                                                                 |
-----|---                                                                 ---|
 7   |                                                                       |
-----|---                        Transfer Length                          ---|
 8   |                                                                       |
-----|---                                                                 ---|
 9   |                                                                 (LSB) |
-----|-----------------------------------------------------------------------|
 10  |                           Reserved                                    |
-----|-----------------------------------------------------------------------|
 11  |                           Control                                     |
==============================================================================

  The WRITE AND VERIFY(12) command (Table 15-21) requests that the target 
write the data transferred from the initiator to the medium and then verify 
that the data is correctly written.  See the WRITE AND VERIFY(10) command 
(15.2.15) for a description of the bits in this command.











15.3. Parameters for Optical Memory Devices

15.3.1. Diagnostic Parameters

  This section defines the descriptors and pages for diagnostic parameters 
used with optical memory devices. 

  The diagnostic page codes for optical memory devices are defined in Table 
15-22.

                      Table 15-22: Diagnostic Page Codes

==============================================================================
  Page Code   Description                                           Section
------------------------------------------------------------------------------
   00h        List of Supported Parameters Page                     7.3.1.1
01h - 3Fh     Reserved (for all device type pages)                  
   40h        Translate Address Page                                8.3.1
41h - 7Fh     Reserved
80h - FFh     Vendor specific pages
==============================================================================


15.3.2. Log Parameters

  This section defines the descriptors and pages for log parameters used with 
optical memory devices. 

  The log page codes for optical memory devices are defined in Table 15-23.

                          Table 15-23: Log Page Codes

==============================================================================
  Page Code   Description                                           Section
------------------------------------------------------------------------------
   01h        Buffer Over-Run/Under-Run Page                        7.3.2.1
   03h        Error Counter Page (Read) Page                        7.3.2.2
   05h        Error Counter Page (Verify) Page                      7.3.2.2
   02h        Error Counter Page (Write) Page                       7.3.2.2
   07h        Last n Error Events Page                              7.3.2.3
   00h        List of Supported Parameters Page                     7.3.2.5
   06h        Non-Media Error Page                                  7.3.2.4
   04h        Reserved
08h - 2Fh     Reserved                              
30h - 3Eh     Vendor Specific                       
   3Fh        Reserved                              
==============================================================================








15.3.3. Mode Parameters

  This section defines the descriptors and pages for mode parameters used with 
optical memory devices. 

  The mode parameter list, including the mode parameter header and mode block 
descriptor are defined in 7.3.3.

  The medium-type code field is contained in the mode parameter header (see 
Table 7-61 and 7-62).  Table 15-24 defines the medium-type code values used 
for optical memory devices.

                 Table 15-24: Optical Memory Medium-Type Codes

==============================================================================
Code Value                       Medium Type
----------  ------------------------------------------------------------------
   00h        Default (only one medium type supported)
   01h        Optical Read Only medium 
   02h        Optical Write Once medium
   03h        Optical Reversible or Erasable medium 
   04h        Combination of Read only and Write Once medium 
   05h        Combination of Read only and Reversible or Erasable medium 
   06h        Combination of Write Once and Reversible or Erasable medium 
   07h - 7Fh  RESERVED
   80h - FFh  Vendor unique
==============================================================================


  The device specific parameter field is contained in the mode parameter 
header (see Table 7-61 and 7-62).  Table 15-25 defines the device specific 
parameter values used for optical memory devices.

             Table 15-25: Optical Memory Device Specific Parameter

==============================================================================
  Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
==============================================================================
     |   WP   |    Reserved     | Cache  |           Reserved       |  EBC   |
==============================================================================


  The WP bit is reserved for the MODE SELECT command.

  For the MODE SENSE command, a write protected (WP) bit of zero indicates 
that the medium is write enabled.  A WP bit of one indicates that the medium 
is write protected.  For read-only media the WP bit is reserved.

  The cache bit is reserved for the MODE SELECT command.

  For the MODE SENSE command, a cache bit of zero indicates that the target 
does not contain a cache memory.  A cache bit of one indicates that the target 
contains a cache memory and supports the cache control bits (see 8.2.6).


  For the MODE SELECT command, an enable blank check (EBC) bit of zero advises 
the target to disable the blank checking operation of the medium during write 
operations or during an UPDATE BLOCK command.  An EBC bit of one enables blank 
checking.  If a non-blank block is found during a write operation, the command 
shall be terminated with a CHECK CONDITION status and the sense key shall be 
set to BLANK CHECK.  If a blank block is found during an UPDATE BLOCK command, 
the command shall be terminated with a CHECK CONDITION status and the sense 
key shall be set to BLANK CHECK.  For read-only media the EBC bit is reserved.

  For the MODE SENSE command, an enable blank check (EBC) bit of zero 
indicates that blank checking of the medium during write operations is 
disabled.  An EBC bit of one indicates that blank checking during write and 
update operations is enabled.  For read-only media the EBC bit is reserved.










































  The density code field is contained in the mode parameter block descriptor 
(see Table 7-63).  Table 15-26 defines the density code values used for 
optical memory devices.

                   Table 15-26: Optical Memory Density Codes

==============================================================================
Density                        Optical Media
 Code
-------  ---------------------------------------------------------------------
  00h    Default density (currently mounted density)
         
         Diameter           Sector                         Reference 
         mm (inch)   Type    Size    Tracks  Sides  Servo  Standard    Note
         ----------  ----  --------  ------  -----  -----  ----------  ----
  01h     86 (3.5)    R/W  512/1024   12500    1            660-D       1
  02h     89 (3.5)    R/W  512/1024   12500    2            581-D       1
  03h    130 (5.25)   R/W  512/1024   18750    2     CS     607-I       1
  04h    130 (5.25)   W-O  512/1024   30000    2     SS     655-D       1,2
  05h    130 (5.25)   W-O  512/1024   20000    2     SS     659-D       1,3
  06h    130 (5.25)   W-O  512/1024   18750    2     CS     457-D       1
  07h    200 (8.0)                                          407-D       1,4
  08h    300 (12.0)          1024              2            408-D       1,4
  09h    356 (14.0)          1024     56350    2            456-D       1

80h - FFh   Vendor unique
All others  Reserved
==============================================================================

Key:
           Type                       Servo
-----------------------------     ------------------------------
R/W     Erasable                   CS    Continuous Servo
W-O     Write Once                 SS    Sampled Servo
R/O     Read Only


  NOTES:
  (1) The reference standard refers to an ANSI X3B11 project under 
  development. The project may have several documents describing different 
  aspects of the media. Please contact the Secretariat for current information 
  on status and availability.
  (2) RZ modulation.
  (3) 4/15 modulation.
  (4) This project is not presently active.










  The mode page codes for optical memory devices are shown in Table 15-27.

                         Table 15-27: Mode Page Codes

==============================================================================
  Page Code   Description                                           Section
------------------------------------------------------------------------------
   08h        Caching Page                                          8.3.3.1
   0Ah        Control Mode Page                                     7.5.3.1
   02h        Disconnect-Reconnect Page                             7.3.3.2
   0Bh        Medium Types Supported Page                           8.3.3.4
   06h        Optical Memory Page                                  15.3.3.1
   09h        Peripheral Device Page                                7.3.3.3
   01h        Read-Write Error Recovery Page                        8.3.3.6
   07h        Verify Error Recovery Page                            8.3.3.8
03h - 05h     Reserved
0Ch - 1Fh     Reserved
   3Fh        Returns all pages (valid only for the MODE SENSE command)
   00h        Vendor specific (does not require page format)
20h - 3Eh     Vendor specific 
==============================================================================

15.3.3.1. Optical Memory Page

                       Table 15-28: Optical Memory Page

==============================================================================
  Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
Byte |        |        |        |        |        |        |        |        |
==============================================================================
 0   |   PS   |Reserved|         Page Code (06h)                             |
-----|-----------------------------------------------------------------------|
 1   |                           Parameter Length (02h)                      |
-----|-----------------------------------------------------------------------|
 2   |                           Reserved                           |  RUBR  |
-----|-----------------------------------------------------------------------|
 3   |                           Reserved                                    |
==============================================================================


  The optical memory page (Table 15-28) defines parameters for control of 
optical memory devices.

  The parameters savable (PS) bit is only used with the MODE SENSE command.  
This bit is reserved with the MODE SELECT command.  A PS bit of one indicates 
that the target is capable of saving the page in a non-volatile vendor-
specific location.








  A report updated block read (RUBR) bit of zero indicates the target shall 
not report an error when a command performs a successful read of a block that 
has been updated.  A RUBR bit of one indicates the target shall terminate a 
command that performs a read of a block that has been updated with CHECK 
CONDITION status, the sense key set to RECOVERED ERROR, the additional sense 
code set to UPDATED BLOCK READ, and the data shall be transferred to the 
initiator.  The default state of the RUBR bit for write-once devices (as 
reported in the INQUIRY command) shall be one.

15.4. Glossary for Optical Memory Devices

blank.  The logical block contains no information detectable by the target, or 
is written with a pattern that appears to the target as no data present.  The 
logical block is considered ready for a write operation.

generation.  Indicates a relative revision level of a logical block that has 
been updated via the UPDATE BLOCK command.  A logical block that has never 
been updated has only one generation associated with it.

read-only medium.  This is medium that may not be written by the initiator. 
The media contains data prepared in a manner not defined by this standard.

update.  To write new data to a logical block without destroying the previous 
data.  After a block has been updated, a normal read returns the most recent 
generation of the data.  Earlier generations are still available after the 
update.

write-once medium.  This is medium that may be written only once by the 
initiator.  Logical blocks on write-once media that have not been written are 
considered blank.  Logical blocks on write-once media that have been written 
may not be written again. 


























These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.