FDloaderアプリケーションFD作成ツール FDLDMKFD Version 1.20
使用説明書 Copyright(C) 2022 まりも
PC-98のうちフラッシュROM搭載機には、「FDloader」という機能があり、あらゆる初期チェックを行わずにいきなりリアルモード16bitプログラムを走らせる機能があります。詳しくはこちらを参照してください。FDloaderのプログラムはフロッピーディスクの所定の位置に書き込まれている必要があります。それを行うのが本ツールです。FDloaderとして開発されたCOM形式のプログラムモジュールを読み込んで、フロッピーに書き込みます。ファイル全体のチェックサムやファイルサイズなどの情報は本ツールが適切に作成するので、FDloader固有の仕様についてあまり把握していなくても、アプリケーションFDを作ることができるようになっています。当サイトで既に公開しているFDloaderはいくつかありますがFD作成ツールは個別にことなります。2022年4月からは本ツールを利用することを前提に、FD作成部を含まない形のFDloaderアプリケーションを公開してゆく予定です。その端緒として 2022年4月3日に ROMSUMSVというものが公開されています。
MS-DOSのCOM形式プログラムという仕様なので、基本的には開発は容易なはずです。FDloaderのアプリケーション開発では、FDを作るというところまで行わないといけないのが面倒なところです。アセンブルしてすぐに実行できないからです。そこで少しでもモジュール作成からFD作成までの手間を簡単化しようことで本ツールを作りました。
COM形式のDOSアプリケーションはMicrosoft Assembler 3.0のような古いものでも開発できます。これはIPLwareのアプリケーションと同様です。FDloaderのアプリケーション開発が難しいのは、デバッグ環境(すぐに実行できない)や、DOS,BIOSのファンクションを一切使用できないこと、システム共通域の情報も使えないことなどの点にあります。キーボード入力も画面出力もディスク書き込みも、無からハードウェア操作するプログラムを書いて行かなければなりません。IPLwareの開発よりもハードルが高くなります。IPLwareではDOSファンクションが使えないだけでした。
まず解凍して FDLDMKFD.EXE をカレントディレクトリに置いてください。カレントディレクトリには FDloaderとして開発されたCOM形式実行モジュールも用意しておき、DOSコマンドラインからFDLDMKFD と打って実行します。
いっぽうフロッピーディスクも用意します。2HDでPC-98固有の1MBフォーマット(1024B/sect, 8sect,1232KB)で物理フォーマットされたフロッピーを、最も若い番号のフロッピードライブに挿入しておきます。
実行が開始されると、ファイル名の入力を要求してくるので、そのCOM形式モジュール名をキーボード入力してください。コマンド引数としてそのファイル名を与えることもできます。その場合はファイル名の入力プロンプトは現れません。
フロッピーを挿入しているかの問い合わせが出ますのでYを押すと、いきなりフロッピーディスクに書き込みに行きます。ですので予め内容が無いか潰してもよいメディアを挿入しておいてください。現状のFDloaderアプリケーションはせいぜい16KB程度のものですので、すぐに書き込みは完了します。
FD運用上およびアプリケーション開発上の注意事項を掲げておきます。
●FDloaderのフロッピーについて
●FDloaderのアプリケーションの仕様について
全ソースコードがこちらにあります。source.lzhを解凍してください。このプログラムでは基本的な技術しか使っていませんが、FDloaderの仕様として必要なことが書かれています。
FDloaderのアプリケーション開始時点のCPUレジスタは次のとおりです。
・CS:IP=0060:0100h
・CS=DS=ES=SS=0060h(SS以外はNECが決めた仕様どおり)
・BP=SP=F5F0h
・CX=SI=DI=0
その他のレジスタは不定としますが実際には0が入ってるはずです。
CS:0000〜00FFhには、COM形式モジュールをロード実行するためのローダが入っています。この256バイトは、アプリケーションがRET命令で戻ったときには使用されるので、戻ったときの機能を使うので有れば、先頭の文字列データ部や最後部は破壊しないほうがよいです。
FS,GSは触っておらず、FDloaderに飛んでくる前の状態の値です。FSにはCPUIDの値が入っていることが多いようです。
FDloader開始時点ではフラッシュROMのVpp電圧として12Vがかかった状態になる本体仕様となっています。しかし本ツールではローダの段階で5Vに落としています。したがって不用意にITF/BIOS ROMが書き換わる恐れはありません。また書き換えるようなアプリケーションは本ツールでは作成できないということになります。
バージョン1.10より、FDloader開始時点のスタックの保存と復帰は行わないことにしました。FDloaderを呼び出すITF内ルーチンではスタックを使用していないとみられるためです。
このプログラムはフリーソフトウェアです。自由に使用してよい代わりにサポートのようなものはありません。直接・間接的に、このプログラムの運用の結果に何があっても、作者は一切責任をとることはないものとします。著作権は作者が保持しています。著作権侵害のないようにお使いください。他のサイトへの無断転載は認めません。連絡先メールアドレスは、トップページに記載されています。
まりも(DOSsoft)