From 82f2c0b442f2da8918c7d7c89b42a3d1f7cd63a6 Mon Sep 17 00:00:00 2001 From: Peter Veenstra Date: Sat, 21 Jul 2012 18:22:17 +0000 Subject: [PATCH] Add INSD Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@3785 --- src/cpu/core_full/string.h | 7 +++++++ src/cpu/core_normal/string.h | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/src/cpu/core_full/string.h b/src/cpu/core_full/string.h index 18a31517..bc8f2360 100644 --- a/src/cpu/core_full/string.h +++ b/src/cpu/core_full/string.h @@ -88,6 +88,13 @@ di_index=(di_index+add_index) & add_mask; } break; + case R_INSD: + add_index<<=2; + for (;count>0;count--) { + SaveMd(di_base+di_index,IO_ReadD(reg_dx)); + di_index=(di_index+add_index) & add_mask; + } + break; case R_STOSB: for (;count>0;count--) { SaveMb(di_base+di_index,reg_al); diff --git a/src/cpu/core_normal/string.h b/src/cpu/core_normal/string.h index 40ebce7d..88540822 100644 --- a/src/cpu/core_normal/string.h +++ b/src/cpu/core_normal/string.h @@ -93,6 +93,13 @@ static void DoString(STRING_OP type) { di_index=(di_index+add_index) & add_mask; } break; + case R_INSD: + add_index<<=2; + for (;count>0;count--) { + SaveMd(di_base+di_index,IO_ReadD(reg_dx)); + di_index=(di_index+add_index) & add_mask; + } + break; case R_STOSB: for (;count>0;count--) { SaveMb(di_base+di_index,reg_al);