[OSASK 6313] John5.

  こんにちは、川合です。

  John5をベータリリースしました。特徴は次の通りです。

・CF(コンパクトフラッシュ)内のディスクイメージにアクセスできる
・ATAハードディスク内のディスクイメージにアクセスできる

  説明は長いです。まずはよく読んでください。

  最初に書いておきますが、OSASKの特徴の「HDDにアクセスしないから
安全」というのは、drvataコマンドを実行しない限りにおいて、今でも
保たれています。だから安心してください。

  さてAT版では次の3つのコマンドがサポートされました。
    drvata   drvcf   drvfd

  またTOWNS版では次の2つのコマンドがサポートされました。
    drvcf    drvfd

  NEC98版はコマンドは一つも増えていません。

  どちらのコマンドも一つの引数をとります。
    例>drvcf 0
    例>drvcf 1
    例>drvcf 9
    例>drvfd 0
  それぞれの意味は後で詳しく説明します。

  John5ではFD以外のデバイスにもアクセスできるようになっています
が、ファイルシステム周りを改良するのは時間がかかるのでそこはまだ
手を付けていません。ということで、CFやHDDのルートディレクトリに
    FDIMAGE0.BIN  (FDIMAGE1.BIN〜FDIMAGE9.BINも使えます)
という1440KBのディスクイメージファイルを置いて使います。以上はAT
版の話で、TOWNS版ではディスクイメージのサイズも1232KBになります
。

  drvcf、drvataのコマンドは、このディスクイメージを探しに行くデ
バイスを指定するためのものです。
  ・drvcf 0 でPCカードスロット0のCF
  ・drvcf 1 でPCカードスロット1のCF
  ・drvata 0 でATAのプライマリのマスターの第一パーティション
  ・drvata 1 でATAのプライマリのスレーブの第一パーティション
  ・drvata 2 でATAのセカンダリのマスターの第一パーティション
  ・drvata 3 でATAのセカンダリのスレーブの第一パーティション
いずれの場合も、該当する区画がFAT16でフォーマットされている必要
があります。

  もし自分の使っているCFやHDDがFAT16でフォーマットされているの
かどうかが不安になった場合は、次の方法で検査できます。DOSプロ
ンプトで、
    prompt>imgtol r d: test.bin 36
とやります。これはd:を調べる場合で、調べた結果がtest.binという
ファイルに反映されます。このtest.binをバイナリエディタで開いて
ファイルオフセット:0x000036のところを見ます。ここに「FAT16」
と書いてあればFAT16です。他のことが書いてあれば、FAT16ではない
でしょう。

  なお、32MB以上のCFをWin95で普通にフォーマットするとFAT16にな
るようです。8MBのCFだとFAT12にされてしまいます。16MBの場合はど
うなるかまだわかりません。分かる人がいましたら教えてください。
なお、当方には容量に関わらずFAT16(厳密にはSF16)フォーマット
可能なツールを持っていますが、公開にはもうしばらくかかります。
ということで、容量の小さいCFを持っていても、あきらめないでとっ
ておいてください。

  またCFやHDD内のディスクイメージファイルは、クラスタが連続して
いなければいけません。これはそこそこ厳しい条件です。確実に連続さ
せるには、次のようにするといいでしょう。
  ・まず、ディスクイメージファイルを別のドライブに用意する。
  ・CFやHDDの該当区画にデフラグをかける。
      (このとき詳細表示を見ていると、空き領域が一つにまとまると
        ころが見えます)
  ・そして先ほどのディスクイメージファイルをこのドライブにコピー
    する。

  Windowsがインストールされているドライブやスワップファイルがお
いてあるドライブは、何回も「デフラグだけやる&再起動」を繰り返さ
ないと、空き領域がまとまらなかったり、もしくは何度やっても駄目な
ときもありますので、知識がない人はCFだけにするのがいいでしょう。
CFならとりあえずフォーマットしてしまえば、空き領域だけになるので
デフラグとかをしなくてもクラスタが連続します。

  やってはいけないのは、コピー後にデフラグすることや、半端な容量
