2007年02月27日

Multimedia Commands 一覧(コード順)

Multimedia Commands のコード順の一覧も載せておきます。

コマンド名コード内容紹介ページ
TEST UNIT READY0x00デバイスが使用可能か調べる CDB
REWIND0x01巻き戻し CDB
REQUEST SENSE0x03--
FORMAT UNIT0x04--
INQUIRY0x12ドライブの名前やメーカー名などの情報を取得 CDB
START STOP UNIT0x1Bトレイの出し入れを行う CDB
PREVENT ALLOW MEDIUM REMOVAL0x1Eドア/トレイをロック/解除 CDB
READ FORMAT CAPACITIES0x23--
READ CAPACITY0x25--
READ (10)0x28ディスクのデータを読む CDB
WRITE (10)0x2Aメディアにデータを焼く CDB
SEEK (10)0x2B--
WRITE AND VERIFY (10)0x2E--
VERIFY (10)0x2Fデータを読み取れるか確かめる CDB
SYNCHRONIZE CACHE0x35書き込みを最後まで確実に行う CDB
WRITE BUFFER0x3B--
READ BUFFER0x3C--
READ TOC/PMA/ATIP0x43CDのトラックのリストを取得 CDB, 0000b, 0010b
GET CONFIGURATION0x46現在入っているメディアの種類と、ドライブが読み書きできるメディアの種類などを取得 CDB, Data, 0x00
GET EVENT STATUS NOTIFICATION0x4A--
READ DISC INFORMATION0x51ディスクの容量や空か消去可能かなどの情報を取得 CDB, Data
READ TRACK INFORMATION0x52--
RESERVE TRACK0x53DVDメディアにこれから書き込む容量を設定 CDB
SEND OPC INFORMATION0x54ディスクを焼くときにレーザーの出力を調整する CDB
MODE SELECT (10)0x55ドライブの書き込み方法やエラーに対する対応を設定 CDB, 0x01, 0x05(1), 0x05(2)
REPAIR TRACK0x58--
MODE SENSE (10)0x5Aドライブの書き込み方法やエラーに対する対応を取得 CDB, 0x01, 0x2A
CLOSE TRACK SESSION0x5B--
READ BUFFER CAPACITY0x5Cドライブのバッファの空き容量を調べる CDB
SEND CUE SHEET0x5DCDを焼くときにトラックのリストを設定 CDB, Data1, Data2
BLANK0xA1メディアを消去、初期化 CDB
SEND KEY0xA3--
REPORT KEY0xA4--
LOAD/UNLOAD MEDIUM0xA6--
SET READ AHEAD0xA7--
READ (12)0xA8--
WRITE (12)0xAA--
GET PERFORMANCE0xACメディアの読み取り、書き込み可能な速度などを取得 CDB, Header, 0x00, 0x03
READ DISC STRUCTURE
(READ DVD STRUCTURE)
0xADDVD以降のディスクの種類や各層の容量を取得 CDB, 0x00, 0xFF
SET STREAMING0xB6--
READ CD MSF0xB9時間アドレスで指定した位置からCDのデータを読む CDB
SET CD SPEED0xBBディスクの読み書き速度を設定 CDB
MECHANISM STATUS0xBD--
READ CD0xBE論理アドレスで指定した位置からCDのデータを読む CDB, (2), (3)
SEND DISC STRUCTURE
(SEND DVD STRUCTURE)
0xBFDVD(以降)を焼くときに、1層目の容量(多層ディスク)や日時(DVD-R)を設定 CDB, 0x20


抜けているコードの中には、定義されていないものだけではなく、ドライブメーカーが独自に割り当てているコマンドや、消えてしまったコマンドもあります。
posted by 七癖 at 10:22| Comment(0) | TrackBack(0) | Multimedia Commands | このブログの読者になる | 更新情報をチェックする

2007年02月25日

Multimedia Commands 一覧 (アルファベット順)

とりあえず、紹介する予定であったコマンドは一通り説明したので、 改めて一覧を載せておきます。 なお、このブログでは説明していないコマンドも、全てではありませんが名前とコードのみ載せておきます。

