Documented meaning of START/STOP UNIT bits

This commit is contained in:
Thomas Schmitt 2009-11-30 10:00:34 +00:00
parent 685f057288
commit dda4ca8108
2 changed files with 23 additions and 3 deletions

View File

@ -1 +1 @@
#define Cdrskin_timestamP "2009.11.28.122436"
#define Cdrskin_timestamP "2009.11.30.100152"

View File

@ -17,7 +17,27 @@
int mmc_function_spy(struct burn_drive *d, char * text);
/* spc command set */
/* START STOP UNIT as of SBC-1 and SBC-2
0: Opcode 0x1B
1: bit0= Immed
bit1-7= reserved
2: reserved
3: reserved
4: bit0= Start (else Stop unit)
bit1= Load/Eject (according to Start resp. Stop)
bit2-3= reserved
bit4-7= Power Condition
0= Start Valid: process Start and Load/Eject bits
1= assume Active state
2= assume Idle state
3= assume Stanby state
(5= SBC-1 only: assume Sleep state)
7= transfer control of power conditions to logical unit
10= force idle condition timer to 0
11= force standby condition timer to 0
All others are reserved.
5: Control (set to 0)
*/
static unsigned char SBC_LOAD[] = { 0x1b, 0, 0, 0, 3, 0 };
static unsigned char SBC_UNLOAD[] = { 0x1b, 0, 0, 0, 2, 0 };
static unsigned char SBC_START_UNIT[] = { 0x1b, 0, 0, 0, 1, 0 };
@ -101,7 +121,7 @@ int sbc_start_unit(struct burn_drive *d)
ret = sbc_start_unit_flag(d, 1);
if (ret <= 0)
return ret;
/* Synchronous to catch Pioneer DVD-216D which is ready too early.
/* Synchronous to catch Pioneer DVR-216D which is ready too early.
A pending START UNIT can prevent ejecting of the tray.
*/
ret = sbc_start_unit_flag(d, 0);