ページへ戻る

+ Links

 印刷 

ATAのHDDやPCカードのCF利用 :: OSASK計画

osaskwiki:ATAのHDDやPCカードのCF利用

まとめてみた

  • MLのままだと読みにくく、バージョンアップによる変更点が多いのでまとめてみた
  • 書きかけ、書き途中です。
  • とりあえずいろいろつめ込む方針
  • もっと良い項目名募集中
  • ページ作者からの表明です。誰が何を編集してもいいです。
  • 古い情報かもしれません。
Page Top

本項

 以下のコマンドを実行すると、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に戻せます。そして、

  • drvcf 0,1でPCカードスロットのそれぞれ0,1のCF
  • drvata 0,1,2,3でATAの順に、プライマリのマスター、スレーブ。セカンダリのマスター、スレーブのそれぞれ第一パーティション

を探しにいきます。いずれの場合も、該当する区画が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という風になっています。


Page Top

コメントはこちら

  • ERROR_5 になった場合は、btcf の準備1 を参考にして、AT互換機は 1440KBに、TOWNSは 1232KB に展開してコピーします -- arigayas 2006-06-24 (土) 19:33:07

Last-modified: 2009-11-17 (火) 00:00:00 (JST) (323d) by ゲスト