コマンド名コード内容紹介ページ
BLANK0xA1メディアを消去、初期化 CDB
CLOSE TRACK SESSION0x5B--
FORMAT UNIT0x04--
GET CONFIGURATION0x46現在入っているメディアの種類と、ドライブが読み書きできるメディアの種類などを取得 CDB, Data, 0x00
GET EVENT STATUS NOTIFICATION0x4A--
GET PERFORMANCE0xACメディアの読み取り、書き込み可能な速度などを取得 CDB, Header, 0x00, 0x03
INQUIRY0x12ドライブの名前やメーカー名などの情報を取得 CDB
LOAD/UNLOAD MEDIUM0xA6--
MECHANISM STATUS0xBD--
MODE SELECT (10)0x55ドライブの書き込み方法やエラーに対する対応を設定 CDB, 0x01, 0x05(1), 0x05(2)
MODE SENSE (10)0x5Aドライブの書き込み方法やエラーに対する対応を取得 CDB, 0x01, 0x2A
PREVENT ALLOW MEDIUM REMOVAL0x1Eドア/トレイをロック/解除 CDB
READ (10)0x28ディスクのデータを読む CDB
READ (12)0xA8--
READ BUFFER0x3C--
READ BUFFER CAPACITY0x5Cドライブのバッファの空き容量を調べる CDB
READ CAPACITY0x25--
READ CD0xBE論理アドレスで指定した位置からCDのデータを読む CDB, (2), (3)
READ CD MSF0xB9時間アドレスで指定した位置からCDのデータを読む CDB
READ DISC INFORMATION0x51ディスクの容量や空か消去可能かなどの情報を取得 CDB, Data
READ DISC STRUCTURE
(READ DVD STRUCTURE)
0xADDVD以降のディスクの種類や各層の容量を取得 CDB, 0x00, 0xFF
READ FORMAT CAPACITIES0x23--
READ TOC/PMA/ATIP0x43CDのトラックのリストを取得 CDB, 0000b, 0010b
READ TRACK INFORMATION0x52--
REPAIR TRACK0x58--
REPORT KEY0xA4--
REQUEST SENSE0x03--
RESERVE TRACK0x53DVDメディアにこれから書き込む容量を設定 CDB
REWIND0x01巻き戻し CDB
SEEK (10)0x2B--
SEND CUE SHEET0x5DCDを焼くときにトラックのリストを設定 CDB, Data1, Data2
SEND DISC STRUCTURE
(SEND DVD STRUCTURE)
0xBFDVD(以降)を焼くときに、1層目の容量(多層ディスク)や日時(DVD-R)を設定 CDB, 0x20
SEND KEY0xA3--
SEND OPC INFORMATION0x54ディスクを焼くときにレーザーの出力を調整する CDB
SET CD SPEED0xBBディスクの読み書き速度を設定 CDB
SET READ AHEAD0xA7--
SET STREAMING0xB6--
START STOP UNIT0x1Bトレイの出し入れを行う CDB
SYNCHRONIZE CACHE0x35書き込みを最後まで確実に行う CDB
TEST UNIT READY0x00デバイスが使用可能か調べる CDB
VERIFY (10)0x2Fデータを読み取れるか確かめる CDB
WRITE (10)0x2Aメディアにデータを焼く CDB
WRITE (12)0xAA--
WRITE AND VERIFY (10)0x2E--
WRITE BUFFER0x3B--


MMC6 を参照して書き出しました。けっこう説明していないコマンドが多いです。 それらの中には、追記やランダム書き込みに使用するコマンドと、キー関係のコマンドがあります。 SET STREAMING と WRITE (12) は説明できるようになりたいです。

それから、 昨今の規格の乱立のため、コマンド名や内容が変わることがよくあります。 なお、ドライブのメーカーがその製品専用のコマンドを用意している場合もありますが、 当然汎用性はありません。

posted by 七癖 at 10:46| Comment(1) | TrackBack(0) | Multimedia Commands | このブログの読者になる | 更新情報をチェックする

2007年02月23日

READ(10)

DVD のデータや CD-ROM のデータ部分のみを読み取るときには、READ(10) コマンドを使います。

READ(10) コマンドの CDB は次のとおりです。

BYTE\bit 7 6 5 4 3 2 1 0
0Operation Code = 0x28
1予約DPO =0FMA予約廃止
2
(MSB)
 
Logical Block Address
 
(LSB)
3
4
5
6予約
7
(MSB)
Transfer Length
(LSB)
8
9Control

FUA (Force Unit Access) が 1 であれば、ディスクから直接読み取ります。
0 であれば、メモリ内のキャッシュがあればそれを使います。

Logical Block Address に読み取りを開始する位置をセクタで指定します。
Transfer Length に読み取るセクタ数を指定します。

データ用のバッファには、読み取ったデータが入ります。
必要な量("Transfer Length" × 1セクタの大きさ(大抵2048) [BYTE])のメモリをあらかじめ確保しておいてください。

posted by 七癖 at 12:05| Comment(0) | TrackBack(0) | Multimedia Commands | このブログの読者になる | 更新情報をチェックする

2007年02月17日

VERIFY(10)

Verify (ベリファイ) は"照合する"という意味らしいのですが、ライティングの世界では、 "ただ読み出せるか確かめる"という意味で使われているようです。 ちなみに Compare (コンペア) は、"比較する" という意味で、 こちらが元データと照らし合わせる為に使われております。 英語の微妙なニュアンスがわからないもので情けないです。
しかしながら、この VERIFY(10) コマンドは、私の使い方が間違っているためか、 上手く働かない場合が多いです。 一応書いておきますが、あまり信用しないでください。 読み出してみてかつデータの確認をするのであれば、READ(10) や、READ CD コマンドなどを 使ったほうが確実です。

VERIFY(10) コマンドの CDB は次のとおりです。

BYTE\bit 7 6 5 4 3 2 1 0
0Operation Code = 0x2F
1予約DPO =0予約BytChk =0廃止
2
(MSB)
 
Logical Block Address
 
(LSB)
3
4
5
6G3tout予約
7
(MSB)
Number of Blocks
(LSB)
8
9Control

