From 1f5dac8c97d3e7e7ed9407d13dc2db3342a99495 Mon Sep 17 00:00:00 2001 From: Sjoerd van der Berg Date: Fri, 25 Apr 2003 08:42:42 +0000 Subject: [PATCH] Added 32-bit ENTER and fixed 16-bit one Added 32-bit XLAT Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@962 --- src/cpu/core_full/load.h | 71 +++++++++++++++++++++++++++++++++---- src/cpu/core_full/optable.h | 7 ++-- src/cpu/core_full/support.h | 2 +- 3 files changed, 70 insertions(+), 10 deletions(-) diff --git a/src/cpu/core_full/load.h b/src/cpu/core_full/load.h index 8c9764f1..b6ba9938 100644 --- a/src/cpu/core_full/load.h +++ b/src/cpu/core_full/load.h @@ -317,10 +317,14 @@ l_M_Ed: case D_SETALC: reg_al = get_CF() ? 0xFF : 0; goto nextopcode; - case D_XLAT: + case D_XLATw: if (inst.prefix & PREFIX_SEG) reg_al=LoadMb(inst.seg.base+reg_bx+reg_al); else reg_al=LoadMb(SegBase(ds)+reg_bx+reg_al); goto nextopcode; + case D_XLATd: + if (inst.prefix & PREFIX_SEG) reg_al=LoadMb(inst.seg.base+reg_ebx+reg_al); + else reg_al=LoadMb(SegBase(ds)+reg_ebx+reg_al); + goto nextopcode; case D_CBW: reg_ax=(Bit8s)reg_al; goto nextopcode; @@ -371,11 +375,66 @@ l_M_Ed: goto nextopcode; case D_ENTERw: { - Bit16u bytes=Fetchw();Bit8u level=Fetchb(); - Push_16(reg_bp);reg_bp=reg_sp;reg_sp-=bytes; - EAPoint reader=SegBase(ss)+reg_bp; - for (Bit8u i=1;i