のディスクイメージをCFの中でimgtolで1440KBのサイズに直したりする
ことです。こういうことをやると空きクラスタが断片化したり、せっか
く連続していたディスクイメージファイルが断片化したりします。

  すでにCF上にうまくできたFDIMAGE0.BINがあるところへ、再度FDIMAG
E0.BINを上書きするのもうまくいかない場合があります。確実にうまく
いかせるには、imgtolでオーバーライトコピーをするといいでしょう。
imgtolのオーバーライトコピーはクラスタの状態を壊さないでコピーす
るからです。

  なお、仮にFAT16じゃなかった場合や、FAT16だけど該当のディスクイ
メージファイルが見付からない場合、さらには見付かったけどサイズが
おかしい場合、サイズは正常だったけどクラスタが連続していなかった
場合、の全てについてJohn5はチェックをしていて、一つでも問題があ
れば「File Not Found」状態にして、HDDやCFを守ります。この仕組み
おかげで、たとえイメージファイルが一つもなくても、とりあえずdrva
taやdrvcfしても問題はありません。CFの場合は、そもそもカードが刺
さっているかのチェックもしていています。

  drvfdコマンドではパラメータは0のみ有効です。将来的には1以上も
指定できるようになって、複数のドライブに対応する予定です。

  drvata、drvcf、drvfdのいずれのコマンドも、書き戻していないデー
タがあると無視されます。Deleteで書き込むか、もしくはShift+Insert
で書き戻し用データを破棄してから、これらのコマンドを実行してくだ
さい。

  pokonで、「Ctrl+フルキーの数字」を押すと、FDIMAGE0.BIN以外にも
FDIMAGE1.BINやFDIMAGE2.BINなどに切り替えられます。これらの操作も
書き戻してないデータがあると無視されます。ときどき「あれ?書き戻
しデータはないはずなのに切り替わらないぞ」と思うかもしれませんが
そういうときはたいていコンソールウィンドウがアクティブになってい
ます(笑)。pokonをアクティブしてください。

  CFやATA-HDDに対してももちろん読み込みだけではなく書き込みもで
きます。操作方法は今まで通り、Deleteを押すだけです。そして読み込
みも書き込みも非常に速いです。CFはなんの音もしないので、そのわず
かな待ち時間すら長く感じるのですが(HDDはアクセス音がするので長
くは感じない)、そういうときはdrvfdしてみると、自分がぜいたくを
言っていたことが分かります(笑)。

  CFについてですが、PCカードスロットが複数ある場合、電源が供給さ
れているのは、現在アクティブになっているスロットだけで、使ってい
ないスロットはpower-offしています。したがって、なんら気にするこ
となく他のCFを抜き差しして構いません。FDDやATAがアクティブなら、
PCカードスロットは全て電源が供給されていません。したがって、この
時も自由に抜き差ししてください。

  なお、PCカードドライブが一つしかなく、しかもFDドライブもなく、
さらにdrvataは安全だと言われてもやりたくない(もしくはHDDがつな
がっていない)などの場合でCFを交換したい場合もあるでしょう。その
時は「drvcf 9」とするといいです。これは強制的に「Not Found」状態
にして、さらに全てのPCカードスロットの電源を落とします。

  まあ、アクセスさえしていなければ、電源が入ったままCFを交換して
もなんら問題はないとは思いますがね。なお、TOWNSの場合はソフトウ
ェア側でPCカードスロットの電源制御ができないので、常に電源ONです
。

  PCカードスロットにCF以外のカードを付けるのは構いませんが、その