Logical Block Address がベリファイを開始する位置です。
Number of Blocks がベリファイを行うセクタ数です。 0 だとベリファイを行いません。

G3tout が 0 の場合、処理が終わるまで戻りません(Group 2 Timeouts)。 1 はストリーミング方式で使用します(Group 3 Timeouts)。 実は、タイムアウト関係はよく理解していません。

VERIFY(10) コマンドのエラーは Read/Write Error Recovery Mode Page で決定されます。

posted by 七癖 at 10:42| Comment(0) | TrackBack(0) | Multimedia Commands | このブログの読者になる | 更新情報をチェックする

2007年02月15日

Windows Me の再インストール時に困った不明のデバイスの問題

前のクリーンインストールで生じた"不明のデバイス"(PCI Universal Serial Bus)は、やはり USB2.0 用のデバイスでした。

それで、前の前のバックアップを見ると、"usb2.inf" というファイルがあって、中に "For Windows 2000 and Windows XP" って書いてある…。それで、OS が違うためでしょうか、"Intel PCI to USB Enhanced Host Controller" という名前だけの情報が選ばれていたようでした。いやはや、自分で入れたはずなのに、まったく思い出せません。

それで、インストールする Intel(R) Chipset Software Installation Utility (INFユーティリティ)(ver.5.0.2)"infinst_autol.exe" を解凍してみたところ、"USB2NDRV.INF" というファイルの Me 用があったのですが、これが標準ではインストールされません。バージョンによっては "-USB" というスイッチを付けて実行すれば良いようなのですが、途中からスイッチが削除されていて、最新のバージョンではこのファイル自体が削除されています(98用は残っていたりします)。しかも、これもまた名前だけの、黄色い"?"を消すためのドライバ情報でした。

どうせプリンタとの兼ね合いで USB2.0 は使えないのと、"不明なデバイス"があるのは気持ち悪いのと、前の"usb2.inf"より新しかったのとで、先に"USB2NDRV.INF"などを取り出しておき、"ドライバの更新"からこれを選ぶことにしました。今は"Intel(R) 82801DB/DBM USB2 Enhanced Host Controller - 24CD"という名前になっております。チップセットの名前と一致したので、これでいきます。
posted by 七癖 at 10:09| Comment(0) | TrackBack(1) | Windows Me | このブログの読者になる | 更新情報をチェックする

2007年02月13日

Seesaa BLOG がリニューアル

リニューアルキャンペーン
リニューアルキャンペーン開催中
Seesaaブログが新しくなりました。デザインはもちろん使い勝手もさらに便利に!
新規登録の方も既にお使いの方もプレゼントが当たるチャンス。



たまには、ブログサーバーのキャンペーンに乗ってみます。

それで、デザインが変更された感想ですが、はっきり言って使いにくくなりました。
理由は、デザインが崩れるから。
って、推奨環境が Windows XP/Vista、Mac OSX と IE6.x、firefox1.5以上、safari1.3以上、になってました。
ME & IE5.5 ユーザーは置き去りですか。
アクセス解析を見ると、Win2k もそこそこで、UNIX や Linux や WinNT や Win95 もいるのだけれどもなあ。
(Opera や IE7 はどうなのでしょうか。)

せめて、全体が左に寄るのだけでもなんとかしてくれないかなあ。

あと、前から思っているのですが、アクセス解析のリンク元から検索エンジンの検索後の URL を抜いてくれませんかねえ。ほとんどが Google と Yahoo でして、せっかくリンクしてくださったサイトを探すのが大変で仕方ないので。
ラベル:Seesaa
posted by 七癖 at 18:10| Comment(0) | TrackBack(0) | 雑記 | このブログの読者になる | 更新情報をチェックする

2007年02月11日

再開のお知らせ

OS の再インストールですが、"不明なデバイス"の問題と解決策をあらかじめ確定してなかったが為に、都合4回もやり直すことになってしまいました。この話はまたそのうちに…。
今回は WindowsUpdate が終了した時の事を考えて、保管しておいたパッチを一つずつ当ててみました。半分くらいで再起動を要求されて面倒でしたが、それに応じたためか前より調子がいいです。
必要なソフトをインストールし終えて、デフラグをかけてこれで完璧と思いきや、VisualC++6 でこれまでビルド出来ていたプログラムがビルド出来ず、インストールに不備があったことがわかってがっくりしています。なかなか全てが上手くはいかないものです。
全体としては今のところ満足しているので、このままいきます。出来ればずっと。

それから、ブログのデザインの修正は、まとめページ以外は終えました。サーバーから提供されたスタイルシートを所々変更しています。IE5.5SP2 以外では確認していませんので、他では崩れているかもしれません。まあ、このブログではむやみに大きな表が載せられているため、記事が左メニューの下に移動するのはいつものことですが。リンクされている文字列は青系でカーソルが上に乗ったときと履歴にあるときとで微妙に変化しますが、余計見難くなったかもしれません。
とくに苦情がなければ、このままいきます。

というわけで再開します。またしばらくは雑談かなあ。
posted by 七癖 at 14:59| Comment(0) | TrackBack(0) | 雑記 | このブログの読者になる | 更新情報をチェックする