以下のコマンドを実行すると、HDDやCFにアクセスしますので、ファイルに影響を与える恐れがあります。不安な人は実行しないで下さい。なお、誤動作の恐れが大きいのでPSF内ではdrv系コマンドを使わないでください。
OSASK/AT ver.3.9ではFD以外のデバイスにもアクセスできるようになっていますが、まだ個々のファイルにはアクセスできません。CFやHDDのルートディレクトリに、FDIMAGE0.BIN(FDIMAGE1.BIN~FDIMAGE9.BINも使えます)。という1440KBのディスクイメージファイルを置いて使います。
ここで、ディスクイメージファイルを探すCF, HDDを指定する為に、drvfd, drvcf, drvataコマンドがサポートされました。drvfd 0することで、ファイルが書き戻してあれば、アクセスをFDに戻せます。そして、
を探しにいきます。いずれの場合も、該当する区画がFAT16でフォーマットされていなくてはいけません。また、CFやHDD内のディスクイメージファイルは、クラスタが連続していなければいけません。確実に連続させるには、FORG.EXEをかけるのがいいでしょう。FORG.EXEは、http://www.vector.co.jp/soft/dl/dos/util/se000213.htmlから入手できます。詳しい利用方法は、ドキュメントを読んで下さい。コピー後にデフラグしたり、半端な容量のディスクイメージをCFの中でimgtolで1440KBのサイズに直したりすると、空きクラスタが断片化したり、せっかく連続していたディスクイメージファイルが断片化したりします。また、すでにCF上にうまくできたディスクイメージファイルがあるところへ、再度ディスクイメージファイルを上書きするのもうまくいかない場合があります。
なお、仮にFAT16じゃなかった場合や、FAT16だけど該当のディスクイメージファイルが見付からない場合、さらには見付かったけどサイズがおかしい場合、サイズは正常だったけどクラスタが連続していなかった場合、の全てについて、一つでも問題があれば「ERROR_?」状態にして、HDDやCFを守ります。この仕組みおかげで、たとえイメージファイルが一つもなくても、とりあえずdrvataやdrvcfしても問題はありません。CFの場合は、そもそもカードが刺さっているかのチェックもしています。
CFのカード自体を交換したくなったら、drvcf 9とする、強制的に「ERROR_?」状態にして、さらに全てのPCカードスロットの電源を落とします。
ERROR_A : drvcf 9によるアクセス禁止中
ERROR_C : 指定されたスロットにCFが入っていない
ERROR_D : ドライブがreadyにならない
ERROR_E : MBR読み込み失敗
ERROR_F : 第一パーティションのBPB読み込み失敗
ERROR_G : 第一FAT読み込み失敗
ERROR_H : ルートディレクトリエントリ読み込み失敗
ERROR_1 : FATの数が2じゃなかった
ERROR_2 : ルートディレクトリエントリが0x0200よりも少ない
ERROR_3 : ルートディレクトリエントリが0x40ffよりも大きい
ERROR_4 : ルートディレクトリにFDIMAGE?.BINが見付からない
ERROR_5 : FDIMAGE?.BINのサイズが足りない
ERROR_6 : FAT16じゃない
ERROR_7 : FDIMAGE?.BINのクラスタが連続していない
pokonで、「Ctrl+0~9」を押すと、FDIMAGE0.BINやFDIMAGE1.BINやFDIMAGE2.BINなどに切り替えられます。これらの操作は、ディスクイメージに書き戻してないデータがあると無視されます。書き戻しデータはないはずなのに切り替わらないときは、たいていコンソールウィンドウがアクティブになっています。pokonをアクティブにしてください。CFやATA-HDDに対してももちろん読み込みだけではなく書き込みもできます。操作方法は今まで通り、Deleteを押すだけです。そして読み込みも書き込みもFDに比べると非常に速いです。
PCカードスロットにCF以外のカードを付けるのは構いませんが、そのドライブに対してdrvcfをやらないでください。またハードウェア的にスロットが1つしかない時に、drvcf 1等とやるのもやめてください。スロットさえ実在すれば、カードが刺さっていなくても誤動作はしません。USB接続のCFカードリーダは未サポートです。デスクトップパソコンにPCIでPCカードスロットを付けた場合も、たぶん正しく認識できるのではないかと思います。
今回のCFやHDDのサポートのおかげで、FDDがないマシンでもOSASKが使えるようになっています。CD-ROMブートでもUSB-FDDブートでもHDDブートでもなんでもいいので、とりあえずDOSを起動して、デフォルトをdrvcf 9状態にしておいたOSASKを(ATAかもしくはCFをデフォルトで読むのも可)EXEファイルとして実行してしまえば、あとはディスクイメージをFD代わりに使えるわけです。OSASK.EXEはDOSから読まれるので、DOSがアクセス可能などのドライブおいても構いません。起動時にはどのデバイスにもアクセスしないので安全です。起動後にdrvコマンドで設定してから使います。デフォルトをdrvcf 9状態にするにはバイナリエディタで「09 02」と設定する。(下記)
ということで、CD-ROMブートイメージを作ったり、HDDにFreeDOSを入れてCONFIG.SYSにSHELL=OSASK.EXEと書いておいたり(もちろん普通にブートしてプロンプトからOSASK.EXEを実行してもいいんですが)、まあいろいろできるわけです。今まではOSASKFDI方式しかありませんでしたが、これからは書き換えもディスク交換もできるわけです。
OSASK.EXEをバイナリエディタで開いて、ファイルオフセット0x0200
あたりをのぞいてみるとこうなっています。
offset +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F -------------------------------------------------------- 000200 EB 19 00 00 13 00 00 00-10 89 00 90 00 00 00 80
この+2の部分がdrvcfやdrvataで指定するパラメータになっていて、さ
らに+3の部分については、00ならdrvfd、01ならdrvata、02ならdrvcfという風になっています。