2007年01月31日

またもや小休止のお知らせ

OSを再インストール(ハードディスクをフォーマットしてのクリーンインストール)するため、2週間程度お休みさせていただきます。
Vista ではありません。パソコンのスペックもないし、買うお金もありません。
これまでどおりの Me です。
秋にやったときに失敗し、そのまま使ってきましたが、気分的に耐えられなくなってきたため、やり直します。今度こそは…

その後、ブログのデザインの修正を行う予定です。
変えたいところは、リンクの色関係などです。スタイルシートをいじってみます。
サーバーのリニューアルメンテナンスが2007年2月6日なので、その後になります。
少し変えるたびに更新して確認するので、何も変わっていないのに「更新された」が頻発するかもしれませんが、ご勘弁ください。
posted by 七癖 at 11:58| Comment(0) | TrackBack(0) | 雑記 | このブログの読者になる | 更新情報をチェックする

2007年01月29日

ブログの近況や「せんべえ丸かじり」の不具合など

最近、幾つものサイトで此処のプログラムを紹介していただき、ありがとうございます。おかげでアクセス数が増えてうれしい限りです。

それで、検索していたら次のサイトにて「せんべえ丸かじり」で ISO イメージが読み取れない不具合が報告がされていました。
TC_2 : http://f35.aaa.livedoor.jp/~mokeke/
報告箇所:http://f35.aaa.livedoor.jp/~mokeke/diary/200701.html#d20070108
これだけでは直しようが無いので、すみません。


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

2007年01月25日

PREVENT ALLOW MEDIUM REMOVAL

PREVENT ALLOW MEDIUM REMOVAL コマンドは、ドライブのドアをロックしたり、ロックを解除するときに用います。

GET CONFIGURATION コマンドの CDB は次のとおりです。

BYTE\bit 7 6 5 4 3 2 1 0
0Operation Code = 0x1E
1予約
2予約
3予約
4予約PersistentPrevent
5予約

Persistent にはとりあえず0を入れておいてください。(よく判りません。)
Prevent = 1 でドアをロック、
Prevent = 0 でロックを解除
します。
posted by 七癖 at 10:36| Comment(0) | TrackBack(0) | Multimedia Commands | このブログの読者になる | 更新情報をチェックする

2007年01月23日

BLANK

-RW メディアを初期化するには、BLANK コマンドを使います。
BLANK コマンドの CDB は次のとおりです。

BYTE\bit 7 6 5 4 3 2 1 0
0Operation Code = 0xA1
1予約IMMED予約Blanking Type
2
(MSB)
 
Start Address/Logical Track Number
 
(LSB)
3
4
5
6予約
7予約
8予約
9予約
10予約
11Control

IMMED が 0 であれば、初期化が終わるまで戻りません。 1 ならば、バックグラウンドで初期化処理を行うと思います。

Blanking Type は、CD-RW と DVD-RW で異なります。 どちらも、0(全フォーマット) と 1(クイックフォーマット) しか使ったことがありませんので、 列挙するに留めておきます。

CD-RW の場合
Blanking TypeNameDescription
000bBlank the discPCA、PMA、リードインからリードアウトまで初期化する
001bMinimally blank the discPMAとディスクのリードイン、最初のトラックのプレギャップのみ初期化する
010bBlank a Track 
011bUn-reserve a Track 
100bBlank a Track Tail 
101bUnclose the last complete session 
110bBlank the last non-empty Session 
111b予約 

DVD-RW の場合
Blanking TypeNameDescription
000bBlank the discRMA、リードインからリードアウトまで初期化する
001bMinimally blank the discリードインとRMAのみ初期化する
010b予約 
011bUn-reserve a Track 
100bBlank a Track Tail 
101bUnclose the last complete session 
110bBlank Session 
111b予約 

Start Address は Blanking Type によって異なります。 Blanking Type = 0, 1 の場合、Start Address は無視されます。

なお、BLANK コマンドでは、データ用のバッファは必要ありません。

私の場合、IMMED = 0、 Blanking Type = 0 or 1 で使っており、経過表示が出来なくて困っています。

