2006年05月31日

ASPI

しばらくの間、ASPIを中心に話を進めます。
ASPIは、WNASPI32.DLLから実行します。ただし、それぞれのSCSI/ATAPIコマンド(MMC)毎に関数(API)が用意されているのではなく、コマンドの内容を一まとめにした構造体(コマンドパケット)を引数として送信するようになっています。

ASPI32 API
┌ ASPIコマンド
│GetASPI32SupportInfo ┌
│SendASPI32Command ──┤SC_HA_INQUIRY SCSI/ATAPIコマンド(MMC)
│GetASPI32DLLVersion │SC_GET_DEV_TYPE ┌
│ :        │SC_EXEC_SCSI_CMD ─┤TEST UNIT READY
: : │ : │MODE SENSE
└ : : │MODE SELECT
└ │READ(10)
│WRITE(10)
│ :
: :


SendASPI32Command 関数からASPIコマンドを実行し、SC_EXEC_SCSI_CMDコマンドから具体的な動作を行うSCSI/ATAPIコマンドを実行します。この、最後のSCSI/ATAPIコマンドが共通化されており、SPTIでも送信方法は違えどコマンドパケットはそのままで実行できると思われます。
posted by 七癖 at 18:40| Comment(0) | TrackBack(0) | Multimedia Commands | このブログの読者になる | 更新情報をチェックする

2006年05月30日

参考文献

どれが公式かわかりませんが、取り合えず列挙しておきます。

MMCの仕様書(pdf形式、英語)
T10 Technical Community
ここで探すのは大変そうなので、直リンク
MMC-1
MMC-2
MMC-3 主にこのバージョンを使用していた
MMC-4
MMC-5 このバージョンに移行してゆく予定
MMC-6 まだ空っぽ

上に無いコマンドは、
ftp://ftp.seagate.com/sff/INF-8070.PDF
を見ると良いかも


JISの規格とか
Y-ADAGIO
内、CD-ROMの規格は、
http://www.y-adagio.com/public/standards/jis_cdrom_yel/cd-rom.htm


雑誌では、
C MAGAZINE 2001年11月号
(まるまるC MAGAZINE 2001年度版)
に、CDリッパーソフトの作成例があります。


しかしながら、一番頼りにしているのは、やはり、
CD Manipulator
のソースコードです。これを元にトライ&エラーを繰り返して得られた結果を書き散らしていきます。ですから、わからないフラグも多く、専門用語も知らず、訳語がわからない、という酷い内容になるでしょう。
posted by 七癖 at 17:39| Comment(0) | TrackBack(0) | Multimedia Commands | このブログの読者になる | 更新情報をチェックする

2006年05月29日

よくわかっていない序論

これから、MMC(Multimedia Commands)を使ったCDドライブの制御プログラムについて書き散らしていこうと思います。いざ文章を書こうとすると、己の理解の足らなさに愕然としますが、まあ恥も外聞も忘れ、間違いを恐れずにいくつもりです。間違いを見つけたら、遠慮なく指摘してください。

昔、Z80(互換)でステッピングモーターを動かすシステムをいじったときは、先輩の作った回路を理解して、余っっている割り込みポートに押しボタンスイッチをはんだ付けして、そしてアセンブラで記述していったものです。今でも専用の装置や全く新しいシステムを作るときには、ハードウェアの構成からプログラムまで全部まとめてつくるのでしょう。だが、それではコストも時間もかかるし、汎用性がなくて他の独自の技術を持つメーカーが協力しづらいでしょう。なので規格とか仕様を作って、楽にしようというわけです。

パソコンと機器間をつなぐ規格には、IDE、ATA、ATAPI、SCSI、USBなどがあって、今も増え続けています。これらはハード側の仕様も全く異なるため、接続する機器のメーカー側がOSと接続方法の約束事に則ってデバイスドライバを提供しています。ソフトウェアを作成する側は、OSと個々のドライバ(機器)の仕様を見ながらプログラミングするのであり、その方がハードウェアの性能を最大限に引き出せたりもします。でもまあ、同じ種類の機器ならばどのメーカーが作った、どのような接続された機器でも同じ方法で操作できるのならば楽でいいでしょう。

