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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
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
182
(1): 2017/09/12(火)16:36 ID:cjrbzZj+0(1/2) AAS
cpu_mem.c
cpu_stack_push_check()の終わりのあたり。

if ((len > sdp->u.seg.limit) /* len check */
|| (start > sp) /* wrap check */
|| (sp > sdp->u.seg.limit + 1)) { /* [1] */
goto exc;
}
省14
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
184
(2): 181 2017/09/12(火)23:24 ID:b9fFTbG00(2/2) AAS
>>180
度々申し訳ない。まだありました。182のレスを読んで気がついたのですが、
spをデクリメントしても他の修正は不要と思っていたのですがそんなことなかったです。
325行目の
|| (sp > sdp->u.seg.limit + 1)) { /* [1] */
はspをデクリメントしているので+1は要らなくなりますね。
こっちの条件は通ってなかったので見落としていました。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.035s