実験パート7

(2000年4月21日〜2001年1月21日)


1月21日

ずっと気になっていたことがあります。
MegaSCSIでWindowsマシンとネットワークするとき、両方向から正常にアクセスできるのかな。
今まではSCSI機器を使うときは、どちらかの電源は必ず切っていました。壊れると困る物があったから。
実験する気になったということは、壊れても良いって事か。

実験にはMOを使います。MSX − MO − VAIO と繋いで、まずはVAIOでファイルの読み出し。
次にMSXで同じファイルの読み出し。リードは大丈夫ですね。
さて、ライト。VAIOでMOに新しいフォルダを作成、その中にファイルをコピーしました。
MSXからそのファイルをリード、これも正常。今度はMSXでサブディレクトリを作成し、その中に
ファイルをコピー、VAIOからリードしようと思ったら・・・MSXで作成したはずのサブディレクトリが
表示されません。VAIOを再起動したら表示されましたが。これがキャッシュというもの?

両方からアクセスするときは、MSXからは書き込まない方がいいですね。

2001年1月19日

久しぶりの更新です。
ヨーロッバではCommand2.com v2.40が使われているそうですが、Patchcomが対応しているのは v2.31まで。
それでパッチ作者のManuelさんにお願いしたところ、すぐにv2.40対応のPatchcomを送って下さいました。
Manuel Pazosさん、BUSHさんに感謝。

v2.40はコマンドがいろいろ追加されていて、使いこなせれば便利そう。
私が使えそうなコマンドは、CDD・ MEMORYくらいかな。MEMORYはマッパーサポートのテーブルを読んでいますね。
うっかりくんが4 177 920バイトになっていました。32MBの拡張RAMでは何バイトと表示されるやら。


