READ DISC INFORMATION コマンドで入手されるデータの構造は、次のとおりです
BYTE\bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
0 |
(MSB) |
Disc Information Length |
(LSB) |
|
1 |
2 | 予約 | Erasable | State of last Session | Disc Status |
3 | Number of First Track on Disc |
4 | Number of Sessions (Least Significant Byte) |
5 | First Track Number in Last Session (Least Significant Byte) |
6 | Last Track Number in Last Session (Least Significant Byte) |
7 | DID_V | DBC_V | URU | 予約 | DBit | BG Format Status |
8 | Disc Type |
9 | Number of Sessions (Most Significant Byte) |
10 | First Track Number in Last Session (Most Significant Byte) |
11 | Last Track Number in Last Session (Most Significant Byte) |
12 |
(MSB) |
Disc Identification |
(LSB) |
|
13 |
14 |
15 |
16 |
(MSB) |
Last Session Lead-in Start Time HMSF |
(LSB) |
|
17 |
18 |
19 |
20 |
(MSB) |
Last Possible Start Time for Start of Lead-out HMSF |
(LSB) |
|
21 |
22 |
23 |
24 |
(MSB) |
Disc Bar Code |
(LSB) |
|
… |
31 |
32 | 予約 |
33 | Number of OPC Table Entries (=n) |
34〜34+8*n | OPC Table Entries |
よくわかっていないパラメータも多いので、
適当に飛ばします。
Disc Information Length はこのデータの全記述に必要なバイト数です。
ただし、それ自体のバイト数 (2バイト) が除かれています。
OPC Table Entries の数によって変わるので、必要によっては
この値を入手した後でメモリを確保し直し、もう一度コマンドを送ってください。
Disc Status では、メディアが空かどうかが判ります。
Disc Status | 意味 |
00B | 空のディスク |
01B | 追記可能なディスク(上書き可能も含まれるかも) |
10B | データが書かれたディスク(ROM と焼かれた R/W) |
11B | その他 |
State of last Session は、追記する際の最後のセッションの状態を返します。
Status | 意味 |
00B | 空のセッション |
01B | 追記可能なセッション |
10B | 予約 もしくは DVD-R/W では壊れたセッション |
10B | 完全なセッション |
Erasable が 1 ならば消去可能なメディア、つまり RW か RAM などです。
0 であれば、消去不可、つまり ROM か 焼かれた ±R メディアです。
Number of First Track は、空の CD-R/W では 0 で、それ以外は 1 です。
Number of Sessions は、セッション数、
First Track Number in Last Session は、最後のセッションにおける最初のトラック番号、
Last Track Number in Last Session は、最後のセッションにおける最後のトラック番号、
です。(直訳ですみません。)
DID_V (Disc ID Valid) が 1 ならば、Disc Identification が有効です。
DBC_V (Disc Bar Code Valid) が 1 ならば、Disc Bar Code field が有効です。
Disc Type は次のとおりです。
Disc Type | 意味 |
0x00 | CD-DA または CD-ROM |
0x10 | CD-I |
0x20 | CD-ROM XA |
0xFF | 決まっていない |
他 | 予約 |
Last Session Lead-in Start Time は、書き込みのスタート位置です。
Last Possible Start Time for Start of Lead-out は、データを書き込める最後の位置です。
この2つは CD-R/W で有効です。
ROM や 終了した -R/W では FF:FF:FF:FF (=70016880 lba) という値が返ってきます。
空の DVD±R/W などでは 0 です。
DVD などでは、READ DISC STRUCTURE コマンドを使ってください。
Number of OPC Table Entries は、OPC Table Entries の数です。
OPC Table Entries は、1ブロックが8バイトで、その構造は次のとおりです。
BYTE\bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
0 |
(MSB) |
Speed (kBytes per second) |
(LSB) |
|
1 |
2 |
|
3 |
4 |
5 |
6 |
7 |
OPC Values はメーカー毎に異なります。