ドライブに対してdrvcfをやらないでください(CISタプルのチェックを
していないので)。またハードウェア的にスロットが1つしかないくせ
にdrvcf 1とかやるのもやめてください。スロットさえ実在すれば、カ
ードが刺さっていなくても誤動作はしません(電源も供給されない)。

  USB接続のCFカードリーダは未サポートです。だから主にノートパソ
コンになるでしょう。デスクトップパソコンにPCIでPCカードスロット
を付けた場合も、たぶん正しく認識できるのではないかと思います。

  うちでは初代Freshでjohn5tを使い、32MBのCFのアクセスに成功して
います。HR20はなぜか駄目でした。でもうちのHR20はすさまじく酷使さ
れて、あちこちガタが来ているので、他のHR20でなら動くんじゃないか
と思っています。

  これでdrvコマンド関係の話題は全部書いたかな?・・・まあわから
なかったら質問するってことで。

  それで、たとえばわれらがLibretto50でjohn5aを使うとなると、起動
時にデフォルトであるFDを探しに行ってしまうのは非常に不便です(た
いてい探しに行ったまま帰って来なくなるから)。OSASK0.PSFにdrvcf
コマンドを書けばいいと思うかもしれませんが、そのOSASK0.PSFをFDか
ら探してしまうので、これも駄目なのです。・・・ということで、OSAS
Kの起動時のデフォルトドライブを次の方法で変更できます。

  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

という風になっています。だからLib50の場合は、00 02にしておけば起
動後にPCカードドライブのCFを探しに行ってくれるわけです。これでハ
ングアップしないで済みます。

  くたびれてきましたが話はまだ続きます。

  もしOSASK ver.3.8をインストールしたFDを持っているのなら、その
ディスクに次の方法でJohn5を転送できます。

  以下ではそれぞれのjohn5?.EXEをOSASK.EXEと書いているので、各自
読み替えてください。このEXEは上記の改造をやったものでももちろん
OKです。

  A:ドライブにOSASK ver.3.8の直接起動ディスクを入れて、

    prompt>imgtol s osask.exe osask.sys 2048
    prompt>imgtol c a:osask.sys osask.sys

とやればそれでOKです。

  もちろん今回の機能は、KHBIOSでOSASKがCFブートしたときに、その
ままOSASKからCFをアクセスされるための布石です。

  さて、今回は主にハードウェアがうまくコントロールできているか、
がポイントです。うまくいってもいかなくても、動作報告をいただける
と助かります。・・・さあ、ノートパソコンを持っているのなら、是非
32MBくらいのCFと、PCカードアダプタを買いに行こう!そしてFDに足を
引っ張られないOSASKの速さを楽しんでください。

  ・・・ということで、ついでに僕が調べた最安値の相場。

  CF用のPCカードアダプタ:500円
   32MBのCF: 1,200円
   64MBのCF: 2,000円
  128MBのCF: 2,800円
  256MBのCF: 5,500円
  512MBのCF:11,000円
    1GBのCF:25,000円

  ちなみにJohn5では、32MBを買っても1.4MBx10個=14MB程度しかOSASK
では活用できません。ということで、現時点では大容量を奮発しても面
白くないかもしれません。またCFの値段は日に日に下がるので、将来の
ために買うというのもあまり得ではない場合があります。KHBIOSができ
てくると、容量のでかい1個のCFよりも容量の小さいCFを複数持ってい
るほうが楽しいこともあります(それぞれに違うOSを入れて遊ぶとか)
。もちろん容量の大きいやつを複数持ってもいいわけですが。

  その辺を自分で考えて、是非納得の行くお買い物をしてください。

  オークションとかなら、PCカードスロットのあるノートパソコンも
中古で5000円くらいであるのかな???まあOSASKのためだけにそこ
まで投資するのはどうかと思いますが。

  それでは。

--
    川合 秀実(KAWAI Hidemi)
OSASK計画代表 / システム設計開発担当
E-mail:kawai !Atmark! imasy.org
Homepage http://www.imasy.org/~kawai/



ML番号でジャンプ
ML単語検索