FreeDOS(98)進捗どうですか
@lpproj そういやHimemX、拡張メモリの転送にいわゆるunrealモードを使ってたりするっぽいのですが大丈夫なんですかね…(np21、Anex86、T98Nextあたりでは動いてそうな感じですが…)
2016-09-13 22:07:42んー確かAnex86で16M(というか14.6M)超メモリ使えるようにする改造みたいのがどっかにあった気がするのですがどこだったかしら…
2016-09-13 22:13:13誰もきいてない近況(98)その55:emm386(98)が残念な件、要するにハードウェア的にA20ディセーブルしようとすると起きるような感じでしょうか…(めんどいのでhimemx側でV86モードの時はA20触んないようにするか…) pic.twitter.com/MJtxPMwHNs
2016-09-16 18:20:26ちなみに: ・jemm386を移植すればいいんだよなー→うわーちょっとわからない… →emm386最終版(2.26)からやってみるか→ビルドは通るようにしたけど動くようには… →とりあえず1.15を動くようにしよう… てな感じでスキル&メンタルの目標フォールバックがひどい件…
2016-09-16 18:27:48ちなみにPC-98でまともなメモリマネージャが必要な場合はvem486かlemm使って、どうぞ。どちらもフリーでじゅうぶん安定かつ強力ですよ…lemmとか最狂(いうまでもなく誉め言葉)やし…SMP機なら実際に複数CPU動かす機能があったはず…
2016-09-16 18:34:41あとUMBまじめにサポートするならDMAのトラップとかしないとダメなのかー。あー386プロテクトモードの知識をもすこし真面目に仕込まないといけないのかーぅぁー
2016-09-16 18:46:51そういや98のDMA拡張アドレスに自動インクリメント機能とかあったはずですが、既存のメモリマネージャはどのへんまでエミュレーションしてるんですかね…
2016-09-16 18:48:42誰もきいてない近況(98)その56:emm386側にint 1Fh ah=90hのプロテクトメモリ転送エミュレーションを実装。とりあえず落ちなくなりました… (しかしUMB自動スキャン実装されてないことに今まで気づかなかった。領域の明示が必要だったとは…) pic.twitter.com/pX4UIbNxGH
2016-09-21 18:26:28誰もきいてない近況(98)その57:とれるだけUMBを取ってみるテスト。ここまで無造作に確保できるのは逆にエミュレータならではですね… pic.twitter.com/zegKtDa9rr
2016-09-27 23:38:51誰もきいてない近況(98)その58:EMM386 2.26がなぜ動かなかったのか判明。64Kページフレームが確保できないときもEMS機能が(制限付きで)有効になるのがまずかったようです… pic.twitter.com/xp5KCrKu3t
2016-10-04 22:48:58@lpproj ちなみにDMAエミュレーション機能はまったく移植されていないため、UMBやEMSページへのFD読み込み(≒DMAアクセス)が入るとメモリ壊れちゃ~う…ので現時点で常用できる状態とは… pic.twitter.com/nkchU4k6AM
2016-10-04 22:56:32そういえばサウンドBIOSのアレ(CEE0:0000のあたり)、テクニカルデータブックのサウンドBIOSのとこにちゃんと記述がありました…
2016-10-06 16:13:59誰もきいてない近況(98)その59:ROMチェックを簡略化(4Kバイト区間の先頭16バイトだけ確認)して、サウンドROMがない場合はデフォルトでC000をEMSフレーム化できるようにしてみた… pic.twitter.com/eZDdMw4oF3
2016-10-06 17:03:33すこし前に「EMM386(98)入れてFD使うと終了後にUMB壊れちゃーう」的なことを言った気がしましたが、きょう、原因が判明しました。 「間違えてグラフィックRAM領域もUMBにしていた」 お、おう…
2016-10-22 15:10:07(ちなみにFreeDOS、あとたぶんMS-DOSもですが、UMBやHMA領域にディスクアクセスするときはいったん基本メモリ内のバッファを経由します…)
2016-10-22 15:15:27きょうの16ビット: #define MK_FP(s,o) (void far *)(((ulong)(s)<<16)|(ushort)(o)) の場合、sが定数0だとセグメント展開部分が完全に消え、ただのnear→farポインタ変換になることがある…これも最適化の罠…
2016-10-22 16:25:02@lpproj なお、オフセット側もキャストすれば期待通り動作しますた… (void far *)(((ulong)(s)<<16)|(ulong)(ushort)(o))
2016-10-22 16:27:16@lpproj …で、きょう手元の実機でEMM386(98)の動作テストを軽くやってみたんですが、MS-DOS6.2だとUMBへのロード(devicehighやloadhigh)を行うとハングアップ…あれ?MS-DOSだとバッファリングしてない…?ぐぬぬ…
2016-10-23 16:42:54@lpproj (このへんはDOSカーネルじゃなくてディスクドライバの管轄なので、ベンダによって動作が異なる可能性が…IBM PC版だとどうだったか念のため確認しておこう、という覚書…)
2016-10-23 16:54:07@lpproj んで、DMA関係のエミュレーション殺したEMM386を作成し、MS-DOS6.2/VにつっこんでみたからやはりUMBへのロードで固まった。あーIBM PC版MS-DOSでもこのへんの救済措置がないことが確定…
2016-10-26 14:38:18誰もきいてない近況(98)その60:ようやくEMM386(98)でMS-DOSでもUMB使えるようになった、と思う… pic.twitter.com/wr0v9xodDe
2016-11-02 18:46:51@lpproj …しかし帰宅後、実機(9821Xc)で確認するとUMBロード失敗ケースが頻発、というか正常にロードされることが少ない。うーん、もうすこし修正が必要ですね…
2016-11-02 23:05:06実機でEMM386(98)がアレな件、すこし原因がつかめた気がする、が…これ結局(フロッピー)ディスク周りのDMAしか救済されないことに気づき、どうしかもんかと思っております…
2016-11-03 20:42:24