で、Adaptec社がSCSI用にASPI(Advanced SCSI Programming Interface)というインタフェイスを作りました。機器メーカー側はASPIが用意してあるコマンドが使えるようなデバイスドライバを用意すれば言い訳です。そして、ATAPIはSCSIの影響を受けたためか、多くのコマンドが共通化されてしまいました。そしてASPI側で規格の差異を吸収するようにしたため、SCSI接続の機器だけでなく、ATAPI接続の機器までASPIで同じように制御できるようになったのです。

他に、SPTI(SCSI Pass-Through Interface)があります。これはMicrosoft社がWindows2000/XP系列用に用意したものです。OSの利点を考えれば、当たり前のような気もしますが。こちらはSCSI、ATAPIだけでなくUSB接続の機器も使えるらしいです。あちこちのソースコードを見る限りだと、ASPIとはコマンドの送信方法が違うけれども、コマンドの内容は同じでいけるようです。(Windows2000/XPをもっていないので、よく分からない。)

ASPI用には、共通(とはいっても、機器の種類によって動作は違う場合もあるが)のコマンド以外に、プリンタやスキャナといった機器別のコマンドセットがあります。その内、CD-ROM/R/RW、DVD-ROM/±R/RW、Blu-ray Disc、等のドライブ用のコマンド一式が、MMC(Multimedia Commands)です。

う〜ん。理解していないなあ。
posted by 七癖 at 19:21| Comment(0) | TrackBack(0) | Multimedia Commands | このブログの読者になる | 更新情報をチェックする

2006年05月28日

せんべえ焼き 1.003 公開

まだテストが不十分ですが、とりあえずアップします。

せんべえ焼き、もしくはコースターメーカー 1.003 本体

迷路のようなせんべえ焼きのソースファイル 1.003

変更点:
RWメディアの内容の消去、初期化を行えるようにした。
読み込み、書き込み速度のバグを修正
その他、細かい修正

posted by 七癖 at 15:57| Comment(0) | TrackBack(0) | 自作フリーウェア | このブログの読者になる | 更新情報をチェックする

2006年05月26日

ASPIのダウンロード

「せんべえ焼き、もしくはコースターメーカー」では、Adaptec社のASPIレイヤーを使用しています。Windows95、98、Meでは標準でインストールされていますが、入っていない、バージョンが古い、様々なライティングソフトをインストールしたためおかしくなった、などの理由でせんべえ焼きの動作がおかしいと思われる場合は、以下のサイトから最新版をダウンロードし、インストールしてみてください。

Adaptec社のホームページ
http://www.adaptec.co.jp/

ASPIダウンロードページ
http://www.adaptec.co.jp/support/download/soft/aspi_package.html

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

2006年05月25日

リンクの追加(SPTI関係)

検索で探していたら、SPTIを使って音楽CDを再生する方法を紹介しているサイトを見つけましたので、一方的ですがリンクを貼っておきます。

MPC(室蘭プログラミングクラブ)
http://www2.muroran-it.ac.jp/circle/mpc/index.html
ここの「Windowsプログラミング」内の、「SPTIによる音楽CDのデジタル再生」というコンテンツに書いてあります。
posted by 七癖 at 19:43| Comment(0) | TrackBack(0) | リンク | このブログの読者になる | 更新情報をチェックする

2006年05月24日

現在の開発環境

「せんべえ焼き、もしくはコースターメーカー」は、以下の環境で開発しています。

パソコン:自作機
CPU:Intel(R) Celeron(R) CPU 2.00GHz
OS:Windows Me

CD/DVDドライブ:Liteon JLMS XJ-HD165H (読取専用)
CD/DVDドライブ:HL-DT-ST GSA4081B (CD-R/W, DVD±R/W, DVD-RAM対応)
各ドライブはATAPI接続

統合環境:Microsoft Visual C++ 6.0 SP6

ドライブの制御に WNASPI32.DLL を使用
WINASPI.DLL のバージョン 4.60.0.0