8月16日 ver0.08b4では常駐解除が出来なかったと思います。 パッチの解除でカーネルをcode segmentにコピーするとき、I/Fのバンク切り替え方法がわからなくても、 バンク切り替え出来るように変更しました。 バンク切り替えルーチンのアドレスを自動で取得する方法はないかと試行錯誤、MGINSTはどうやっているのだろう。 解析するには大きすぎるので、MGINSTを実行したときのCHGBNKを調べました。 DOS2.2xは4066h、2.3xは4065h、DOSの種類はこれだけ? バンク切り替えルーチンのアドレスはこれで決まりですね。 FAT16 ver 0.08をアップしました。
8月15日 どんなI/Fにも対応できるように・・・と言うか、BIOSが変更されてもDSKIOの仕様がMEGA-SCSIと 同じなら動くようにしたつもりです。将来IDEBIOSのDSKIOで"EI"するかも知れないし、I/F作者さんと 常に連絡を取っているわけではないので。 DSKIOルーチンの"EI"を殺す方法ですが、0038hをC9hにすれば解決。 1BhルーチンでFATのセクタを読む間だけ割り込みを殺します。 こんな簡単な方法を思いつかなかったなんて、最近ゲーム解析していないから? HDSAVEは作者さんの許可を頂いたので掲載します。使い方はFDSAVEと同じ。
8月7日 EP.COMにパッチをあてて、32Mbのディスクイメージをドライブに割り当てられるようにしました。 イメージの作成は簡単です。 家のMSXはMEGA-SCSIを通してWinマシンと繋がっているので、Win側からDisk managerのcustomで32Mbの ディスクイメージを作成しておきます。それを新しく作ったHDDのパーティションにコピーするだけ。 SFORM-2フォーマットのパーティションをイメージファイル化するなら、MSXからHDSAVEが使えます。 Fat008b3.lzhのファイル、また間違えてしまいました。/D オプションでFDDの情報を得るとき、 ディスクが入っていないと一時停止して面倒なバージョンを入れてしまいました。 FDDは全て'not ready'なバージョンに入れ替えます。
8月4日 ver0.08b3のFAT16.COMはファイルが壊れていたようです。動作が変なので再アップしました。 海外のサイトにSCCバージョンのNEMESIS.ROMがあります。スナッチャーとSDのSCCに対応。 気になったので中身を見ると、コナミの製品番号が770になっています。これ、私が付けた番号です。 コナミゲームコレクションは全部ROMファイルに出来ますが、切り分けツールの使い勝手が悪くて ROM版ゲーコレが浸透していません。 770のNEMESISでは隠しコマンドで Z80 なんていうのも付いてます。F1キーでポーズしても 音楽が鳴りっぱなし(Mikasenさんパッチ)、HYPERが何回でも使えるとか気付いていないかも。 このNEMESIS、2週目がこけるらしいです。
8月3日 FATは連続していた方がいいですねって、いきなり何の話でしょう。 例えば、2GbのFAT16ドライブに32Mbのディスクイメージファイルを詰め込んでいったとします。 FAT16対応のEP.COMがあれば、ディスクイメージをドライブに割り当てて、32Mbのパーティションとして 使えますよね。この場合パーティション(ディスクイメージファイル)の管理はMEGASCSI.TBLではなく FAT16ファイルシステム。 MEGASCSI的にはSFORM-2で分割したパーティションでもFAT16のファイルでも同じなのですが。 私、何がしたいのでしょう。
7月28日 ver0.08の間違いを直しました。 2周年記念でプログラムの模様替えをしたのですが、例によってあちこち忘れ物が出来てしまいました。 パッチあての不備でなくて良かったです。 UNDEL16は誰かが作ってくれることを期待して待っていよう。FAT16フォーマッタも。 FAT不連続でも使える仮想FDが欲しい。
7月24日 ver0.08は失敗でした。CP.COMが使えなくなってしまいます。 手作業で開始ブロックを書き替えれば、パーティションが変化しますが、CP.COMでは開始ブロックは 書き替えられているのに、DIRを取ると表示がメチャメチャ。なぜでしょう。 CP使ってから、データセグメントのディスク情報やB6D4hに読み込まれたブートセクタの情報を消して、 DIRすると正常になります。B6D4hがらみということは、ver0.08で削ってしまったあのルーチン? 原因がわかるまで&UNDEL16を作るまでは、ver0.07を使った方が良いです。
7月22日 FAT16パッチを始めてから2年になりますが、まだまだ完成は遠いです。 FAT16 ver0.08を作りました。 ・ファイルやサブディレクトリを削除するとき、DOS2フォーマット以外のディスクでもファイル復活用に 第2FATの情報を残すようにしました。FAT16用UNDEL.COMがないので、手作業で復活させるしかないです。 UNDEL.COMって・・・FAT16ドライブのFATは、最大100hセクターです。どうしよう。 ・MegaSCSIのDSKIO書き替えをやめました。 ファンクション1BhでFATを専用バッファに読み込むとき、DSKIOの'EI'が邪魔をします。 ver0.07ではFAT16常駐時に、MegaSCSIのDSKIOのジャンプ先を書き替えていました。 時々どのドライブがFAT16なのか、FAT16が常駐しているのかどうかわからなくなります。 それで、使えるファイルシステムの種類、ドライブのFAT情報を表示出来るようにしました。 ドライブのFAT情報は、データセグメント内の情報を取り出すので、一度ドライブにアクセスしないと not ready になってしまうし、ZIPやMOなどでFAT12からFAT16にディスクを入れ替えた直後では間違えるかも。 DOSってディスクが入ってないドライブをアクセスすると、(A,I,R)を入力・・・になりますよね。 画面にそれを出さないで、エラーコードだけを得る方法ってありますか? もしかしてファンクション62hとか63hを使う?
7月15日 DOS1フォーマットのディスクは、DOS2でファイルを削除しても復活できませんが、FAT16次バージョンでは フォーマットに関係なくUNDELが使えるようになります。FAT12だけね。 FAT16用のUNDELは・・・これから考えます。 次バージョンではMegaSCSIのDSKIOも何とかします。完全に趣味で開発している感じ。
7月8日 パッチを追加して、VOL_IDの文字列が無い時はボリュームIDに7F,FF,FF,FFを使うようにしました。 ファイルを削除すると、第1FATだけ消してブートセクタにUNDEL可能フラグをセットします。 FAT16ドライブもやっとDOS2扱いしてもらえます。 ファンクション31hのディスクのパラメータ、FAT16ドライブではDE+24からの3バイトに論理セクタ総数を 入れることにしました。DE+12のFATサイズが00のときは、0100hの意味です。 さてUNDEL.COM解析ですが、複雑怪奇ですね、このプログラム。 UNDELの原理って想像とは全く違いました。FAT16ドライブのFATはとても大きくて、メモリに全部 読めるわけないので、UNDEL.COMパッチは無理かも知れません。UNDEL16.COMでも作ろうか。 指定されたファイルだけ復活なら簡単? CHKDSKとか作る人いないかな。
7月7日 FAT16のフロッピーなんて意味の無いことをやっている場合じゃないです。 UNDEL問題がそのままになってました。 FAT16ドライブのファイルはUNDEL出来ません。原因はブートセクタの+20h〜25hに VOL_IDの文字列がないから。 FAT16フォーマットのディスクは、ブートセクタ+20hからセクタ総数が書かれています。 ボリュームIDとは、DOS2フォーマット時に設定される4バイトの乱数ですが、DOS2は"VOL_ID"の文字列が 書かれてないディスクに、FF,FF,FF,FFのボリュームIDを付けます。従ってFAT16フォーマットのディスクは ボリュームIDがすべて同じになってしまい、DOS2はディスクを区別できません。 ファイルの削除ではボリュームIDを調べて、第1FATだけ消してブートセクタのUNDELフラグをセットしたり、 第2FATも消して復活出来ないようにしたり。DOS2は芸が細かいです。 UNDEL.COMにパッチあてようかと思いますが、DOS2が言うようにボリュームIDの区別がつかないと危ないですか? 消したファイルが復活しないと困るし、ディスクを間違えても困るし、MSXとWinの両方で読めるフォーマット じゃないと困るし、ファンクション31hもなんとかしなければいけないし。 書き込みをサポートするのは大変ですね。
7月5日 フロッピーディスクにも使えるFAT16FD.COMを作りました。 全てのドライブをFAT16に出来ると書いたら、フロッピーディスクも?と言われたので作りました。 2DDをFAT16にするとデータ部分が少なくなるし、PCで読めなくなるし、意味無いです。 DOS2って変なフォーマットのディスクでもアクセスできますよね。 ブートセクタの情報をきちんと参照しているので、FAT数 1〜7、クラスタサイズ 01h〜80h、 FATサイズ 1〜12、セクタサイズ 512ならOKです。 32Mパーティションでクラスタサイズを80hセクタにすると、大きなファイルでもアクセスが速くて 良いですよ。ディスクイメージの保存用に使う?
7月3日 最近は何もしていません。家の中を片づけたり、いらないディスクを大量に捨てたり、暑いのに ひたすら肉体労働です。引っ越しは面倒ですね。でも最後の引っ越しだから頑張ろう。 Jonさんが書いたIDEFAT16.TXTを読んでいたら、「using a RAMdisk is no problem if it was installed before the FAT16 driver.」だって。本当? 確かにRAMDISKを設定してからFAT16を常駐すれば、RAMdiskは普通に使えますね。知らなかった。 FAT16を解除すれば、RAMDISKコマンドも復活します。 MegaSCSIでFAT16パッチを使っている方、使いたい方ってどの位いらっしゃるのでしょうか。 MegaSCSI/ATA-IDE対応版は、MegaSCSIのDSKIOルーチンの'EI'を潰しているので、ソフトによっては 動作に支障があるかも知れません。MegaSCSI専用版を残しておいた方が良い?
6月19日続き 下の実験、よく考えたら出来て当たり前ですね。 FATが連続していなくても使える仮想FD/HDDって作れないかしら。イメージファイルのFATを どこかに読み込んでおいて。でも大変かも知れない。仮想FD/HDDのセクターをイメージの クラスタになおして、FATを調べてセクター換算、ポインタを移動してファイルリード。 時間かかりそうだけど、やってみようかな。仮想FDならファイルが小さいから。
6月19日 エミュレータで32Mbのディスクイメージが使えるとか使えないとか。 おもしろそうなので、MSXでも32Mbのイメージが使えるか試してみました。 まずはイメージファイルを作成しなければ。FDSAVE.COMにパッチをあてようかと思いましたが、 32Mbという大きなファイルなので、普通に作成したら時間がかかりそう。巨大ファイルの扱いに 馴れている方に、パーティションイメージファイル作成ツールを作っていただきました。 ZIP(FAT12)の32MbパーティションのイメージをHDD(FAT16)に作成。ごく普通のTurbo-R環境で ファイル作成に約8分かかりました。ZSPEED.COMを使えば2倍くらい速くなります。 無事にイメージファイルが作成できたので、いよいよテスト開始。 EP16.COMが無いので、手作業でMEGA-SCSIのDOSドライブ登録テーブルをイメージファイルの先頭ブロックに 書き替え、ブロック数をFF08hに書き替えました。MMに戻ってイメージファイルのドライブを表示すると ディレクトリが変なことになっています。SHEMを起動、データセグメントのディスク情報エリアを 見ると、ディスクのパラメータがFAT16のままになっていました。FAT16ドライブのブートセクタには VOL IDの文字列が無いので、ディスク情報のVOL IDが全てのディスクでFF,FF,FF,FFになります。 DOS2はVOL IDの違いからディスクが交換されたことを知るので、FAT16ドライブのディスク交換を 知る方法がないのです。定期的にdisk bufferをフラッシュした方がいいのかも。 取り合えずディスク情報を消してDOS2に戻り、MMでディレクトリ表示。今度はうまく表示されました。 仮想HDDの出来上がりです。 圧縮ファイルの解凍、ROMイメージファイルの実行などしてみましたが正常動作しました。 でも、仮想HDDなんて使い道あるのかな。
6月12日 最近はパッチをアップするだけで、ドキュメントを全く書いてないです。 使い方がわからなくて困っている人はたぶんいないだろうと勝手に思っていますが。 Jonさんからの動作不良報告。もしかしたらDOSのバージョンによって正常動作しない? 海外ではver2.2xが主流なので、IDEBIOSにパッチをあてて、ver2.2xをマスターにしてテストしました。 ZT.COMで大きなファイルを読んだ後、DOS2に戻りません。ver2.3xでは起こらない現象です。 原因に思い当たるところがあったので、パッチを追加しましたが、もしかしたらJonさんがおっしゃる ように、Long filenameの問題かも知れません。報告待ち。
6月6日 昨日書いた危険な現象って、FAT16パッチ無しのときに起ることでした。 どうしたらいいのだろう。対策無し。 ATA-IDEのBIOS作者さんに、いろいろと協力していただいてます。 DIRコマンドでのディスクの空き容量が、1クラスタ分少ないって言われました。 そう言えば昔々その辺りにパッチをあてているとき、「クラスタ総数+1」にするところを 「クラスタ総数」にしていました。1クラスタの違いに気付くなんて、Jonさんって鋭いですね。 FAT16のテスト版をアップします。 MegaSCSIのDSKIO対策は元に戻ってしまいました。34F0hコールでは#1Bでの未使用クラスタ数が 狂ってしまいます。MegaSCSIで正常動作しないなんて・・・FAT16はATA-IDE用になってしまうのかな。
6月5日 貸していただいたATA-IDEのHDD、早速中身を調べました。 ブロック0: +01F0h- Aドライブのパーティション情報 +01E0h- Bドライブのパーティション情報 こんな感じでEドライブまで続いていました。 ブロック1からパーティション1が始まってます。 ATA-IDEの情報って公開されてます? パーティションサイズ32Mbと言っても、MegaSCSIとは若干違いが・・・ ATA-IDE MegaSCSI セクタサイズ  512バイト 512バイト クラスタサイズ 8Kb(10hセクター) 8Kb(10hセクター) FATの先頭 0001セクター 0001セクター FATの数 02 02 DIRエントリ数 112 240 セクタ総数 FF5Chセクター FF08hセクター ID F0h F0h FATサイズ 000Chセクター 000Chセクター ・いよいよATA-IDEのHDDをFAT16フォーマット、細かい計算が面倒だったので100Mbでフォーマットしました。 tRのスロット1にIDE、スロット2にSCSIで電源ONすると、no enough memory だって。なんか変。 IDEをスロット1に差すのはまずいですね。AドライブがFAT16ドライブでは起動しないから。 でもケーブルの関係でスロット1にMegaSCSIが差せません。色々考えてIDEの前に似非RAMディスクを 持ってくることにしました。 スロット1-0 似非RAMディスク 1-1 ATA-IDE   スロット2 MegaSCSI ATA-IDEの空いているメモリーで、似非RAMディスクのような物を作ったら良いのに。 16kバンクだから出来ないのですね。ATA-IDEも8kバンクのメガロムで作れば。 ・動作テスト A: 似非RAMディスク(FAT12) B: ATA-IDE HDD 100Mb(FAT16) C: 似非RAMディスク(FAT12) D: MegaSCSI HDD 2Gb (FAT16) E: MegaSCSI MO 230Mb(FAT16)  FAT16をインストールする前に、間違えてBドライブにファイルをコピー。  エラーにならずコピー出来てしまいました > 困った現象 = 危険な現象  FAT16インストール後、D,EドライブからBドライブにファイルのコピー > 成功  FAT16システムは書き込み上手で、ちょっと危ないかも。   ・困った現象対策 *FAT16ドライブ指定にする  例 FAT16 B: C: D: *FAT16システムのDOS2をインターフェースに入れてしまう。 但し、ファンクション#14,#15,#67,#68は完全に使えなくなる。  どうしようかな。  
6月1日 ATA-IDEインターフェースを貸していただきました。実物があるとやっぱり楽しいです。 昨日からいろいろ試していますが、ATA-IDEのFAT16はまだ実験していません。 今日はATA-IDEとMegaSCSIを差して、IDEのFAT12ドライブからSCSIのFAT16ドライブへ大量の ファイルをコピーしました。IDEとSCSIの共存もいいですね。 5/27に公開したテスト版、違っていたかも。アップし直しました。
5月27日 DIRコマンドが遅くなってもいいですね。34F0hを使うことにしました。 今度こそMegaSCSI、ATA-IDE共通化できたと思います。 MegaSCSIのパーティション切り替えには、CP16.COMを使って下さい。 テスト版を公開します。
5月26日 原点に戻って考えてみました。1BhでのFAT読み出しはDSKIOを使ってますよね。 でも割り込み状態関係無しに動いているので、DSKIOのEIは特に問題ではないのですね。 動かない原因は、勝手にマッパーを切り替えたから。 DOS2ではDSKIOに行く前にページ2のマッパーを切り替え、戻ってからF2CFhの セグメントに戻しています。直接DSKIOコールがいけないなら、ファンクション1Bhのように もう少し手前(STでは3263h)を使ってみよう。 設定:IX データ転送アドレス    DE セクタ番号    B  セクタ数    C  データを転送するセグメントの番号    HL ディスク情報ブロックのアドレス(ページ2)    A  0=READ 1=WRITE 2=DSKCHG 3=GETDPB 4=CHOICE 5=DSKFMT で、ここを使ったら見事成功でした。IDEでは試してないけど、たぶん大丈夫なのでは。 ただ DIR コマンドが若干遅くなります。ここを使うか、もう少し先の方を使うか、 ちょっと考えてみます。
5月24日 出来たと思ったらいろいろ報告が・・・ ・DIR関係の問題は解決してました。 FAT16インストール前にBUFFERをフラッシュ&無効にしましたが、私のミスで LD B,0FF になっていたのが原因。それを書き直したらDIRが正常に表示されました。 (Thanks,Jon) ・ファンクション1Bh問題が駄目でした。 ファンクション1Bhでは、FATを1セクタずつDISK BUFFERに読み込んで、未使用クラスタを 数えますが、FAT16システムのFATは最高256セクタですから、DISK BUFFERを使う方法では 時間がかかり過ぎます。それでFAT16ドライブでは専用バッファ(16k)に32セクタずつ 読み込んで、未使用クラスタ数を調べています。 FATの読み込みにDSKIOを使うと、ATA-IDEでは動作してもMegaSCSIで動作しません。 ページ2をバッファに切り替えている間は、割り込みがかかると困るのです。 解決策としてF2C9hにバッファのセグメント番号を書き込んだのですが、よく考えたら ファンクションコールの初めでF2CFhのセグメント番号をここに保存しますよね。 書き替えるのはまずかったかな。 苦肉の策でFAT16常駐時、MegaSCSIのDSKIOをEIしないように書き替えます。 なんかFAT16はATA-IDE用になってしまうかも。
5月22日 やっとできました。助言して下さった方に感謝です。 ver0.07はMSX-DOSver2.2x、ver2.3x対応のカーネルパッチです。 インターフェイスのDSKIO(4010h)で、MegaSCSIのようにCレジスタの機能が 拡張されていれば、たぶんFAT16が使えると思います。 インターフェイスごとのパーティション切り替えツールが必要ですが。 MegaSCSI用FAT16パーティション設定ツールは、CP16.COMとか。 FAT16パッチを2つに分けたことで新たな問題が・・・ FAT自動判別にしてからは、常駐を解除してもドライブ登録テーブルを戻していません。 そのドライブをFAT12システムで使うときは、CP.COMでパーティションを再設定する ことになりますが、そのままにしておけばFAT16を常駐するだけでまた使えるはずでした。 FAT16ってユーザーが少ないので動作報告も少なくて、海外からの報告も貴重なんです。 たぶんHDDを使ったのでしょうね。常駐前にFAT16ドライブをアクセスすると、DIRで 表示が変になりますよね。FAT16システムをFAT12システムで読むのだから当たり前。 でもFAT16常駐後もDIRコマンドが元に戻りません。 この方はDOS2.2x+IDEなので、私はDOS2.20+SCSIで試してみました。 HDD : 上と同じ MO : FAT12でアクセスすると'Not a DOS disk'のエラーになります。     FAT16常駐後は正常にアクセス可。 ZIP : HDDと同じ HDDやZIPはFAT12でもアクセスできてしまうので、ページ2のドライブ情報エリアに FAT12から見たドライブ情報が書き込まれます。FAT16に変わってもディスクは 変わらないので、ドライブ情報が更新されません。ZIPの場合はディスクを入れ直せば 正常ですけど、HDDが困りましたね。FAT16常駐後にパーティション設定をすれば 大丈夫なのですが、それでは意味が無いような。 FAT16常駐時にFAT16ドライブのドライブ情報を破壊すれば良いのですが、ドライブ番号を 入力するのも面倒だし。ソフトの作り方って難しいですね。
5月20日 DOS2のソース復元は大変そう。相対ジャンプ先にラベルを付けなくては。 ソースのはじめの方には付いていましたが、途中から何もなしです。 数が多すぎて、HOJAで対応できなかったのかな。 家のアセンブラは BIT 0,(IX+d) とか SET 0,(IX+d) が苦手みたいです。 DOS2にはこの手のコードが多すぎ。 FAT16patchですが、プログラムをカーネルパッチとパーティション切り替えに 分割します。MegaSCSI以外のインターフェイスでもFAT16が使えるといいなぁ。 それにはある程度仕様を統一しないと無理ですね。 DISKIOルーチンの Cレジスタの使い方とか、I/F独自のセクターリード・ライト エントリとか、その時のレジスタの設定方法とか。 今、困っていることは・・・function call 1Bhのセクターリード。 ページ2を専用バッファに切り替えて、FAT直読みでフリークラスタを数えますが、 I/F独自のセクターリードルーチンを使うと、IDEとSCSIではAレジスタに設定する ドライブ番号の形が違うし、共通に使える4010hではSCSIが駄目だし。 ATA-IDEとMegaSCSIの4010hは、微妙に違います。両方とも23bitのセクタを扱えますが、 ATA-IDEはルーチンのはじめでEIしていません。 EIは厄介者。なんか私の考え方って海外のユーザーに近いかも。動けばいいんだって。 危ないですね。
5月12日 HOJAで復元したDOS2のソースリストをアセンブルしてみました。 どうやら元のDOS2に戻っているみたいです。さすがHOJA。 でもZ80ASMは BIT 0,(IY+0) のようなものをアセンブル出来ません。 ソースリストが完璧になったら、いよいよ書き替えますが、改造DOS2カーネルは 16kに収まらないと思う。どこかを削るか。どうしよう。
5月9日 ATA-IDEのBIOSの作者さんに、DSKIOをMegaSCSIのように(セクタ番号23bit)して 欲しいと伝えていただきました。そしたらあっさりと断られてしまった。 SCSIやIDEが使えるNEW MSX-STANDARDを作ろうって。それに長い時間が掛かるなら DSKIOをMegaSCSIのようにするそうです。 MSXCDEXやFAT16のようなDOS2パッチは嫌いだって。 FAT16は自分でも嫌になるくらい汚いです。つぎはぎだらけだもの。 主婦のあいだで流行っている「パッチ」はもっと細かいですし、細かいパッチを 作る人は腕のいい人なのですが、こっちの世界ではパッチは小さいほど良いので。 MSXCDEXのDOS2パッチは、ほんの3バイトだったと思ったけど。 FAT16をサポートしたDOS3を作りたいようです。FAT16が使えるだけでいいなら、 DOS2のソースを書き替えて、アセンブルし直そうかな。 はっきりと「嫌い」って言われちゃったからね。彼の挑戦状?
5月7日 ATA-IDEって他機種とネットワーク出来ないのですか? そうするとMSXで動作するFAT16フォーマッタが必要になりますね。 う〜ん、困ったなぁ。私、フォーマッタなんて作れない。 FAT16 ATA-IDE版は誰かに作ってもらおう。情報提供ならいくらでもするから。 だって自分で動作テストできないし・・・ FAT16パッチのソースを公開します。
4月28日 東芝EMIから出ている「五目ならべ」にはまっています。先手と後手では 禁じ手が違っていたり、五目並べの正式なルールを知らないと勝負になりません。 それに、あいつは汚い手を使います。あと一手で四三の勝ち・・・なはずが、 いつの間にか四四と打たされて、禁じ手を打ったので負けとか。完全に遊ばれてます。 悔しいからNSLOADでセーブしながらやってます。負けると、ロードしてやり直しとか。 お陰で8勝2敗です。これから勝負してきます。 ATA-IDEは・・・実物があればすぐに実験したいのですが。
4月22日 ATA-IDEってCD-ROMも読めるのですか?ATAPIって何だろう。 SD MESXESというスペインの雑誌に、ATA-IDEの内部情報が掲載されているので、 スペインの方に知りたいところを英訳していただきました。本当は日本語に 翻訳して欲しいのだけど。でもATA-IDEの動作が少しずつ見えてきました。 DSKIOはパッチでなんとかなりそうです。 マシン語って世界共通言語なので、助かりますね。
4月21日 久しぶりにFAT16のソースを見ました。DOS2カートリッジ対応は簡単だと思いますが、 ATA-IDE対応はちょっとだけ問題があります。ファンクション1Bhで未使用クラスタを 数えるとき、ページ2をバッファ用のセグメントに切り替えて、FATのセクタを直接 読み込みます。DOS2のセクターリードでは、切り替えたセグメントに読み込めないので、 MegaSCSIファンクションを使っていますが、ATA-IDEではどうしよう。 7F89hでセクターリード出来るようなので大丈夫とは思いますが、駄目なときには dirコマンドが遅くなるけどバッファを使わなければいいし。 ATA-IDEの4010hは致命的。7F89hは、セクタ番号24ビット対応ですが、4010hは16ビットです。 パッチあてる? ATA-IDEの動作がわからないので、へたにパッチをあてると動かなくなりそう。 MegaSCSIの拡張入出力(DSKIO)を使わない方法を考える? ATA-IDEもMegaSCSIもセクタリードルーチンを持っているので、出来ないことはないけど、 互換性を考えるとDSKIOを使った方が・・・ ATA-IDEの作者にお願いして、DSKIOで23ビットのセクタ番号が使えるようにしてもらう。 誰がお願いするのだろう。  


FAT16開発日記に戻る

トップページに戻る