RESERVE TRACK コマンドは、CDB は、パラメータ ARSV によって 容量で指定する場合と位置(LBA)で指定する場合の2種類があります。
ARSV = 0 が先に作られたフォーマットで、容量で指定します。それは次のとおりです。
| BYTE\bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |||
| 0 | Operation Code = 0x53 | ||||||||||
| 1 | 予約 | RMZ | ARSV = 0 | ||||||||
| 2 | 予約 | ||||||||||
| 3 | 予約 | ||||||||||
| 4 | 予約 | ||||||||||
| 5 |
|
||||||||||
| 6 | |||||||||||
| 7 | |||||||||||
| 8 | |||||||||||
| 9 | Control | ||||||||||
Reservation Size に書き込むディスクの容量をセクタ単位で入力します。
RMZ は HD DVD-R で使用され、1のとき U-RMZ だそうです。
ARSV = 1 は後から加えられたフォーマットで、使ったことはありません。 古いドライブでは対応していないかもしれません。 容量を最後の論理ブロックアドレスで指定します。
| BYTE\bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |||
| 0 | Operation Code = 0x53 | ||||||||||
| 1 | 予約 | RMZ = 0 | ARSV = 1 | ||||||||
| 2 |
|
||||||||||
| 3 | |||||||||||
| 4 | |||||||||||
| 5 | |||||||||||
| 6 | 予約 | ||||||||||
| 7 | 予約 | ||||||||||
| 8 | 予約 | ||||||||||
| 9 | Control | ||||||||||
Reservation LBA に最後の位置を記入します。
読める最終アドレスは Reservation LBA -1 になります。
以下、共通項目です。
DVD-R/-RW の場合、1セクタは 2048 バイトです。 その Disc-at-once では Reservation Size と Reservation LBA は同じで、そのまま容量になります。 DVD-R/RW の Incremental や layer jump の使い方もありますが、わからないので割愛します。
DVD+R および +RW DL では、1セクタは 2048 バイトで、 容量は16の倍数になるよう自動的にかさ上げされます。
CD の Session at once ではエラーになります。
CD の Track-at-once での使い方もありますが、やはりわかりません。
なお、RESERVE TRACK コマンドでは、データ用のバッファは必要ありません。