以上のように、OSが2000/XPではないため、SPTIが使用できません。このため、SPTIは外してあります。また、USB接続のドライブも持ち合わせておらず、その知識も無いため、USB接続では使えません。(SPTIであれば、CD Manipulatorのソースをほぼそのまま組み込めますので、試してみたい方は言ってください。組み込んだバージョンを作成し、テストせずに公開します。)
posted by 七癖 at 19:41| Comment(0) | TrackBack(0) | 現状 | このブログの読者になる | 更新情報をチェックする

2006年05月23日

ソースコードへのリンク

CD-R/Wドライブの制御に関心のある方へ、ソースコードを公開して下さっているサイトを紹介します。

CD Manipulator跡地:http://www.storeroom.info/cdm/
「せんべえ焼き、もしくはコースターメーカー」の元となった、非常に優れたCDライティングソフトです。

ゆうりぃ/C++のパソコンおたく的サイト:http://www.geocities.co.jp/SiliconValley/1664/
CDへの書き込みをやって見たいという方は、まずこのサイトにある「cdrteach」を見てみるのが良いかと思います。(私の場合、気付くのが遅かった。)




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

2006年05月22日

せんべえ焼き 1.002 公開

せんべえ焼き、もしくはコースターメーカー 1.002 本体

せんべえ焼き、もしくはコースターメーカー 1.002 ソースコード

変更点:
各種設定→イメージ作成 に、
 Pチャネルの修復を行う
 QチャネルでCRCエラーが発生したとき修復を行う
というオプションを追加しました。
イメージの保存形式が、
 cdm+img+sub (ccd+img+sub, cdm+img+sub+pre)
のときに作られる.subファイルに影響があります。
posted by 七癖 at 19:24| Comment(0) | TrackBack(0) | 自作フリーウェア | このブログの読者になる | 更新情報をチェックする

2006年05月21日

せんべえ焼き 1.001 公開

せんべえ焼き、もしくはコースターメーカー 1.001 本体

せんべえ焼き、もしくはコースターメーカー 1.001 ソースコード

変更点:ミスの修正

バグ、ミスの類はためずに修正し、公開していきたいと考えています。

posted by 七癖 at 19:38| Comment(0) | TrackBack(0) | 自作フリーウェア | このブログの読者になる | 更新情報をチェックする

2006年05月19日

せんべえ焼き 1.000 公開



せんべえ焼き、もしくはコースターメーカー 1.000 ソースコード ダウンロード

と、いうわけで、開発中のCDイメージ作成/ライティングソフト「せんべえ焼き、もしくはコースターメーカー」を公開します。
正直、現状はひどいものですが、一人でやっていて詰まってきたのと、ドライブやRWメディアの耐久試験をやっているような気分になってきたので、多くの方の意見を聞きたく思い、配布を始めることにしました。どうか使ってみて、動作報告などをいただければうれしく思います。
posted by 七癖 at 20:22| Comment(0) | TrackBack(0) | 自作フリーウェア | このブログの読者になる | 更新情報をチェックする

市販品の紹介

いきなり宣伝というのもなんだが、ここのサーバーと提携しているお店にあったので、紹介しておく。

CloneCD 5 通常版CloneCD 5 通常版
販売元 : Amazon.co.jp ソフトウェア
価格 :
[タイトル] CloneCD 5 通常版
[ブランド] ライブドア
[種類] CD-ROM
[発売日] 2004-10-08
[プラットホーム] Windows

>>Seesaa ショッピングで買う

Super Alcohol 120% ProSuper Alcohol 120% Pro
販売元 : Amazon.co.jp ソフトウェア
価格 :
[タイトル] Super Alcohol 120% Pro
[ブランド] インターコム
[種類] CD-ROM
[発売日] 2004-04-02
[プラットホーム] Windows

>>Seesaa ショッピングで買う


「せんべえ焼き、もしくはコースターメーカー」に物足りない方は、これらをどうぞ。
posted by 七癖 at 11:51| Comment(0) | TrackBack(0) | 広告 | このブログの読者になる | 更新情報をチェックする