[過去ログ] PC-98エミュを語ろう17 [無断転載禁止]©2ch.net (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
143
(21): 2017/08/21(月)21:56 ID:uCq++gjh0(1/2) AAS
>>142
うちもnp21W rev.34/35のT98NextのHDDでMELEMM.386+FDで落ちてました。
MELEMM.386+FDは常用したいので、NHDにする等引き続き試してみます。

T98-Nextかnp21Wで開発環境を再構築したいのですが、
NextはHSB3.7がちゃんと動いてくれないようで
np21WはMELEMM.386+FDでtriple fault。
144: 2017/08/21(月)23:53 ID:uCq++gjh0(2/2) AAS
>>143
SCSIでHDD形式を試してみましたが駄目でした。
147: 143 2017/08/23(水)00:11 ID:yfoiJMV/0(1) AAS
>>145
D8は既に外してました

>>146
ありがとうございます。VEM486+FDは落ちませんでした。
実機で使ったことなかったですが、しばらくVEM486で環境構築してみます。
160: 143 2017/08/26(土)09:08 ID:8913H0D10(1/3) AAS
np21/Wでゲーム用のERCACHE.EXEのEMMを組み込んでもtriple faultになりました。
np21/Wのビルド環境を作るしかないか...
161
(1): 143 2017/08/26(土)16:37 ID:8913H0D10(2/3) AAS
試しにnp21w-0.85(16/3/11)で動かしてみる
MELEMM.386+FDは、tripe faultにならないが、固まっている模様
ERCACHE.EXEは組み込み時にtriple faultになる
ということで昔から動かないようです。
162: 143 2017/08/26(土)19:32 ID:8913H0D10(3/3) AAS
>>161
INIを触ってDebug Utilityが出てきたので眺めると。

ERCACHE.EXE は ERC1_V86.ASM の _go_virtual86内の最後から9行目で
仮想86モニタ作った直後の仮想I/Oポート5FEChに1001hをOUTするところでした。
CSはリアルモード側を示してますので、仮想86モニタがちゃんとできてないのかも。

MELEMM.386+FDの方はプロテクトモード内に起因してるように表示されてますが詳細不明。
180
(3): 143 2017/09/10(日)22:50 ID:Gt03NgvE0(1) AAS
>> 162
ソース構成よくわからないのでデバッガで追ってみる。

x86版np21w_r34にERCACHE.EXEを組み込んで落ちるところを確認。

np21w+0x67210 の OUT DX,AX 処理の中で
変数 np21w+0xA09F94 は 1
変数 np21w+0xA09F96 は 1
そこから np21w+0x2B550 の関数を呼びに行って
省5
181
(3): 2017/09/11(月)20:24 ID:4N63lD/F0(1) AAS
>>143
>>180
ソースを少し調べてみたので報告。コンパイルできるようなら以下の変更箇所確認して試してみるとよいかも。
それと、少し古いソース(np21w-0.86-rev26beta)で調べたので行数は違うかもです。
修正箇所はia32/cpu_mem.cの220行目からの関数cpu_stack_push_check内の229、230行目
start = sp - len;
limit = is32bit ? 0xffffffff : 0x0000ffff;
省17
183: 181 2017/09/12(火)21:02 ID:b9fFTbG00(1/2) AAS
>>143
>>180
すみません。一点訂正です。
limit = sdp->u.seg.g ? 0xffffffff : 0x0000ffff;
これは間違いで、もともとの
limit = is32bit ? 0xffffffff : 0x0000ffff;
のままで正しかったです。
省1
186
(1): 143 2017/09/15(金)00:26 ID:km0esGyq0(1) AAS
>>184
>>185
ソース情報ありがとうございます。

開発環境は準備中なので、取り急ぎ、情報を元にソースの exc に行かないよう
np21w+0x2BB3F からの5バイトを 90 90 90 90 90 に変更したところ、
ERCACHE.EXEドライバが無事組み込まれました。
ありがとうございました。
省3
189
(1): 143 2017/09/16(土)11:17 ID:mnVksUfr0(1/3) AAS
>>186
長くなかった

毎回デバッガで実行するのが面倒なので、r34(x86) EXEファイルの先頭から0x2AF31からの2バイトを
8B 55 → EB 11
にしてスタック例外を飛ばした版を作り、

ROM領域を眺めてD2,D8をUMBから外したら DOS=HIGH,UMB でも動くようになりました。
お騒がせしました。
省4
190
(1): 143 2017/09/16(土)15:02 ID:mnVksUfr0(2/3) AAS
>>189
np21wのERCACHE環境でHSBが効かない件

ERCACHEが持ってるIO禁止マップに関係無く、I/OがERCACHEの仮想86モニタに飛んでくるため。
HSBからの OUT FFFEh 協調I/Fが誤って届くので、ERCACHEを残したHSB再起動機能が発動している。

これはパッチでの対処は無理ぽい。
191
(1): 143 2017/09/16(土)16:37 ID:mnVksUfr0(3/3) AAS
>>190

ソース見たら check_io でIOMAPを見るコードはありましたが、
HSBのポートFFFEhからのWORDアクセスは誤判定されてGP_EXCEPTIONに。

ファイル+2AA06 72→EB にパッチしてGP_EXCEPTIONに行かないようにしたら、
ERCACHE環境でのHSB再起動は正しく動作するようになりました。
203
(1): 143 2017/09/17(日)23:28 ID:q2ioCxxX0(1) AAS
やっと開発環境ができました。

>>187
こちらのERCACHE環境でも動きました。
ありがとうございました。

>>191
check_io.c
 if ((port + len - 1) / 8 >= CPU_STAT_IOLIMIT) {
省3
205
(1): 143 2017/09/18(月)17:19 ID:6yI4M3gP0(1/3) AAS
>>204

こちらのFDはv3.12
MELEMM.386 v5.22 +patch +FD v3.12
 /HM があると、triple fault
 /HM が無いと、落ちない
MELEMM.386 v5.36 +patch +FD v3.12
 /HM があると、リセット
省3
207: 143 2017/09/18(月)19:48 ID:6yI4M3gP0(2/3) AAS
>>206
MELEMM.386 v5.22 +patch +FD v3.13
 無限ループになりました。

>>205
DOS=HIGH が条件に漏れてました。

VERBOSEが拾いにくいので、直接OutputDebugStringでデバッガに流してみました。
exceptionでログ採ると、triple faultよりだいぶ前に 0040:0000 で無効命令例外が起きてる模様。
省5
209
(1): 143 2017/09/18(月)23:53 ID:6yI4M3gP0(3/3) AAS
>>208

EMSUTY BENCH を試すと、物理ページが連続していないと指摘されました。
見ると、CC00 E000 E400 FFFF とか変なことになってました。

ということで、組み込み時点でC000-CFFFにならない理由を調べる必要がありそうです。
210: 143 2017/09/19(火)00:32 ID:pNETuhBV0(1/4) AAS
>>209

MELEMM.386 v5.11が発掘されましたが、E000 E400 0000 0400 とか変なのは変わらず。
5.14を持ってたかは記憶無し、v4.78とかはfloppyを探す必要があるのでパス。

v5.36で/SD C000 を指定すると、CC00の1ページだけになり、FDは落ちなくなりました。
FD起因ではなく、GVRAMとかHMAにページフレームが重なってるせいで確定のようです。
なんで重なるのかは引き続き。
213
(1): 143 2017/09/19(火)10:11 ID:pNETuhBV0(2/4) AAS
>>211
v5.36で /P 指定するとC0-CFを確保でき、FD起動しても落ちませんでした。
ありがとうございました。

実機で /P 指定したことないので、指定しなくても通せれば吉。
余裕あれば眺めてみます。
214
(1): 143 2017/09/19(火)12:32 ID:pNETuhBV0(3/4) AAS
>>213
WORD単位でページ全域AND取って、0になるページは「何かある」判定されてる模様。

C000-CFFFにFFhを埋めるコードを作ってDX.COMで実行してからMELEMM.386を組み込むと、
/SDや/P指定無くてもC000-CFFFを確保可能になり、FD動かしても落ちませんでした。

np2/21W環境て、RAM無しか、リセット時FFhにできないものでしょうか?
215: 143 2017/09/19(火)14:58 ID:pNETuhBV0(4/4) AAS
>>214
mem\memems.c を触って、Cバンク全体を書き込み無視/読み込み0FFh固定 にしたら、
MELEMM.386もうまく組み込まれるようになりました。

この状態でしばらく使ってみます。
218: 143 2017/09/23(土)17:01 ID:RpMEkz8/0(1) AAS
>>217
作者様試験ありがとうございます。

・MELEMM.386 v5.36のEMSはC0-CFで組み込まれました。もちろんFD 3.12起動もok。
・RAM扱いぽかったので、C0000を00 00に更新してHSB再起動すると、C0が除外され、UMBと重なる領域が割り当てられました。
・HSB R しても、C0000が00 00のままだったので、C0が除外されました。
・Resetすると、再びFF FFになったので、C0も組み込まれました。

ということで機能的には「CバンクRAMじゃないモード」を作っていただいた方が助かります。
省3
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.068s