From 2abe0736f6798b4ceb1dde7e555df26d70d3c510 Mon Sep 17 00:00:00 2001 From: Sjoerd van der Berg Date: Wed, 16 Apr 2003 20:14:35 +0000 Subject: [PATCH] Fixed 32-bit CBW. Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@937 --- src/cpu/core_full/load.h | 3 +++ src/cpu/core_full/optable.h | 2 +- src/cpu/core_full/support.h | 3 ++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/cpu/core_full/load.h b/src/cpu/core_full/load.h index 25ccd258..1b33fe4c 100644 --- a/src/cpu/core_full/load.h +++ b/src/cpu/core_full/load.h @@ -321,6 +321,9 @@ l_M_Ed: case D_CBW: reg_ax=(Bit8s)reg_al; goto nextopcode; + case D_CWDE: + reg_eax=(Bit16s)reg_ax; + goto nextopcode; case D_CWD: if (reg_ax & 0x8000) reg_dx=0xffff; else reg_dx=0; diff --git a/src/cpu/core_full/optable.h b/src/cpu/core_full/optable.h index fb5b2877..011f41ab 100644 --- a/src/cpu/core_full/optable.h +++ b/src/cpu/core_full/optable.h @@ -465,7 +465,7 @@ static OpCode OpCodeTable[1024]={ {L_REGd ,O_XCHG_EAX ,S_REGd ,REGI_SP},{L_REGd ,O_XCHG_EAX ,S_REGd ,REGI_BP}, {L_REGd ,O_XCHG_EAX ,S_REGd ,REGI_SI},{L_REGd ,O_XCHG_EAX ,S_REGd ,REGI_DI}, /* 0x298 - 0x29f */ -{D_CBW ,0 ,0 ,0 },{D_CDQ ,0 ,0 ,0 }, +{D_CWDE ,0 ,0 ,0 },{D_CDQ ,0 ,0 ,0 }, {L_Ifd ,O_CALLFd ,0 ,0 },{L_ERROR ,0 ,0 ,0 }, {L_FLG ,0 ,S_PUSHd,0 },{L_POPd ,0 ,S_FLGd ,0 }, {L_REGb ,0 ,S_FLGb ,REGI_AH},{L_FLG ,0 ,S_REGb ,REGI_AH}, diff --git a/src/cpu/core_full/support.h b/src/cpu/core_full/support.h index 965316ff..23afd1db 100644 --- a/src/cpu/core_full/support.h +++ b/src/cpu/core_full/support.h @@ -31,7 +31,8 @@ enum { D_POPAw,D_POPAd, D_DAA,D_DAS, D_AAA,D_AAS, - D_CBW,D_CWD,D_CDQ, + D_CBW,D_CWDE, + D_CWD,D_CDQ, D_SETALC, D_XLAT, D_CLI,D_STI,D_STC,D_CLC,D_CMC,D_CLD,D_STD,