たわごと2


2017/11/22

2ドライブ仕様のサロンdeねくすたあ〜、MSX起動時のSDメモリの組合せによっては起動に失敗します。
家にあるMicroSD5枚と普通サイズのSD4枚を組み合わせた結果なので、世の中のSDメモリ全部を調べたら
もっとでてくるのかな。Trnascend 4GBのMicroSDはスロット1専用、I/O DATA 8GBのMicroSDもスロット1の
方が失敗が少ない。東芝のFlashAir 8gbはどちらのスロットでもどんな組み合わせでもOKでした。

実は起動に失敗する原因がわからないのです。
駄目な組合せのSDメモリでもMSXが起動してからSDを入れ替えれば大丈夫なのですから。


今日は原因を突き止めようと、MSXがフリーズしたところでスタックを調べました。
どうやらSD初期化ルーチンのCMD55みたいです。コマンドのレスポンスが帰ってこないのかな。



2017/10/21 MAPDRVでディスクイメージをドライブにマッピングして、MMでファイルを大量コピーすると失敗する話。 フロッピーディスクのイメージファイルをドライブGにマッピングして実験しました。 tRのスロット1にさろんdeねくすたあ〜、スロット2にMegaSD コピー失敗はディレクトリが壊れます。
2017/10/13 マンボウのスクリーンセーバーに影響されて画面の背景色が変わってしまうSHEMですが、パッチを あてて青にできました。 MGSAVE、MGLOADはバンク10hからセーブ・ロードするようにパッチあて。 MAPDRVでディスクイメージをマッピングしたとき、MMからコピーするとなぜか失敗することがあります。 DOS2から「COPY」で大量のファイルをコピーしても大丈夫です。不思議
2017/10/12 サロンdeねくすたあ〜に入れていたMM.COM 2.07_Kのファイルは壊れていました。 ManuelさんのサイトからROMDISK.DSKをダウンロードして、MegaFlashROM SCC+ SDにインストール。 このMMは色が違うのですね。スクリーンセーバーがマンボウって可愛いです。初めて見ました。 MM.DOCを読んだことが無かったので、マンボウのスクリーンセーバーがあることも知らなかっただけ。 一度マンボウ画面になると、SHEMを起動したときに画面の色が黒になるので困った。
2017/10/03 サロンdeねくすたあ〜のファームをNextor128KBとROMdisk384KBに分けたほうが良いのかも。 現在ROMdiskの中はNextorに必要なファイルとMMだけなので、半分ちょっと空いています。 多分ROMdiskに入れたいファイルって人によって違いますよね。 Nextor128KBのファイルとROMdiskのファイルを結合する方法は、ゆうくんさんのサイトに 書いてあります。 私には原始的な方法が向いているので、MSXでROMdisk用のファイルを作ってみました。 ブートセクタのデータはNextorのROMdiskのものを使い、セクタ総数だけ0300hにしました。 Nextorのmapdrv.comでディスクイメージをドライブにマッピング、MMからコピーしたい ファイルを選んでまとめてコピーしました。 コピー先のドライブを見るとファイルは3つしか表示されません。 shemでディレクトリのセクタを見ると、19個のファイルをコピーしたのにディレクトリには 最後のファイル3個分しか書かれていませんでした。ファイル16個で1セクタ使うので、 次のセクタに行かなかった? これ、変ですよね。サロンdeねくすたあ〜だけに起こる現象? 同じことをMegaFlashROM SCC+ SDで試しました。さすが本家ですね、あっさりコピーできました。 MegaSDでは? 同じ実験をしました。結果はサロンと一緒。 サロンでもファイルを一つずつコピーすれば出来るんですよ。多分MegaSDでも。 本家MFRとMegaSD・サロンdeねくすたあ〜の違いって何なのでしょう。
2017/05/29 NextorでSCSIが使えるように出来ないかなぁと考えています。 MegaSCSIテーブルはそのまま使って、でもFAT16パッチはもう使いたくないので、 DOS2カーネルはNextorを使います。 またMegaSCSI解析です。某博士はいつまでも楽しませてくれますね。
2016年 8月22日(月) ここに書くの久しぶり。ROMディスクのMMを調べていたので・・・ MegaFlashROM SCC+ SDやMegaSDを持っていなくても、1chipMSXと似非RAMディスクが あればNEXTORが使えます。 NEXTOR 1/2を1chipMSXで使うとき、SD/MMCスロットがAドライブになっていると カード交換がうまくできません。NEXTORの仕様なのだと思いますが、1chipMSXの ようにひとつのSDスロットで2つのドライブにはならないようです。 それで、Aドライブに似非RAMディスクを、BドライブにSDスロットを使うことにしました。 似非RAMカートリッジにDOS2カーネルをMGINSTして似非RAMディスクが使えるようにします。 NEXTOR起動に必要なファイルをコピーします。 NEXTOR.SYS COMMAND2.COM(23935バイト) MM.COM等  *COMMAND2.COMが特別な物なのか、まだ調べていません。 ファイルのコピーが終わったらNEXTOR 1/2をMGLOADでBANK 0-7にインストールします。 NEXTORのROMdiskアクセスは読み出し専用です。ROMdiskですから。 これで似非RAMの準備は終わり。 次にフォーマットしたばかりのSDカード(2GB以下)を用意して、NEXTOR 1/2をいれた システムファイルをコピーします。 と言っても、NEXTORパッチを作っていないので、誰も実験できないね。
7月28日(木) NEXTORでパーティション分割する方法がわからなくて、Manuelさんに聞いてみました。 Bank 0Ahには"Partitionning tool"なんて書いてあるので、どうやって使うのか・・・ 答えはBASICからCALL FDISKだそうで、BASICから使うなんて考えてもみなかった。 教えていただいたとおり、BASICからCALL FDISKでNextor disk partitionning toolが 起動しました。32GBのSDカードはNEXTORでは30GBと表示されました。 使い方も簡単で、4GBのパーティションが7つと最後のパーティションは約2GB、あっと いう間に分割されました。 MSXをリセットすると、パーティション1が自動で選択されました。 次はパーティション切り替えツールを探さなくちゃ。 早速SHEM.COMでパーティション1の中身を見ました。 ページ2のディスク情報を見ると、開始セクタは0000 0001hになっています。 そこを0000 0000hに書き換えて、NEXTORの73h(_RDDRV)で読みだすとMBRには01BEh〜と 01CEh〜だけ情報が書かれていました。 8個分のパーティション情報が書かれていると思った。 パーティションの開始セクタ番号がおもしろいです。4GBのパーティションは00 80 00 00hセクタになってます。 第1パーティション  00 00 00 01h 第2パーティション  00 80 00 02h 第3パーティション  01 00 00 03h 第4パーティション  01 80 00 04h 第5パーティション  02 00 00 05h 第6パーティション  02 80 00 06h 第7パーティション  03 00 00 07h 第8パーティション  03 80 00 08h セクタ番号の最下位がそのままパーティション番号って、偶然?
7月26日(火) 32GBのSDカード、4GBずつ8パーティションに分けました。 最後のパーティションは開始セクタ0342 A800hです。 このパーティションにファイルを書き込んでみましたが、ちゃんと書き込まれています。 SDに渡すセクタ番号が32bitだから、こんなことができる? SCSIもセクタ番号32bitが使えますよね。 そしたら32GBのHDDも読めるのかな。
7月22日(金) NEXTORとMEGASCSIを一緒に使っているうちに、MEGASCSIはこのままで良いような気がしてきました。 SCSI機器をアクセスするにはID番号が必要ですよね。NEXTORをSCSI対応にしたときドライブごとの IDをどこに保存しようか、パーティションの先頭セクタ番号はページ2のディスク情報ブロックに あるし、IDと同じ場所にあれば・・・なんて考えているうちに、MEGASCSIはそのままの方が使い安 いという結論に・・・ SCSI問題はちょっとおあずけ。 今日は8GBのSDカードをNEXTORで読み書きの実験をしました。 NEXTORの上限は4GBなので、パーティションサイズ4GBに分割。 分割ツールが見当たらないので、SHEM.COMを使って手動で行いました。 NEXTORはすごいですよ。8GBのSDHCも読み書きできます。 両方のパーティションでMMから15のファイルをコピーしましたが、問題なしです。 パーティションの切り替えはツールが見当たらないので、ページ2の先頭セクタ(開始ブロック)を 直接書き換えて切り替えています。どこかにツールがあるのでしょうか。 SDHCは最大32GBだそうで、ちょっと試してみました。 NEXTORで読めますね。32GBのSDカード、これを4GBずつ分けてしまおうか。
7月6日(水) NEXTORが少しわかったところでSCSI対応に挑戦しようかな。 BANK E-FにあるSDドライバをSCSI用に書き換えれば、たぶん大丈夫なはず。 家のMEGASCSIはRAM256kb、BANK 0-FはNEXTORが使うのでESE-RAMディスクはBANK 10-1Fになります。 BANK 08のブートセクタとFATをBANK 10に移動しました。 MEGASCSIの内部テーブル7F9Ah,7F9Bhを10,10に書き換えてMSXをリセット、ESE-RAMディスクが 作成されていることを確認。 ESE-RAMディスクが小さくなったので、NEXTOR起動に必要なファイルだけをFDDからコピーしました。 ここまでの作業はMEGASCSIで行いました。 NEXTORはESE-RAMにファイルが無いと、ドライブ扱いしてくれないのでファイルのコピーが できません。 次にMEGASCSIのBANK 0-FにNEXTORのシステムファイルをMGLOADして、準備OK。 念のためMEGASCSIをMGSAVEで保存、このファイルを元に明日から書き換えます。 番長さんにも対応できるように、SCSIの本を読みながらやってみますね。
7月1日(金) NEXTORでは32bitでセクタ番号を扱っています。 MegaSCSIは23bitです。 でもSCSIコマンドハンドラを使えば32bitでセクタ番号を扱えますよね。 違うかな? また、何かを始めるかも。
6月28日(火) NEXTOR 1/2が完成しました。 NEXTORの構造ってこんな感じ?  BANK 0-1 DOS2 BANK 2-3 BANK 4-5 CODEセグメント BANK 6-7 DOS1 BANK 8-9 CODEセグメントの続き BANK A-B Partitionning tool BANK C-D Formatter? BANK E-F SD Driver  NEXTORを半分の大きさにするには、そうとう思い切ったダンシャリをしないと無理です。 絶対必要なBANK 8-9、BANK E-F以外は捨てることにしました。 DOS2専用にすることでBANK 6-7が空くので、BANK 8-9を入れました。 BANK E-Fはプログラムが小さいので、BANK 2-3に一緒にしました。 これでNEXTOR 1/2ができました。 1ChipMSXでの動作は、起動するときは2GB以下のSDカードが必要ですね。 4GBのカードではシステムファイルが読み込めない。 一度NEXTOR 1/2で起動すれば、その後は4GBのSDHCでも大丈夫です。
6月19日(日) 1Chip MSXの内蔵DiskROMをNEXTOR 1/2に変えて起動できました。 起動には2GBのSDカードを使いましたが、途中で4GBのSDHCに交換しても読めてます。 ソフトの変更だけで、1Chip MSXでもSDHCのカードが使えるようです。 私がこんな実験をしたのは、いまどき2GBのSDカードなんて見当たらない、4GBのカードだって 少ないし、最低8GBという感じ。でも1Chip MSXはSDHCに対応していない。 MegaSDとかMegaFlashROM SCC+ SDなどがもっと普及していれば良いけど・・・ NEXTORは良いOSだと思います。 ただサイズが大きすぎ。 MSXの内蔵DiskROMって128KBにできないのでしょうか。 1ChipMSXの内臓DiskROMを128Kに変えていただけないでしょうか>某博士
6月18日(土) BANK 0-7にNEXTORの最低限必要なBANKを入れて、ROM diskも入れてtRで実験すると、 ページ2のディスク情報ブロックにNEXTORフラグが書き込まれないので、起動しません。 ページ2にデータセグメントが出ていることから、フラグを立てているのはコードセグメント または拡張されたコードセグメントかな? でも、それらしき物はないんですよね。 見つからないので、コードセグメントのディスク情報ブロックを確保しているルーチンに パッチをあてました。 tRでNEXTOR 1/2がROM diskから起動しました。 SDカードが読めないのは、開始ブロックの設定をしていないから。 来週の課題。
6月14日(火) NEXTORは難しいです。 ページ2のディスク情報を拡張して、SDカードの開始セクタ番号を入れたり、 NEXTOR以外のディスクと区別するためのフラグがあります。 ディスク情報、DOS2は61hバイト、NEXTORは6Bhバイトです。 *はNEXTORが追加変更 +00h Didk ROMのスロット +01h デバイス番号 01 - 03 * +02h,03h ページ3にある DPBアドレス +04h フラグ * +05h bit0=1ならNEXTOR * +06h Logical Unit Number 01 * +08h 論理ドライブ +0Ah クラスタマスク +0Bh クラスタシフト +0Ch FATの先頭セクタ番号 +0Eh FATの数 +10h ディレクトリエントリ +11h FATのセクタ数 +12h ディレクトリの先頭セクタ +14h データ領域の先頭 +16h クラスタ総数 +18h UNDELフラグ +19h VOL +1Dh ID +1Eh カレントディレクトリのクラスタ番号 +20h サブディレクトリ名 +62h-65h 開始セクタ番号 *
6月10日(金) NEXTOR 1/2が動作しました。 ディスクが使えなかったのは、セグメント(F2CFh)のディスク情報ブロックの NEXTORフラグが書き込まれなかったから。これを手作業で書き込むと、SDカードも ROM diskも読み出せます。フラグが書き込めない原因はDSKCHGかも。 まだまだNEXTOR 1/2だけでは起動できないけど、これが旨くいったら1chipMSXで 試してみたいな。
6月9日(木) 久しぶりにNEXTORで遊んでいます。 これをDOS2専用、BANK0-7に収めたいのです。 試行錯誤していますが、まだDOS2起動はできません。 BASIC起動、ディスクが使えません。 また明日・・・
6月6日(月) 数ヶ月前からPCが不調で、突然死したら大変なのでいろいろ対策を考えました。 ・PCを買い換える 一番簡単です。でも今時のPCはWindows10が入っています。 残念なことに家が使っているケーブルTVでは、まだWindows10には 対応していません。 ・家にあるPCを探す Windows7が入ったノートを息子にあげちゃったんです。 それでVistaが入ったデスクトップが余っています。 動くのかな。 ほこりだらけだったので中も掃除して・・・起動しますね。 私のPC壊れたらVistaを使おう。 息子が使っていたVista-PCはメモリが1.5GB ネットするにも重いし、 でもWindows7で動かなかったz80asmがVistaでは動作する。 PageMillも普通に使える。良いこともあります。 ということで、またHPの更新ができます。
戻る