★ PROGRAMMER'S GUIDE ★ CD communication I / F (CD part)Status | explanation |
|---|---|
<BUSY> | During state transition |
<PAUSE> | Pausing (pause) |
<STANDBY> | Standby (drive stopped state) |
<PLAY> | Playing a CD |
<SEEK> | Seeking |
<SCAN> | Scan playback |
<OPEN> | The tray is open |
<NODISC> | No disk |
<RETRY> | Read retry processing in progress |
<ERROR> | Read data error occurred |
<FATAL> | A fatal error has occurred (requires stop command) |
Drive command | Corresponding function |
|---|---|
CD block initialization | CDC_CdInit |
Open tray | CDC_CdOpen |
play | CDC_CdPlay |
seek | CDC_CdSeek |
Pause | CDC_CdSeek |
stop | CDC_CdSeek |
scan | CDC_CdScan |
Figure 4.1 CD drive state transition diagram (normal system)
Figure 4.2 State transition diagram of CD drive (error system)
Status | explanation | Internal state |
|---|---|---|
<RETRY> | If the retry succeeds, it becomes <PLAY>, and if it fails, it becomes <ERROR>. | <SEEK> |
<ERROR> | The state does not change until the next drive command is issued. | <PAUSE> |
<FATAL> | Issue a stop command and try to recover. | <STANDBY> |
Operation | Automatic | command | ||||||
|---|---|---|---|---|---|---|---|---|
Initialize | Tray open | play | Seek | Pause | stop | scan | ||
<BUSY> | There is a change | <PAUSE> | <OPEN> | <PLAY> | <SEEK> | <PAUSE> | <STANDBY> | <SCAN> |
<PAUSE> | <STANDBY> | <PAUSE> | <OPEN> | <PLAY> | <SEEK> | <PAUSE> | <STANDBY> | <SCAN> |
<STANDBY> | − | <PAUSE> | <OPEN> | <PLAY> | <SEEK> | <PAUSE> | <STANDBY> | <SCAN> |
<PLAY> | <PAUSE> | <PAUSE> | <OPEN> | <PLAY> | <SEEK> | <PAUSE> | <STANDBY> | <SCAN> |
<SEEK> | <PAUSE> | <PAUSE> | <OPEN> | <PLAY> | <SEEK> | <PAUSE> | <STANDBY> | <SCAN> |
<SCAN> | <PAUSE> | <PAUSE> | <OPEN> | <PLAY> | <SEEK> | <PAUSE> | <STANDBY> | <SCAN> |
<OPEN> | − | <PAUSE> | <OPEN> | <PLAY> | <SEEK> | <PAUSE> | <STANDBY> | <SCAN> |
<NODISC> | − | <OPEN> | <OPEN> | <OPEN> | <OPEN> | <OPEN> | <OPEN> | <OPEN> |
<RETRY> | There is a change | <PAUSE> | <OPEN> | <PLAY> | <SEEK> | <PAUSE> | <STANDBY> | <SCAN> |
<ERROR> | − | <PAUSE> | <OPEN> | <PLAY> | <SEEK> | <PAUSE> | <STANDBY> | <SCAN> |
<FATAL> | − | Indefinite | Indefinite | Indefinite | Indefinite | Indefinite | Indefinite * | Indefinite |
Figure 4.3 Sectors pointed to by the current FAD
Figure 4.4 Relationship between playback range and current position
Operation (command) | No repeat | With repeat | ||
Status | PEND | Status | PEND | |
CD playback finished | <PAUSE> with FAD = end position +1 | 1 | Seek to the start position <PLAY> | 0 |
Play CD → Change playback range → Cancel pause | At the current position <PAUSE> | |||
seek | At the target position <PAUSE> | 1 | At the target position <PAUSE> | 0 |
Scan playback | <PAUSE> in an indefinite position | 1 | <PAUSE> in an indefinite position | 0 |
A PEND flag of 0 means no change.
Figure 4.5 Timing of subcode updates and SCDQ flags
★ PROGRAMMER'S GUIDE ★ CD communication I / F (CD part)