From d7d0b7eaa8a95258c3b3bb9701b6f5a88df2d0eb Mon Sep 17 00:00:00 2001 From: yui Date: Thu, 24 Mar 2005 02:21:21 +0000 Subject: [PATCH] fix 80286(x86ver) fix rep ins, mov8, enter (T.Yui) --- i286x/i286x.cpp | 4 ++-- i286x/i286xrep.cpp | 4 ++-- update.txt | 8 ++++++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/i286x/i286x.cpp b/i286x/i286x.cpp index 03095dd2..c057afe7 100644 --- a/i286x/i286x.cpp +++ b/i286x/i286x.cpp @@ -2407,7 +2407,7 @@ I286 mov_ea_r8(void) { // 88: mov EA, REG8 __asm { PREPART_EA_REG8(2) mov I286_REG[eax], dl - GET_NEXTPRE2 // ea_regの regregだけ + GET_NEXTPRE1 // ea_regの regregだけ ret align 16 memory_eareg8: @@ -3509,7 +3509,7 @@ I286 _enter(void) { // C8: enter DATA16, DATA8 je enter0 dec eax je enter1 - lea ecx, [eax*4 + 12] + lea ecx, [eax*4 + 12 + 4] I286CLOCK(ecx) push ebx movzx ebx, I286_BP diff --git a/i286x/i286xrep.cpp b/i286x/i286xrep.cpp index 67131625..83322fee 100644 --- a/i286x/i286xrep.cpp +++ b/i286x/i286xrep.cpp @@ -64,7 +64,7 @@ I286EXT rep_xinsw(void) { movzx ebp, I286_DI align 4 insw_lp: I286CLOCK(4) - movzx cx, I286_DX + movzx ecx, I286_DX call iocore_inp16 lea ecx, [edi + ebp] mov dx, ax @@ -130,7 +130,7 @@ I286EXT rep_xoutsw(void) { outsw_lp: I286CLOCK(4) lea ecx, [edi + ebp] call i286_memoryread_w - movzx cx, I286_DX + movzx ecx, I286_DX mov dx, ax call iocore_out16 STRING_DIRx2 diff --git a/update.txt b/update.txt index 6197ab05..279be29c 100644 --- a/update.txt +++ b/update.txt @@ -87,8 +87,12 @@ // ----  ver0.80 → ver0.81 - ・MPU-PC98II conductor修正 - ・MPU-PC98II Request PC/Tempo コマンドの追加 + ・80286 (x86版) - rep ins, 2バイトmov8命令の不都合修正 + ・80286 (x86版) - クロック修正 (enter) + ・80286 (C版) - クロック修正 (cmp, jcc, test, enter) + ・80286 (ARM版) - クロック修正 (cmp, jcc, test, enter) + ・MPU-PC98II - conductor修正 + ・MPU-PC98II - Request PC/Tempo コマンドの追加  ・GDC - ソフトリセット時のフラグ修正  ・GRCG - ソフトリセット時のフラグ修正  ・BIOS - 1842h スクリーンモードを破壊する不都合修正 (ver0.75エンバグ)