前準備


 

この拡張ボードDLLを作ろう連載は、EmuZ-2000の拡張ボードを作ることをゴールとしています。
エミュレータの動作概念や、Windowsのプログラムの解説が必要な場合は、なるべく丁寧に解説する
つもりです。
説明不足な面や、理解しにくい部分は、僕の文章表現能力を超えているということになります。
お許しください。
最初は、堅い話から入っていきますが、そのうち柔らかくなって、最後には壊れる予定です^^


では、まず準備をしていただきたいツール郡を紹介します。

コンパイラ:
マイクロソフト社の Visual C++ 6.0 (SP3以上が望ましいです)以下VCと表記します。
それに付随して、ドキュメントもインストールしておくことをお勧めします。
パッケージ版をお持ちの方は、日本語版のドキュメントCDが付属していると思います。
MSDN版をお持ちの方は、MSDNライブラリCDで、ドキュメントをインストールすれば
宜しいかと思います。また、Platform SDKはインストールしてもしなくてもかまいません。

連載は、統合環境で進めていきます。メイクファイルを使用してコマンドラインからコンパイル
したい場合は、プロジェクトをmakefileでエクスポートしてください。

VCをインストールすれば、GUIDGEN.EXEというツールもインストールされます。
本来このツールは、デバイスノードを示すのに使用したり、ドライバインタフェース
のユニークネームとして使用されますが、EmuZ-2000でも、拡張ボードを識別するのに
使用されます。
ためしに、コマンドプロンプトより「GUIDGEN」とタイプして見てください。
ダイアログが表示されましたね?
EmuZ-2000では、このダイアログの「4.Registry Format」を使用します。
下のほうに表示されている「Result」というところに表示されている値をコピーして使用します。

GUIDGENについて少し補足説明します。
ドキュメントでも触れられてはいますので、これがどのように作り出されているかを説明します。
デバイスノードを示したり、デバイスドライとのインタフェースを取り決める際に、Windowsという
OSは、全て名前で解決しています。
(98・Meには昔のID値による解決も残ってはいますが)
デベロッパ(ここでは開発者と理解してください)が好きに名前を付けていると、いつか必ず
バッティングしてしまいます。
それを回避するために、マイクロソフトは「GUIDジェネレータ」というソフトを添付して、これで
つけられた名称は絶対にバッティングしないことを保証しています。
割り出されるIDは、使用中しているPCのネットワークカードのMACアドレス、デバイス構成、
現在時間などを元に割り出されます。
ですから、絶対にバッティングしない訳です。
それが何故、EmuZ-2000に使用されているかって?それは追々説明します

次にEmuZ-2000本体です。
この連載も、エミュ開発者がデバッグしきれていない機能を使用する予定ですので、
連載に応じてバージョンアップされる可能性があります。
ですので、必要なバージョンは、「Version0.451以上」とさせていただきます。

次に、SDK本体です。
EmuZ−2000 「Board DLL SDK Version0.451以上」をダウンロードしてください。
これを解凍すると、ヘッダファイルが2つ、Libファイルが一つ出てきます。
ドキュメントは、不完全ですね・・・EmuZ-2000君から「ドキュメントも書いて!」と言われてますが
喜んで辞退いたします(w

これだけあれば、開発が進められます。

さあ、アルゴ号に乗ってプログラミングの大海原へ繰り出しましょう!



Microsoft(R) Windows(R) 98(TM) Me(TM) 2000(TM) XP(TM),
Microsoft(R) Visual C++(TM)6.0 ,
Platform SDKは、
米国マイクロソフト社の登録商標です。
(書かないと後で怒られちゃう・・)