似たような名前のコマンドに ERASE(10)(=0x2C) と FORMAT UNIT(=0x04) があります。
ERASE(10) は指定したアドレスのデータを消去するようです。
FORMAT UNIT は相当細かく指定できるようですが、どちらも使ったことはありません。

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

2007年01月19日

READ BUFFER CAPACITY

ドライブが持つバッファの全容量とその時点での空き容量を調べるには、 READ BUFFER CAPACITY コマンドを使います。
READ BUFFER CAPACITY の使い方については、cdrteach や cdm-fix のソースコードなどがこの記事よりもためになります。
READ BUFFER CAPACITY コマンドの CDB は次のとおりです。

BYTE\bit 7 6 5 4 3 2 1 0
0Operation Code = 0x5C
1予約予約BLOCK
2予約
3予約
4予約
5予約
6予約
7
(MSB)
Allocation Length
(LSB)
8
9Control

BLOCK が 0 であれば、容量はバイト単位で得られます。 1 ならば、ブロック単位で得られますが、 こちらをサポートしていないドライブもあります。

Allocation Length には用意したデータバッファの容量をセットします。 12 以上であればきちんと結果が返ってきますが、 それ以下(0を含む)でもエラーにはなりません。


READ BUFFER CAPACITY で得られるデータは、BLOCK が 0 と 1 とで異なります。 BLOCK = 0 では次のとおりです。

BYTE\bit 7 6 5 4 3 2 1 0
0
(MSB)
Data Length (=10)
(LSB)
1
2予約
3予約
4
(MSB)
Length of the Buffer
 
[bytes]
(LSB)
5
6
7
8
(MSB)
Blank Length of Buffer
 
[bytes]
(LSB)
9
10
11

Length of the Buffer がドライブの持つバッファの全容量
Blank Length of Buffer が未使用量=使用可能な量
です。


BLOCK = 1 は使ったことがありませんので、表だけ載せておきます。

BYTE\bit 7 6 5 4 3 2 1 0
0
(MSB)
Data Length (=10)
(LSB)
1
2予約
3予約Block = 1
4予約
5予約
6予約
7予約
8
(MSB)
Available Length of Buffer
 
[bytes]
(LSB)
9
10
11

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

2007年01月11日

REWIND のテスト

REWIND コマンドの動作確認用のサンプルプログラムです。

rewind.cpp

DOSプロンプト上で動きます。
例によって ASPI 専用です。

これを作ってみたのは、REWIND コマンドが CD/DVD ドライブで動作するか確認するためです。

結果は、
メディアが入っていないとエラーになります。
(SK=2, ASC=3A, ASCQ=00 MEDIUM NOT PRESENT)

メディアを認識していれば、一応成功するようです。
IMMED が 0 でも 1 でも、成功します。
でも違いがわかりません。


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

2007年01月09日

REWIND

Rewind の意味は"巻き戻し(す)"です。 このコマンドは、一応SCSIデバイス共通のコマンドに載っているのですが、 SEQUENTIAL ACCESS DEVICE、つまり磁気テープ以外ではあまり使われないようです。CD/DVD関係の INF-8070 や MMC の仕様書には載っていません。 "せんべえ焼き"では、CD Manipulator に倣って 書き込みが全て終了した後に使用しています。おまじないも込めて。

REWIND コマンドの CDB は、多分次のとおりです。 (SCSI-2 の SEQUENTIAL ACCESS DEVICE と、CD Manipulator のソースを元にしています。)

BYTE\bit 7 6 5 4 3 2 1 0
0Operation Code = 0x01
1予約予約IMMED
2予約
3予約
4予約
5Control

IMMED = 0 と置いて使っています。
IMMED = 1 とすれば、操作の終了を待たずに処理が返ると思われます。

なお、REWIND コマンドでは、データ用のバッファは必要ありません。

小話を一つ
posted by 七癖 at 09:50| Comment(0) | TrackBack(0) | Multimedia Commands | このブログの読者になる | 更新情報をチェックする
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。