From 1dbbc8d385597ab0f06c0a1adc911c1b36716fb8 Mon Sep 17 00:00:00 2001 From: emufreak Date: Sun, 5 Oct 2014 23:44:51 +0200 Subject: [PATCH] Fame CPU Core from UAE4ALL2 ported. Looks very promising. Compatibility much better --- iUAE.xcodeproj/project.pbxproj | 58 +- .../xcshareddata/iUAE.xccheckout | 10 +- uae4all_gp2x_0.7.2a/src/autoconf.cpp | 1 + uae4all_gp2x_0.7.2a/src/custom.cpp | 87 +- uae4all_gp2x_0.7.2a/src/disk.cpp | 7 +- uae4all_gp2x_0.7.2a/src/drawing.cpp | 2 +- uae4all_gp2x_0.7.2a/src/include/custom.h | 3 + uae4all_gp2x_0.7.2a/src/include/memory-uae.h | 253 + uae4all_gp2x_0.7.2a/src/m68k/fame/fame.h | 248 +- uae4all_gp2x_0.7.2a/src/m68k/fame/famec.cpp | 6966 +--- uae4all_gp2x_0.7.2a/src/m68k/fame/famec.h | 14 + .../src/m68k/fame/famec_jumptable.h | 4401 ++ .../src/m68k/fame/famec_opcodes.h | 33263 ++++++++++------ .../src/m68k/fame/m68k_intrf.cpp | 348 +- .../src/m68k/m68k_cmn_intrf.cpp | 486 +- uae4all_gp2x_0.7.2a/src/m68k/m68k_intrf.h | 327 +- uae4all_gp2x_0.7.2a/src/sound.cpp | 2 +- uae4all_gp2x_0.7.2a/src/uae.cpp | 8 +- 18 files changed, 26744 insertions(+), 19740 deletions(-) create mode 100644 uae4all_gp2x_0.7.2a/src/include/memory-uae.h create mode 100644 uae4all_gp2x_0.7.2a/src/m68k/fame/famec.h create mode 100644 uae4all_gp2x_0.7.2a/src/m68k/fame/famec_jumptable.h diff --git a/iUAE.xcodeproj/project.pbxproj b/iUAE.xcodeproj/project.pbxproj index 15e130a..f71db3d 100755 --- a/iUAE.xcodeproj/project.pbxproj +++ b/iUAE.xcodeproj/project.pbxproj @@ -29,7 +29,6 @@ 0533690E13B1DEE90012D55A /* ersatz.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BCA70F3D797C005B30DF /* ersatz.cpp */; }; 0533690F13B1DEE90012D55A /* gfxutil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BCA80F3D797C005B30DF /* gfxutil.cpp */; }; 0533691013B1DEE90012D55A /* keybuf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BCFA0F3D797C005B30DF /* keybuf.cpp */; }; - 0533691113B1DEE90012D55A /* famec.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD060F3D797C005B30DF /* famec.cpp */; settings = {COMPILER_FLAGS = "-Wno-unused"; }; }; 0533691213B1DEE90012D55A /* m68k_intrf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD090F3D797C005B30DF /* m68k_intrf.cpp */; }; 0533691313B1DEE90012D55A /* uae.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD0C0F3D797C005B30DF /* uae.cpp */; }; 0533691413B1DEE90012D55A /* memory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD0E0F3D797C005B30DF /* memory.cpp */; }; @@ -66,7 +65,6 @@ 0533695813B1DF650012D55A /* icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 053D8B3313B1B9E20002802F /* icon.png */; }; 0533695913B1DF650012D55A /* icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 053D8B3413B1B9E20002802F /* icon@2x.png */; }; 0545257E106EBB590032FC41 /* Events2.c in Sources */ = {isa = PBXBuildFile; fileRef = 0545257D106EBB590032FC41 /* Events2.c */; }; - 054525B0106EC5550032FC41 /* combined_modules.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 054525AF106EC5550032FC41 /* combined_modules.cpp */; }; 0552BD240F3D797C005B30DF /* autoconf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BC9D0F3D797C005B30DF /* autoconf.cpp */; }; 0552BD250F3D797C005B30DF /* blitfunc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BC9E0F3D797C005B30DF /* blitfunc.cpp */; }; 0552BD260F3D797C005B30DF /* blittable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BC9F0F3D797C005B30DF /* blittable.cpp */; }; @@ -75,7 +73,6 @@ 0552BD2D0F3D797C005B30DF /* ersatz.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BCA70F3D797C005B30DF /* ersatz.cpp */; }; 0552BD2E0F3D797C005B30DF /* gfxutil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BCA80F3D797C005B30DF /* gfxutil.cpp */; }; 0552BD410F3D797C005B30DF /* keybuf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BCFA0F3D797C005B30DF /* keybuf.cpp */; }; - 0552BD450F3D797C005B30DF /* famec.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD060F3D797C005B30DF /* famec.cpp */; settings = {COMPILER_FLAGS = "-Wno-unused"; }; }; 0552BD470F3D797C005B30DF /* m68k_intrf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD090F3D797C005B30DF /* m68k_intrf.cpp */; }; 0552BD490F3D797C005B30DF /* uae.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD0C0F3D797C005B30DF /* uae.cpp */; }; 0552BD4B0F3D797C005B30DF /* memory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD0E0F3D797C005B30DF /* memory.cpp */; }; @@ -140,7 +137,6 @@ 059C0E2D13B99DEE00E89B35 /* chrome-bottom~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 059C0E2713B99DEE00E89B35 /* chrome-bottom~ipad.png */; }; 059C0E2E13B99DEE00E89B35 /* chrome-top~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 059C0E2813B99DEE00E89B35 /* chrome-top~ipad.png */; }; 059E3A2710636CBA0056A577 /* fame_arm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 059E3A2410636CBA0056A577 /* fame_arm.cpp */; settings = {COMPILER_FLAGS = "-Wno-unused"; }; }; - 059E3A2810636CBA0056A577 /* m68k_interface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 059E3A2610636CBA0056A577 /* m68k_interface.cpp */; }; 05A1502913BDA852009A12B2 /* about.html in Resources */ = {isa = PBXBuildFile; fileRef = 05A1501E13BDA852009A12B2 /* about.html */; }; 05A1502B13BDA852009A12B2 /* css in Resources */ = {isa = PBXBuildFile; fileRef = 05A1502013BDA852009A12B2 /* css */; }; 05A1502D13BDA852009A12B2 /* help.html in Resources */ = {isa = PBXBuildFile; fileRef = 05A1502213BDA852009A12B2 /* help.html */; }; @@ -169,7 +165,6 @@ 05BC1B1E10734C3B00EABC6E /* SettingsController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 05BC1B1C10734C3B00EABC6E /* SettingsController.xib */; }; 05D5233712E8030E007912AE /* SelectEffectController.m in Sources */ = {isa = PBXBuildFile; fileRef = 05D5233512E8030E007912AE /* SelectEffectController.m */; }; 05D5233812E8030E007912AE /* SelectEffectController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 05D5233612E8030E007912AE /* SelectEffectController.xib */; }; - 05D5D74C0FD5E38400B91C98 /* m68k_intrf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD010F3D797C005B30DF /* m68k_intrf.cpp */; }; 05D6044B12AF2D620048E478 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 05D6044912AF2D620048E478 /* Icon.png */; }; 05D6044C12AF2D620048E478 /* Icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 05D6044A12AF2D620048E478 /* Icon@2x.png */; }; 05E8A04612B2C884005532AF /* amiga-beige-dark-center.png in Resources */ = {isa = PBXBuildFile; fileRef = 05E8A04312B2C884005532AF /* amiga-beige-dark-center.png */; }; @@ -184,6 +179,7 @@ 288765FD0DF74451002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765FC0DF74451002DB57D /* CoreGraphics.framework */; }; 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD733E0D9D9553002E5188 /* MainWindow.xib */; }; 7E0E9594198ACF4C0082F80F /* iOSKeyboard.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E0E9593198ACF4C0082F80F /* iOSKeyboard.png */; }; + 7E1628C919E1EA5A00C27F54 /* Rainbow Islands (1990)(Ocean).adf in Resources */ = {isa = PBXBuildFile; fileRef = 7E1628C819E1EA5A00C27F54 /* Rainbow Islands (1990)(Ocean).adf */; }; 7E4B18D5188B1C720019E82B /* chrome-bottom.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E4B18D4188B1C720019E82B /* chrome-bottom.png */; }; 7E4B18D8188B1CAB0019E82B /* chrome-top@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E4B18D6188B1CAB0019E82B /* chrome-top@2x.png */; }; 7E4B18D9188B1CAB0019E82B /* chrome-top~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E4B18D7188B1CAB0019E82B /* chrome-top~ipad.png */; }; @@ -192,7 +188,11 @@ 7E4B18E0188B1CD70019E82B /* btn_restart@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E4B18DD188B1CD70019E82B /* btn_restart@2x.png */; }; 7E4B18E1188B1CD70019E82B /* btn_restart~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E4B18DE188B1CD70019E82B /* btn_restart~ipad.png */; }; 7E4B18EB188B1E8D0019E82B /* chrome-bottom~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E4B18EA188B1E8D0019E82B /* chrome-bottom~ipad.png */; }; + 7E4C6AF719DB0F7100D337D0 /* famec.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E4C6AF519DB0F7100D337D0 /* famec.cpp */; }; 7E4D90EF188DB7BC000AD040 /* FloatPanel.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7E4D90EE188DB7BC000AD040 /* FloatPanel.mm */; }; + 7E82CBF319E1C0A70014AC6D /* m68k_interface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 059E3A2610636CBA0056A577 /* m68k_interface.cpp */; }; + 7E82CBF419E1C0BA0014AC6D /* m68k_intrf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD010F3D797C005B30DF /* m68k_intrf.cpp */; }; + 7E82CBF719E1CFE10014AC6D /* combined_modules.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 054525AF106EC5550032FC41 /* combined_modules.cpp */; }; 7EA2BC9F188B0DF3003DCE10 /* MainWindow-Single.xib in Resources */ = {isa = PBXBuildFile; fileRef = 053368BA13B1D75E0012D55A /* MainWindow-Single.xib */; }; 7EA2BCA0188B0DF8003DCE10 /* MainWindow-Single-iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 053368B313B1BF910012D55A /* MainWindow-Single-iPad.xib */; }; 7EA2BCA1188B0EF6003DCE10 /* SingleWindowAppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 053368B113B1BDD60012D55A /* SingleWindowAppDelegate.mm */; }; @@ -255,7 +255,6 @@ 9706D6C31561817500073678 /* ersatz.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BCA70F3D797C005B30DF /* ersatz.cpp */; }; 9706D6C41561817500073678 /* gfxutil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BCA80F3D797C005B30DF /* gfxutil.cpp */; }; 9706D6C51561817500073678 /* keybuf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BCFA0F3D797C005B30DF /* keybuf.cpp */; }; - 9706D6C61561817500073678 /* famec.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD060F3D797C005B30DF /* famec.cpp */; settings = {COMPILER_FLAGS = "-Wno-unused"; }; }; 9706D6C71561817500073678 /* m68k_intrf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD090F3D797C005B30DF /* m68k_intrf.cpp */; }; 9706D6C81561817500073678 /* uae.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD0C0F3D797C005B30DF /* uae.cpp */; }; 9706D6C91561817500073678 /* memory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD0E0F3D797C005B30DF /* memory.cpp */; }; @@ -427,7 +426,6 @@ 97242C88156177EC00B6D03C /* ersatz.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BCA70F3D797C005B30DF /* ersatz.cpp */; }; 97242C89156177EC00B6D03C /* gfxutil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BCA80F3D797C005B30DF /* gfxutil.cpp */; }; 97242C8A156177EC00B6D03C /* keybuf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BCFA0F3D797C005B30DF /* keybuf.cpp */; }; - 97242C8B156177EC00B6D03C /* famec.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD060F3D797C005B30DF /* famec.cpp */; settings = {COMPILER_FLAGS = "-Wno-unused"; }; }; 97242C8C156177EC00B6D03C /* m68k_intrf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD090F3D797C005B30DF /* m68k_intrf.cpp */; }; 97242C8D156177EC00B6D03C /* uae.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD0C0F3D797C005B30DF /* uae.cpp */; }; 97242C8E156177EC00B6D03C /* memory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD0E0F3D797C005B30DF /* memory.cpp */; }; @@ -718,7 +716,6 @@ 9787FA6F1561882D00458A4A /* ersatz.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BCA70F3D797C005B30DF /* ersatz.cpp */; }; 9787FA701561882D00458A4A /* gfxutil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BCA80F3D797C005B30DF /* gfxutil.cpp */; }; 9787FA711561882D00458A4A /* keybuf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BCFA0F3D797C005B30DF /* keybuf.cpp */; }; - 9787FA721561882D00458A4A /* famec.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD060F3D797C005B30DF /* famec.cpp */; settings = {COMPILER_FLAGS = "-Wno-unused"; }; }; 9787FA731561882D00458A4A /* m68k_intrf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD090F3D797C005B30DF /* m68k_intrf.cpp */; }; 9787FA741561882D00458A4A /* uae.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD0C0F3D797C005B30DF /* uae.cpp */; }; 9787FA751561882D00458A4A /* memory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD0E0F3D797C005B30DF /* memory.cpp */; }; @@ -830,7 +827,6 @@ 9787FBD215618A5E00458A4A /* ersatz.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BCA70F3D797C005B30DF /* ersatz.cpp */; }; 9787FBD315618A5E00458A4A /* gfxutil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BCA80F3D797C005B30DF /* gfxutil.cpp */; }; 9787FBD415618A5E00458A4A /* keybuf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BCFA0F3D797C005B30DF /* keybuf.cpp */; }; - 9787FBD515618A5E00458A4A /* famec.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD060F3D797C005B30DF /* famec.cpp */; settings = {COMPILER_FLAGS = "-Wno-unused"; }; }; 9787FBD615618A5E00458A4A /* m68k_intrf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD090F3D797C005B30DF /* m68k_intrf.cpp */; }; 9787FBD715618A5E00458A4A /* uae.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD0C0F3D797C005B30DF /* uae.cpp */; }; 9787FBD815618A5E00458A4A /* memory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD0E0F3D797C005B30DF /* memory.cpp */; }; @@ -1123,7 +1119,6 @@ 97C87567156E834100197738 /* ersatz.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BCA70F3D797C005B30DF /* ersatz.cpp */; }; 97C87568156E834100197738 /* gfxutil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BCA80F3D797C005B30DF /* gfxutil.cpp */; }; 97C87569156E834100197738 /* keybuf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BCFA0F3D797C005B30DF /* keybuf.cpp */; }; - 97C8756A156E834100197738 /* famec.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD060F3D797C005B30DF /* famec.cpp */; settings = {COMPILER_FLAGS = "-Wno-unused"; }; }; 97C8756B156E834100197738 /* m68k_intrf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD090F3D797C005B30DF /* m68k_intrf.cpp */; }; 97C8756C156E834100197738 /* uae.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD0C0F3D797C005B30DF /* uae.cpp */; }; 97C8756D156E834100197738 /* memory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD0E0F3D797C005B30DF /* memory.cpp */; }; @@ -1223,7 +1218,6 @@ 97EF95C3153876CA001C01E6 /* ersatz.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BCA70F3D797C005B30DF /* ersatz.cpp */; }; 97EF95C4153876CA001C01E6 /* gfxutil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BCA80F3D797C005B30DF /* gfxutil.cpp */; }; 97EF95C5153876CA001C01E6 /* keybuf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BCFA0F3D797C005B30DF /* keybuf.cpp */; }; - 97EF95C6153876CA001C01E6 /* famec.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD060F3D797C005B30DF /* famec.cpp */; settings = {COMPILER_FLAGS = "-Wno-unused"; }; }; 97EF95C7153876CA001C01E6 /* m68k_intrf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD090F3D797C005B30DF /* m68k_intrf.cpp */; }; 97EF95C8153876CA001C01E6 /* uae.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD0C0F3D797C005B30DF /* uae.cpp */; }; 97EF95C9153876CA001C01E6 /* memory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0552BD0E0F3D797C005B30DF /* memory.cpp */; }; @@ -1380,8 +1374,6 @@ 0552BD020F3D797C005B30DF /* memhandlers.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = memhandlers.s; sourceTree = ""; }; 0552BD030F3D797C005B30DF /* debug_m68k.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = debug_m68k.h; sourceTree = ""; }; 0552BD050F3D797C005B30DF /* fame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fame.h; sourceTree = ""; }; - 0552BD060F3D797C005B30DF /* famec.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = famec.cpp; sourceTree = ""; }; - 0552BD070F3D797C005B30DF /* famec_debug.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = famec_debug.cpp; sourceTree = ""; }; 0552BD080F3D797C005B30DF /* famec_opcodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = famec_opcodes.h; sourceTree = ""; }; 0552BD090F3D797C005B30DF /* m68k_intrf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = m68k_intrf.cpp; sourceTree = ""; }; 0552BD0A0F3D797C005B30DF /* m68k_cmn_intrf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = m68k_cmn_intrf.cpp; sourceTree = ""; }; @@ -1547,6 +1539,7 @@ 29B97316FDCFA39411CA2CEA /* main.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = main.mm; path = iUAEParents/main.mm; sourceTree = ""; }; 32CA4F630368D1EE00C91783 /* iUAE_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iUAE_Prefix.pch; sourceTree = ""; }; 7E0E9593198ACF4C0082F80F /* iOSKeyboard.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = iOSKeyboard.png; sourceTree = ""; }; + 7E1628C819E1EA5A00C27F54 /* Rainbow Islands (1990)(Ocean).adf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "Rainbow Islands (1990)(Ocean).adf"; path = "../../../../../Volumes/Multimedia/Downloads/Rainbow Islands (1990)(Ocean).adf"; sourceTree = ""; }; 7E4B18D4188B1C720019E82B /* chrome-bottom.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "chrome-bottom.png"; path = "TargetSpecific/DotC/chrome-bottom.png"; sourceTree = SOURCE_ROOT; }; 7E4B18D6188B1CAB0019E82B /* chrome-top@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "chrome-top@2x.png"; path = "TargetSpecific/DotC/chrome-top@2x.png"; sourceTree = SOURCE_ROOT; }; 7E4B18D7188B1CAB0019E82B /* chrome-top~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "chrome-top~ipad.png"; path = "TargetSpecific/DotC/chrome-top~ipad.png"; sourceTree = SOURCE_ROOT; }; @@ -1555,6 +1548,9 @@ 7E4B18DD188B1CD70019E82B /* btn_restart@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "btn_restart@2x.png"; path = "TargetSpecific/DotC/btn_restart@2x.png"; sourceTree = SOURCE_ROOT; }; 7E4B18DE188B1CD70019E82B /* btn_restart~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "btn_restart~ipad.png"; path = "TargetSpecific/DotC/btn_restart~ipad.png"; sourceTree = SOURCE_ROOT; }; 7E4B18EA188B1E8D0019E82B /* chrome-bottom~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "chrome-bottom~ipad.png"; path = "TargetSpecific/DotC/chrome-bottom~ipad.png"; sourceTree = SOURCE_ROOT; }; + 7E4C6AF519DB0F7100D337D0 /* famec.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = famec.cpp; sourceTree = ""; }; + 7E4C6AF619DB0F7100D337D0 /* famec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = famec.h; sourceTree = ""; }; + 7E4C6AF819DB116B00D337D0 /* memory-uae.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "memory-uae.h"; sourceTree = ""; }; 7E4D90EE188DB7BC000AD040 /* FloatPanel.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = FloatPanel.mm; path = ../../iUAEParents/FloatPanel.mm; sourceTree = ""; }; 7EA4D6491923EC9700C58BB9 /* BaseWebviewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BaseWebviewController.h; path = iUAEParents/BaseWebviewController.h; sourceTree = ""; }; 7EA4D64A1923EC9700C58BB9 /* BaseWebviewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BaseWebviewController.m; path = iUAEParents/BaseWebviewController.m; sourceTree = ""; }; @@ -1581,6 +1577,7 @@ 7EAA9DB4192541D400541BE1 /* PMCustomKeyboard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PMCustomKeyboard.h; sourceTree = ""; }; 7EAA9DB5192541D400541BE1 /* PMCustomKeyboard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PMCustomKeyboard.m; sourceTree = ""; }; 7EAA9DB6192541D400541BE1 /* PMCustomKeyboard.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PMCustomKeyboard.xib; sourceTree = ""; }; + 7ECAB5CB19DB20D000B05FF3 /* famec_jumptable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = famec_jumptable.h; sourceTree = ""; }; 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 9706D70E1561817500073678 /* sdi.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = sdi.app; sourceTree = BUILT_PRODUCTS_DIR; }; 9706D7111561827300073678 /* bg_web.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bg_web.png; sourceTree = ""; }; @@ -2446,6 +2443,7 @@ 0552BCF60F3D797C005B30DF /* uae.h */, 0552BCF80F3D797C005B30DF /* xwin.h */, 0552BCF90F3D797C005B30DF /* zfile.h */, + 7E4C6AF819DB116B00D337D0 /* memory-uae.h */, ); path = include; sourceTree = ""; @@ -2484,10 +2482,11 @@ isa = PBXGroup; children = ( 0552BD050F3D797C005B30DF /* fame.h */, - 0552BD060F3D797C005B30DF /* famec.cpp */, - 0552BD070F3D797C005B30DF /* famec_debug.cpp */, 0552BD080F3D797C005B30DF /* famec_opcodes.h */, 0552BD090F3D797C005B30DF /* m68k_intrf.cpp */, + 7E4C6AF519DB0F7100D337D0 /* famec.cpp */, + 7E4C6AF619DB0F7100D337D0 /* famec.h */, + 7ECAB5CB19DB20D000B05FF3 /* famec_jumptable.h */, ); path = fame; sourceTree = ""; @@ -2565,6 +2564,7 @@ 057443530FC3CA04003BE251 /* disks */ = { isa = PBXGroup; children = ( + 7E1628C819E1EA5A00C27F54 /* Rainbow Islands (1990)(Ocean).adf */, ); path = disks; sourceTree = ""; @@ -4014,6 +4014,7 @@ 97BE2AF615489E6600BF66CF /* keyboard.png in Resources */, 7EA2BCA0188B0DF8003DCE10 /* MainWindow-Single-iPad.xib in Resources */, 97BE2AF915489E6600BF66CF /* mouse.png in Resources */, + 7E1628C919E1EA5A00C27F54 /* Rainbow Islands (1990)(Ocean).adf in Resources */, 97BE2AFC15489E6600BF66CF /* ls-fullscreen_bottomBtn.png in Resources */, 97BE2AFF15489E6600BF66CF /* ls-instructions_overlay.png in Resources */, 97BE2B0215489E6600BF66CF /* ls-overlay-skin.png in Resources */, @@ -4554,7 +4555,6 @@ 0533690E13B1DEE90012D55A /* ersatz.cpp in Sources */, 0533690F13B1DEE90012D55A /* gfxutil.cpp in Sources */, 0533691013B1DEE90012D55A /* keybuf.cpp in Sources */, - 0533691113B1DEE90012D55A /* famec.cpp in Sources */, 0533691213B1DEE90012D55A /* m68k_intrf.cpp in Sources */, 0533691313B1DEE90012D55A /* uae.cpp in Sources */, 0533691413B1DEE90012D55A /* memory.cpp in Sources */, @@ -4622,11 +4622,13 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 7E82CBF719E1CFE10014AC6D /* combined_modules.cpp in Sources */, + 7E82CBF419E1C0BA0014AC6D /* m68k_intrf.cpp in Sources */, + 7E82CBF319E1C0A70014AC6D /* m68k_interface.cpp in Sources */, 7EA7D6F0187B47AE0092FC2F /* savestate.cpp in Sources */, 7EA2BCA2188B0EFF003DCE10 /* BaseEmulationViewController.mm in Sources */, 051B23B012C994BB000C2800 /* DisaSupport.cpp in Sources */, 7EA5AC5C18AAC5920072820E /* BaseNavigationController.mm in Sources */, - 05D5D74C0FD5E38400B91C98 /* m68k_intrf.cpp in Sources */, 1D60589B0D05DD56006BFB54 /* main.mm in Sources */, 1D3623260D0F684500981E51 /* iAmigaAppDelegate.mm in Sources */, 0552BD240F3D797C005B30DF /* autoconf.cpp in Sources */, @@ -4639,7 +4641,6 @@ 0552BD2D0F3D797C005B30DF /* ersatz.cpp in Sources */, 0552BD2E0F3D797C005B30DF /* gfxutil.cpp in Sources */, 0552BD410F3D797C005B30DF /* keybuf.cpp in Sources */, - 0552BD450F3D797C005B30DF /* famec.cpp in Sources */, 0552BD470F3D797C005B30DF /* m68k_intrf.cpp in Sources */, 0552BD490F3D797C005B30DF /* uae.cpp in Sources */, 0552BD4B0F3D797C005B30DF /* memory.cpp in Sources */, @@ -4664,10 +4665,8 @@ 057B0D4C0FD0D0ED00D549AD /* MMStopWatch.m in Sources */, 7EA2BCA3188B0F02003DCE10 /* AnimatedImageSequenceView.mm in Sources */, 059E3A2710636CBA0056A577 /* fame_arm.cpp in Sources */, - 059E3A2810636CBA0056A577 /* m68k_interface.cpp in Sources */, 7EA4D65A1923ECC100C58BB9 /* TouchHandlerViewClassic.m in Sources */, 0545257E106EBB590032FC41 /* Events2.c in Sources */, - 054525B0106EC5550032FC41 /* combined_modules.cpp in Sources */, 05BC1AF51073448200EABC6E /* EMUBrowser.m in Sources */, 05BC1AF61073448200EABC6E /* EMUFileGroup.m in Sources */, 05BC1AF71073448200EABC6E /* EMUFileInfo.m in Sources */, @@ -4676,6 +4675,7 @@ 0585D55F1091640900C1E4C1 /* VirtualKeyboard.m in Sources */, 0585D5621091653E00C1E4C1 /* KeyView.m in Sources */, 050C393D12C31B24000CE512 /* Disa.c in Sources */, + 7E4C6AF719DB0F7100D337D0 /* famec.cpp in Sources */, 050C3A9412C33D94000CE512 /* disassembler.m in Sources */, 7EA4D6591923ECC100C58BB9 /* MainEmulationViewController.mm in Sources */, 0577C0DB12DED4A60040B77D /* AsyncSocket.m in Sources */, @@ -4732,7 +4732,6 @@ 9706D6C31561817500073678 /* ersatz.cpp in Sources */, 9706D6C41561817500073678 /* gfxutil.cpp in Sources */, 9706D6C51561817500073678 /* keybuf.cpp in Sources */, - 9706D6C61561817500073678 /* famec.cpp in Sources */, 9706D6C71561817500073678 /* m68k_intrf.cpp in Sources */, 9706D6C81561817500073678 /* uae.cpp in Sources */, 9706D6C91561817500073678 /* memory.cpp in Sources */, @@ -4808,7 +4807,6 @@ 97242C88156177EC00B6D03C /* ersatz.cpp in Sources */, 97242C89156177EC00B6D03C /* gfxutil.cpp in Sources */, 97242C8A156177EC00B6D03C /* keybuf.cpp in Sources */, - 97242C8B156177EC00B6D03C /* famec.cpp in Sources */, 97242C8C156177EC00B6D03C /* m68k_intrf.cpp in Sources */, 97242C8D156177EC00B6D03C /* uae.cpp in Sources */, 97242C8E156177EC00B6D03C /* memory.cpp in Sources */, @@ -4884,7 +4882,6 @@ 9787FA6F1561882D00458A4A /* ersatz.cpp in Sources */, 9787FA701561882D00458A4A /* gfxutil.cpp in Sources */, 9787FA711561882D00458A4A /* keybuf.cpp in Sources */, - 9787FA721561882D00458A4A /* famec.cpp in Sources */, 9787FA731561882D00458A4A /* m68k_intrf.cpp in Sources */, 9787FA741561882D00458A4A /* uae.cpp in Sources */, 9787FA751561882D00458A4A /* memory.cpp in Sources */, @@ -4960,7 +4957,6 @@ 9787FBD215618A5E00458A4A /* ersatz.cpp in Sources */, 9787FBD315618A5E00458A4A /* gfxutil.cpp in Sources */, 9787FBD415618A5E00458A4A /* keybuf.cpp in Sources */, - 9787FBD515618A5E00458A4A /* famec.cpp in Sources */, 9787FBD615618A5E00458A4A /* m68k_intrf.cpp in Sources */, 9787FBD715618A5E00458A4A /* uae.cpp in Sources */, 9787FBD815618A5E00458A4A /* memory.cpp in Sources */, @@ -5041,7 +5037,6 @@ 97C87567156E834100197738 /* ersatz.cpp in Sources */, 97C87568156E834100197738 /* gfxutil.cpp in Sources */, 97C87569156E834100197738 /* keybuf.cpp in Sources */, - 97C8756A156E834100197738 /* famec.cpp in Sources */, 97C8756B156E834100197738 /* m68k_intrf.cpp in Sources */, 97C8756C156E834100197738 /* uae.cpp in Sources */, 97C8756D156E834100197738 /* memory.cpp in Sources */, @@ -5134,7 +5129,6 @@ 97EF95C3153876CA001C01E6 /* ersatz.cpp in Sources */, 97EF95C4153876CA001C01E6 /* gfxutil.cpp in Sources */, 97EF95C5153876CA001C01E6 /* keybuf.cpp in Sources */, - 97EF95C6153876CA001C01E6 /* famec.cpp in Sources */, 97EF95C7153876CA001C01E6 /* m68k_intrf.cpp in Sources */, 97EF95C8153876CA001C01E6 /* uae.cpp in Sources */, 97EF95C9153876CA001C01E6 /* memory.cpp in Sources */, @@ -5307,7 +5301,7 @@ TARGETED_DEVICE_FAMILY = "1,2"; VALID_ARCHS = "armv7 armv7s arm64"; iOSOpenDevDevice = ""; - iOSOpenDevInstallOnAnyBuild = ""; + iOSOpenDevInstallOnAnyBuild = NO; iOSOpenDevPath = "iOSOpenDevPath: /opt/iOSOpenDev"; }; name = "Ad Hoc"; @@ -5325,7 +5319,7 @@ TARGETED_DEVICE_FAMILY = "1,2"; iOSOpenDevBuildPackageOnAnyBuild = NO; iOSOpenDevCopyOnBuild = NO; - iOSOpenDevDevice = 192.168.0.12; + iOSOpenDevDevice = 192.168.0.14; iOSOpenDevInstallOnAnyBuild = NO; iOSOpenDevInstallOnProfiling = YES; iOSOpenDevRespringOnInstall = YES; @@ -5347,7 +5341,7 @@ TARGETED_DEVICE_FAMILY = "1,2"; iOSOpenDevBuildPackageOnAnyBuild = NO; iOSOpenDevCopyOnBuild = NO; - iOSOpenDevDevice = 192.168.0.12; + iOSOpenDevDevice = 192.168.0.14; iOSOpenDevInstallOnAnyBuild = NO; iOSOpenDevInstallOnProfiling = YES; iOSOpenDevRespringOnInstall = YES; @@ -5367,7 +5361,7 @@ TARGETED_DEVICE_FAMILY = "1,2"; iOSOpenDevBuildPackageOnAnyBuild = NO; iOSOpenDevCopyOnBuild = NO; - iOSOpenDevDevice = 192.168.0.12; + iOSOpenDevDevice = 192.168.0.14; iOSOpenDevInstallOnAnyBuild = NO; iOSOpenDevInstallOnProfiling = YES; iOSOpenDevRespringOnInstall = YES; @@ -5692,7 +5686,7 @@ TARGETED_DEVICE_FAMILY = "1,2"; VALID_ARCHS = "armv7 armv7s arm64"; iOSOpenDevDevice = ""; - iOSOpenDevInstallOnAnyBuild = ""; + iOSOpenDevInstallOnAnyBuild = NO; iOSOpenDevPath = "iOSOpenDevPath: /opt/iOSOpenDev"; }; name = Debug; @@ -5745,7 +5739,7 @@ TARGETED_DEVICE_FAMILY = "1,2"; VALID_ARCHS = "armv7 armv7s arm64"; iOSOpenDevDevice = ""; - iOSOpenDevInstallOnAnyBuild = ""; + iOSOpenDevInstallOnAnyBuild = NO; iOSOpenDevPath = "iOSOpenDevPath: /opt/iOSOpenDev"; }; name = Release; diff --git a/iUAE.xcodeproj/project.xcworkspace/xcshareddata/iUAE.xccheckout b/iUAE.xcodeproj/project.xcworkspace/xcshareddata/iUAE.xccheckout index a0a00d6..fc87dd8 100644 --- a/iUAE.xcodeproj/project.xcworkspace/xcshareddata/iUAE.xccheckout +++ b/iUAE.xcodeproj/project.xcworkspace/xcshareddata/iUAE.xccheckout @@ -10,29 +10,29 @@ iUAE IDESourceControlProjectOriginsDictionary - 46C2324D-11F6-442D-BAE0-65142F757BCE + BB077C81096E34247CCFED268F63A8050DE3ACEE https://github.com/emufreak/iAmiga.git IDESourceControlProjectPath iUAE.xcodeproj/project.xcworkspace IDESourceControlProjectRelativeInstallPathDictionary - 46C2324D-11F6-442D-BAE0-65142F757BCE + BB077C81096E34247CCFED268F63A8050DE3ACEE ../.. IDESourceControlProjectURL https://github.com/emufreak/iAmiga.git IDESourceControlProjectVersion - 110 + 111 IDESourceControlProjectWCCIdentifier - 46C2324D-11F6-442D-BAE0-65142F757BCE + BB077C81096E34247CCFED268F63A8050DE3ACEE IDESourceControlProjectWCConfigurations IDESourceControlRepositoryExtensionIdentifierKey public.vcs.git IDESourceControlWCCIdentifierKey - 46C2324D-11F6-442D-BAE0-65142F757BCE + BB077C81096E34247CCFED268F63A8050DE3ACEE IDESourceControlWCCName iamiga-emufreak diff --git a/uae4all_gp2x_0.7.2a/src/autoconf.cpp b/uae4all_gp2x_0.7.2a/src/autoconf.cpp index 0c56be9..83ff66a 100644 --- a/uae4all_gp2x_0.7.2a/src/autoconf.cpp +++ b/uae4all_gp2x_0.7.2a/src/autoconf.cpp @@ -298,6 +298,7 @@ void REGPARAM2 rtarea_bput (uaecptr addr, uae_u32 value) } #ifdef USE_AUTOCONFIG + static int trace_traps = 1; void REGPARAM2 call_calltrap(int func) diff --git a/uae4all_gp2x_0.7.2a/src/custom.cpp b/uae4all_gp2x_0.7.2a/src/custom.cpp index c852275..4dd01aa 100755 --- a/uae4all_gp2x_0.7.2a/src/custom.cpp +++ b/uae4all_gp2x_0.7.2a/src/custom.cpp @@ -8,7 +8,6 @@ * Copyright 2000-2002 Toni Wilen */ - // #define USE_CUSTOM_EXTRA_INLINE #define USE_IMASK_TABLE #define UNROLL_LONG_FETCH @@ -111,7 +110,7 @@ unsigned long int currcycle, nextevent; struct ev eventtab[ev_max]; static int vpos; -extern int next_vpos[512]; +//extern int next_vpos[512]; static uae_u16 lof; static int next_lineno; static int lof_changed = 0; @@ -1088,6 +1087,7 @@ static __inline__ void decide_fetch (int hpos) /* This function is responsible for turning on datafetch if necessary. */ static __inline__ void decide_line (int hpos) { + if (hpos <= last_decide_line_hpos) return; if (fetch_state != fetch_not_started) @@ -1878,7 +1878,7 @@ static _INLINE_ void SET_INTERRUPT(void) else if (new_irqs == 0) { M68KCONTEXT.interrupts[0] = 0; // uae4all_go_interrupt = 0; - m68k_irq_update(0); + m68k_irq_update(); } else { @@ -1888,7 +1888,7 @@ static _INLINE_ void SET_INTERRUPT(void) end_timeslice = new_level > old_level && new_level > _68k_intmask; M68KCONTEXT.interrupts[0] = new_irqs; - m68k_irq_update(end_timeslice); + m68k_irq_update(); /* if (new_level > old_level && new_level > _68k_intmask) { @@ -2089,9 +2089,18 @@ static _INLINE_ void SET_INTERRUPT(void) static __inline__ void INTENA (uae_u16 v) { + int intenaset = 0; + int intenasetnew = 0; #ifdef DEBUG_CUSTOM dbgf("INTENA 0x%X\n",v); #endif + int vblankbit = (intena & ( 1 << 5)) >> 5; + + if (vblankbit == 1) + { + intenaset = 1; + } + setclr (&intena,v); /* There's stupid code out there that does [some INTREQ bits at level 3 are set] @@ -2104,6 +2113,18 @@ static __inline__ void INTENA (uae_u16 v) it needs to happen one insn later, when the new L3 handler has been installed. */ + vblankbit = (intena & ( 1 << 5)) >> 5; + + if (vblankbit == 1) + { + intenasetnew = 1; + } + + if (intenasetnew != intenaset) + { + printf("VBLANK Intena Changed at: %x from %i to %i\n", m68kcontext.pc, intenaset, intenasetnew); + } + #if !defined(USE_FAME_CORE) && !defined(DEBUG_M68K) if (v & 0x8000) #endif @@ -2705,6 +2726,7 @@ static _INLINE_ void predict_copper (void) c_hpos = maxhpos; } else if (vp > vcmp || hcmp <= c_hpos) { state = COP_read1; + /* minimum wakeup time */ c_hpos += 2; } else { @@ -2924,7 +2946,8 @@ static _INLINE_ void update_copper (int until_hpos) at 0/0). This can be seen in the Superfrog copper list. Things get monstrously complicated if we try to handle this "properly" by incrementing vpos and setting c_hpos to 0. Especially the various speedup - hacks really assume that vpos remains constant during one line. Hence, + hacks really assume that vpos remains constant during one line. + Hence, this hack: defer the entire decision until the next line if necessary. */ if (c_hpos >= (maxhpos & ~1)) break; @@ -3253,7 +3276,7 @@ static void vsync_handler (void) if (joy0button!=back_joy0button) back_joy0button= buttonstate[0]= joy0button; } - + INTREQ (0x8020); if (bplcon0 & 4) @@ -3331,7 +3354,9 @@ void hsync_handler (void) #ifdef DEBUG_CUSTOM dbgf("vpos=%i, maxvpos=%i, lof=%i\n",vpos,maxvpos,lof); #endif - vpos=next_vpos[vpos]; + //printf("Vpos: %d Intreq: %x\n", vpos, intreq); + vpos++; + //vpos=next_vpos[vpos]; if (vpos >= (maxvpos + (lof != 0))) { vpos=0; @@ -3701,7 +3726,19 @@ static __inline__ uae_u32 REGPARAM2 custom_wget_1 (uaecptr addr) case 0x018: v = 0; break; case 0x01A: v = DSKBYTR (current_hpos ()); break; case 0x01C: v = INTENAR (); break; - case 0x01E: v = INTREQR (); break; + case 0x01E: v = INTREQR (); + + if(m68kcontext.pc == 0x31082) + { + int vblank = (intreq & ( 1 << 5 )) >> 5; + + if(vblank == 1) + { + + } + } + break; + case 0x07C: v = DENISEID (); break; case 0x180: case 0x182: case 0x184: case 0x186: case 0x188: case 0x18A: @@ -3990,8 +4027,8 @@ extern SDLKey vkbd_button4; uae_u8 *restore_custom (uae_u8 *src) { - uae_u16 dsklen, dskbytr, dskdatr, u16; - uae_u32 u32; + uae_u16 dsklen, dskbytr, dskdatr, ru16; + //uae_u32 u32; int dskpt; int i; @@ -4020,19 +4057,19 @@ uae_u8 *restore_custom (uae_u8 *src) RW; /* 028 REFPTR */ lof = RW; /* 02A VPOSW */ RW; /* 02C VHPOSW */ - u16=RW; COPCON(u16); /* 02E COPCON */ + ru16=RW; COPCON(ru16); /* 02E COPCON */ RW; /* 030 SERDAT* */ RW; /* 032 SERPER* */ - u16=RW; POTGO(u16); /* 034 POTGO */ + ru16=RW; POTGO(ru16); /* 034 POTGO */ RW; /* 036 JOYTEST* */ RW; /* 038 STREQU */ RW; /* 03A STRVHBL */ RW; /* 03C STRHOR */ RW; /* 03E STRLONG */ - u16=RW; BLTCON0(u16); /* 040 BLTCON0 */ - u16=RW; BLTCON1(u16); /* 042 BLTCON1 */ - u16=RW; BLTAFWM(u16); /* 044 BLTAFWM */ - u16=RW; BLTALWM(u16); /* 046 BLTALWM */ + ru16=RW; BLTCON0(ru16); /* 040 BLTCON0 */ + ru16=RW; BLTCON1(ru16); /* 042 BLTCON1 */ + ru16=RW; BLTAFWM(ru16); /* 044 BLTAFWM */ + ru16=RW; BLTALWM(ru16); /* 046 BLTALWM */ bltcpt=RL; // u32=RL; BLTCPTH(u32); /* 048-04B BLTCPT */ bltbpt=RL; // u32=RL; BLTBPTH(u32); /* 04C-04F BLTBPT */ bltapt=RL; // u32=RL; BLTAPTH(u32); /* 050-053 BLTAPT */ @@ -4041,22 +4078,22 @@ uae_u8 *restore_custom (uae_u8 *src) RW; /* 05A BLTCON0L */ oldvblts = RW; /* 05C BLTSIZV */ RW; /* 05E BLTSIZH */ - u16=RW; BLTCMOD(u16); /* 060 BLTCMOD */ - u16=RW; BLTBMOD(u16); /* 062 BLTBMOD */ - u16=RW; BLTAMOD(u16); /* 064 BLTAMOD */ - u16=RW; BLTDMOD(u16); /* 066 BLTDMOD */ + ru16=RW; BLTCMOD(ru16); /* 060 BLTCMOD */ + ru16=RW; BLTBMOD(ru16); /* 062 BLTBMOD */ + ru16=RW; BLTAMOD(ru16); /* 064 BLTAMOD */ + ru16=RW; BLTDMOD(ru16); /* 066 BLTDMOD */ RW; /* 068 ? */ RW; /* 06A ? */ RW; /* 06C ? */ RW; /* 06E ? */ - u16=RW; BLTCDAT(u16); /* 070 BLTCDAT */ - u16=RW; BLTBDAT(u16); /* 072 BLTBDAT */ - u16=RW; BLTADAT(u16); /* 074 BLTADAT */ + ru16=RW; BLTCDAT(ru16); /* 070 BLTCDAT */ + ru16=RW; BLTBDAT(ru16); /* 072 BLTBDAT */ + ru16=RW; BLTADAT(ru16); /* 074 BLTADAT */ RW; /* 076 ? */ RW; /* 078 ? */ RW; /* 07A ? */ RW; /* 07C LISAID */ - u16=RW; DSKSYNC(u16); /* 07E DSKSYNC */ + ru16=RW; DSKSYNC(ru16); /* 07E DSKSYNC */ cop1lc = RL; /* 080/082 COP1LC */ cop2lc = RL; /* 084/086 COP2LC */ RW; /* 088 ? */ @@ -4067,7 +4104,7 @@ uae_u8 *restore_custom (uae_u8 *src) ddfstrt = RW; /* 092 DDFSTRT */ ddfstop = RW; /* 094 DDFSTOP */ dmacon = RW & ~(0x2000|0x4000); /* 096 DMACON */ - u16=RW; CLXCON(u16); /* 098 CLXCON */ + ru16=RW; CLXCON(ru16); /* 098 CLXCON */ intena = RW; /* 09A INTENA */ intreq = RW; /* 09C INTREQ */ adkcon = RW; /* 09E ADKCON */ diff --git a/uae4all_gp2x_0.7.2a/src/disk.cpp b/uae4all_gp2x_0.7.2a/src/disk.cpp index 01613fd..e63f1a6 100755 --- a/uae4all_gp2x_0.7.2a/src/disk.cpp +++ b/uae4all_gp2x_0.7.2a/src/disk.cpp @@ -1346,7 +1346,7 @@ void DSKLEN (uae_u16 v, int hpos) return; { int dr; - uaecptr pc = _68k_getpc (); + uaecptr pc = m68k_get_pc (); if ((pc & 0xF80000) != 0xF80000) return; for (dr = 0; dr < NUM_DRIVES; dr++) { @@ -1606,7 +1606,7 @@ uae_u8 *restore_disk(int num,uae_u8 *src) else { m68k_speed=mfmpos; - check_prefs_changed_cpu(); + //check_prefs_changed_cpu(); } src = (uae_u8 *)(((unsigned)src)+strlen((char *)src) + 1); @@ -1639,7 +1639,8 @@ uae_u8 *save_disk(int num,int *len) save_u8 (0); /* cylinder */ save_u8 (0); /* dskready */ save_u8 (0); /* id mode position */ - save_u32 (m68k_speed); /* disk position */ + save_u32(0); /* disk position */ + //save_u32 (m68k_speed); /* disk position */ save_u32 (0); /* CRC of disk image */ dst[0]=dst[1]=0; } diff --git a/uae4all_gp2x_0.7.2a/src/drawing.cpp b/uae4all_gp2x_0.7.2a/src/drawing.cpp index e162a49..51874fd 100755 --- a/uae4all_gp2x_0.7.2a/src/drawing.cpp +++ b/uae4all_gp2x_0.7.2a/src/drawing.cpp @@ -2097,7 +2097,7 @@ void check_all_prefs(void) check_prefs_changed_audio (); check_prefs_changed_custom (); - check_prefs_changed_cpu (); + //check_prefs_changed_cpu (); if (check_prefs_changed_gfx ()) { init_row_map (); init_aspect_maps (); diff --git a/uae4all_gp2x_0.7.2a/src/include/custom.h b/uae4all_gp2x_0.7.2a/src/include/custom.h index 0693a60..ec34427 100644 --- a/uae4all_gp2x_0.7.2a/src/include/custom.h +++ b/uae4all_gp2x_0.7.2a/src/include/custom.h @@ -9,6 +9,8 @@ /* These are the masks that are ORed together in the chipset_mask option. * If CSMASK_AJA is set, the ECS bits are guaranteed to be set as well. */ +//#include "m68k_intrf.h" + #ifndef UAE_CUSTOM_H #define UAE_CUSTOM_H @@ -68,6 +70,7 @@ extern void INTREQ (uae_u16); extern void INTREQ_0 (uae_u16); //extern uae_u16 INTREQR (void); uae_u16 __inline__ INTREQR (void) { + return intreq; } diff --git a/uae4all_gp2x_0.7.2a/src/include/memory-uae.h b/uae4all_gp2x_0.7.2a/src/include/memory-uae.h new file mode 100644 index 0000000..b7ed936 --- /dev/null +++ b/uae4all_gp2x_0.7.2a/src/include/memory-uae.h @@ -0,0 +1,253 @@ +/* + * UAE - The Un*x Amiga Emulator + * + * memory management + * + * Copyright 1995 Bernd Schmidt + */ + +#ifndef UAE_MEMORY_H +#define UAE_MEMORY_H + +void swab_memory (uae_u8 *apMemory, uae_u32 aSize); + +extern void memory_reset (void); +extern unsigned chipmem_checksum(void); + +typedef uae_u32 (*mem_get_func)(uaecptr) REGPARAM; +typedef void (*mem_put_func)(uaecptr, uae_u32) REGPARAM; +typedef uae_u8 *(*xlate_func)(uaecptr) REGPARAM; +typedef int (*check_func)(uaecptr, uae_u32) REGPARAM; + +extern char *address_space, *good_address_map; +extern uae_u8 *chipmemory; +extern uae_u16 *chipmemory_word; + +extern uae_u32 allocated_chipmem; +extern uae_u32 allocated_fastmem; +extern uae_u32 allocated_bogomem; +#if !( defined(PANDORA) || defined(ANDROIDSDL) ) +extern uae_u32 allocated_gfxmem; +extern uae_u32 allocated_z3fastmem; +extern uae_u32 allocated_a3000mem; +#endif + +#undef DIRECT_MEMFUNCS_SUCCESSFUL +#include "maccess.h" + +#define kickmem_size 0x080000 + +#define chipmem_start 0x00000000 +#define bogomem_start 0x00C00000 +#if !( defined(PANDORA) || defined(ANDROIDSDL) ) +#define a3000mem_start 0x07000000 +#endif +#define kickmem_start 0x00F80000 + +extern int ersatzkickfile; +extern int cloanto_rom; + +typedef struct { + /* These ones should be self-explanatory... */ + mem_get_func lget, wget, bget; + mem_put_func lput, wput, bput; + /* Use xlateaddr to translate an Amiga address to a uae_u8 * that can + * be used to address memory without calling the wget/wput functions. + * This doesn't work for all memory banks, so this function may call + * abort(). */ + xlate_func xlateaddr; + /* To prevent calls to abort(), use check before calling xlateaddr. + * It checks not only that the memory bank can do xlateaddr, but also + * that the pointer points to an area of at least the specified size. + * This is used for example to translate bitplane pointers in custom.c */ + check_func check; + /* For those banks that refer to real memory, we can save the whole trouble + of going through function calls, and instead simply grab the memory + ourselves. This holds the memory address where the start of memory is + for this particular bank. */ + uae_u8 *baseaddr; + char *name; + /* for instruction opcode/operand fetches */ + mem_get_func lgeti, wgeti; + int flags; +} addrbank; + +extern uae_u8 *filesysory; +extern uae_u8 *rtarea; + +extern addrbank chipmem_bank; +extern addrbank kickmem_bank; +extern addrbank custom_bank; +extern addrbank clock_bank; +extern addrbank cia_bank; +extern addrbank rtarea_bank; +extern addrbank expamem_bank; +extern addrbank fastmem_bank; +extern addrbank gfxmem_bank; + +extern void rtarea_init (void); +extern void rtarea_setup (void); +extern void expamem_init (void); +extern void expamem_reset (void); +extern void rtarea_cleanup (void); + +#if !( defined(PANDORA) || defined(ANDROIDSDL) ) +extern uae_u32 gfxmem_start; +extern uae_u8 *gfxmemory; +extern uae_u32 gfxmem_mask; +#endif + +/* Default memory access functions */ + +extern int default_check(uaecptr addr, uae_u32 size) REGPARAM; +extern uae_u8 *default_xlate(uaecptr addr) REGPARAM; + +#define bankindex(addr) (((uaecptr)(addr)) >> 16) + +extern addrbank *mem_banks[65536]; +#define get_mem_bank(addr) (*mem_banks[bankindex(addr)]) +#define put_mem_bank(addr, b) \ +(mem_banks[bankindex(addr)] = (b)); + +extern void memory_init (void); +extern void memory_cleanup (void); +extern void map_banks (addrbank *bank, int first, int count, int realsize); + +#define NONEXISTINGDATA 0 + +#define longget(addr) (call_mem_get_func(get_mem_bank(addr).lget, addr)) +#define wordget(addr) (call_mem_get_func(get_mem_bank(addr).wget, addr)) +#define byteget(addr) (call_mem_get_func(get_mem_bank(addr).bget, addr)) +#define longput(addr,l) (call_mem_put_func(get_mem_bank(addr).lput, addr, l)) +#define wordput(addr,w) (call_mem_put_func(get_mem_bank(addr).wput, addr, w)) +#define byteput(addr,b) (call_mem_put_func(get_mem_bank(addr).bput, addr, b)) + +#ifndef MD_HAVE_MEM_1_FUNCS + +#define longget_1 longget +#define wordget_1 wordget +#define byteget_1 byteget +#define longput_1 longput +#define wordput_1 wordput +#define byteput_1 byteput + +#endif + +static __inline__ uae_u32 get_long(uaecptr addr) +{ + return longget_1(addr); +} +static __inline__ uae_u32 get_word(uaecptr addr) +{ + return wordget_1(addr); +} +static __inline__ uae_u32 get_byte(uaecptr addr) +{ + return byteget_1(addr); +} +static __inline__ void put_long(uaecptr addr, uae_u32 l) +{ + longput_1(addr, l); +} +static __inline__ void put_word(uaecptr addr, uae_u32 w) +{ + wordput_1(addr, w); +} +static __inline__ void put_byte(uaecptr addr, uae_u32 b) +{ + byteput_1(addr, b); +} + +static __inline__ uae_u8 * get_real_address(uaecptr addr) +{ + return get_mem_bank(addr).xlateaddr(addr); +} + +static __inline__ int valid_address(uaecptr addr, uae_u32 size) +{ + return get_mem_bank(addr).check(addr, size); +} + +/* For faster access in custom chip emulation. */ +extern uae_u32 chipmem_lget (uaecptr) REGPARAM; +extern uae_u32 chipmem_wget (uaecptr) REGPARAM; +extern uae_u32 chipmem_bget (uaecptr) REGPARAM; +extern void chipmem_lput (uaecptr, uae_u32) REGPARAM; +extern void chipmem_wput (uaecptr, uae_u32) REGPARAM; +extern void chipmem_bput (uaecptr, uae_u32) REGPARAM; + +/* IMPORTANT: Mask was hard-coded to ~0xfff00000 => 1MB chip memory MAX. + * Mask is now set to chipmem_mask => 8MB chip memory MAX. + */ +extern uae_u32 chipmem_mask; + +static __inline__ uae_u16 CHIPMEM_WGET (uae_u32 PT) { + /* ! 68020+ CPUs can read/write words and longs at odd addresses ! */ + if (PT & 1) { + return (*((uae_u8 *)&chipmemory[(PT - 1) & chipmem_mask]) << 8) | + *((uae_u8 *)&chipmemory[(PT + 2) & chipmem_mask]); + } + else { + return *((uae_u16 *)&chipmemory[PT & chipmem_mask]); + } +} +static __inline void CHIPMEM_WPUT (uae_u32 PT, uae_u16 DA) { + /* ! 68020+ CPUs can read/write words and longs at odd addresses ! */ + if (PT & 1) { + *((uae_u8 *)&chipmemory[(PT - 1) & chipmem_mask]) = DA >> 8; + *((uae_u8 *)&chipmemory[(PT + 2) & chipmem_mask]) = DA; + } + else { + *((uae_u16 *)&chipmemory[PT & chipmem_mask]) = DA; + } +} +static __inline__ uae_u32 CHIPMEM_LGET(uae_u32 PT) { + /* ! 68020+ CPUs can read/write words and longs at odd addresses ! */ + if (PT & 1) { + return (CHIPMEM_WGET(PT) << 16) | CHIPMEM_WGET(PT + 2); + } + else { + return ((uae_u32)(*((uae_u16 *)&chipmemory[PT & chipmem_mask])) << 16) | + (*((uae_u16 *)&chipmemory[(PT + 2) & chipmem_mask])); + } +} + +// Custom chips use always even addresses -> no check required +static __inline__ uae_u16 CHIPMEM_WGET_CUSTOM (uae_u32 PT) { + return *((uae_u16 *)&chipmemory[PT & chipmem_mask]); +} +static __inline void CHIPMEM_WPUT_CUSTOM (uae_u32 PT, uae_u16 DA) { + *((uae_u16 *)&chipmemory[PT & chipmem_mask]) = DA; +} +static __inline__ uae_u32 CHIPMEM_LGET_CUSTOM(uae_u32 PT) { + return ((uae_u32)(*((uae_u16 *)&chipmemory[PT & chipmem_mask])) << 16) | + (*((uae_u16 *)&chipmemory[(PT + 2) & chipmem_mask])); +} + + +extern uae_u8 *mapped_malloc (size_t, const char *); +extern void mapped_free (uae_u8 *); + +#if defined(USE_ARMV7) + +extern "C" { + void *arm_memset(void *s, int c, size_t n); + void *arm_memcpy(void *dest, const void *src, size_t n); +} + +/* 4-byte alignment */ +//#define UAE4ALL_ALIGN __attribute__ ((__aligned__ (4))) +#define UAE4ALL_ALIGN __attribute__ ((__aligned__ (16))) +#define uae4all_memclr(p,l) arm_memset(p,0,l) +#define uae4all_memcpy arm_memcpy + +#else + +/* 4-byte alignment */ +#define UAE4ALL_ALIGN __attribute__ ((__aligned__ (4))) +#define uae4all_memcpy memcpy +#define uae4all_memclr(p,l) memset(p, 0, l) + +#endif + +#endif diff --git a/uae4all_gp2x_0.7.2a/src/m68k/fame/fame.h b/uae4all_gp2x_0.7.2a/src/m68k/fame/fame.h index 12f3d6c..9f3b617 100644 --- a/uae4all_gp2x_0.7.2a/src/m68k/fame/fame.h +++ b/uae4all_gp2x_0.7.2a/src/m68k/fame/fame.h @@ -9,182 +9,202 @@ #ifndef __FAME_H__ #define __FAME_H__ -#ifdef __cplusplus -extern "C" { -#endif - +#define likely(x) __builtin_expect((x),1) +#define unlikely(x) __builtin_expect((x),0) +#define UAE4ALL_ALIGN __attribute__ ((__aligned__ (16))) /************************************/ /* General library defines */ /************************************/ #ifndef M68K_OK - #define M68K_OK 0 +#define M68K_OK 0 #endif #ifndef M68K_RUNNING - #define M68K_RUNNING 1 +#define M68K_RUNNING 1 #endif #ifndef M68K_NO_SUP_ADDR_SPACE - #define M68K_NO_SUP_ADDR_SPACE 2 +#define M68K_NO_SUP_ADDR_SPACE 2 #endif #ifndef M68K_DOUBLE_BUS_FAULT - #define M68K_DOUBLE_BUS_FAULT -1 +#define M68K_DOUBLE_BUS_FAULT -1 #endif #ifndef M68K_INV_REG - #define M68K_INV_REG -1 +#define M68K_INV_REG -1 #endif /* Hardware interrupt state */ #ifndef M68K_IRQ_LEVEL_ERROR - #define M68K_IRQ_LEVEL_ERROR -1 +#define M68K_IRQ_LEVEL_ERROR -1 #endif #ifndef M68K_IRQ_INV_PARAMS - #define M68K_IRQ_INV_PARAMS -2 +#define M68K_IRQ_INV_PARAMS -2 #endif /* Defines to specify hardware interrupt type */ #ifndef M68K_AUTOVECTORED_IRQ - #define M68K_AUTOVECTORED_IRQ -1 +#define M68K_AUTOVECTORED_IRQ -1 #endif #ifndef M68K_SPURIOUS_IRQ - #define M68K_SPURIOUS_IRQ -2 +#define M68K_SPURIOUS_IRQ -2 #endif #ifndef M68K_AUTO_LOWER_IRQ - #define M68K_AUTO_LOWER_IRQ 1 +#define M68K_AUTO_LOWER_IRQ 1 #endif #ifndef M68K_MANUAL_LOWER_IRQ - #define M68K_MANUAL_LOWER_IRQ 0 +#define M68K_MANUAL_LOWER_IRQ 0 #endif /* Defines to specify address space */ #ifndef M68K_SUP_ADDR_SPACE - #define M68K_SUP_ADDR_SPACE 0 +#define M68K_SUP_ADDR_SPACE 0 #endif #ifndef M68K_USER_ADDR_SPACE - #define M68K_USER_ADDR_SPACE 2 +#define M68K_USER_ADDR_SPACE 2 #endif #ifndef M68K_PROG_ADDR_SPACE - #define M68K_PROG_ADDR_SPACE 0 +#define M68K_PROG_ADDR_SPACE 0 #endif #ifndef M68K_DATA_ADDR_SPACE - #define M68K_DATA_ADDR_SPACE 1 +#define M68K_DATA_ADDR_SPACE 1 #endif /*******************/ /* Data definition */ /*******************/ +#ifdef u8 +#undef u8 +#endif + +#ifdef s8 +#undef s8 +#endif + +#ifdef u16 +#undef u16 +#endif + +#ifdef s16 +#undef s16 +#endif + +#ifdef u32 +#undef u32 +#endif + +#ifdef s32 +#undef s32 +#endif + +#define u8 unsigned char +#define s8 signed char +#define u16 unsigned short +#define s16 signed short +#define u32 unsigned int +#define s32 signed int + +#define u64 unsigned long long +#define s64 long long + /* M68K registers */ typedef enum { - M68K_REG_D0=0, - M68K_REG_D1, - M68K_REG_D2, - M68K_REG_D3, - M68K_REG_D4, - M68K_REG_D5, - M68K_REG_D6, - M68K_REG_D7, - M68K_REG_A0, - M68K_REG_A1, - M68K_REG_A2, - M68K_REG_A3, - M68K_REG_A4, - M68K_REG_A5, - M68K_REG_A6, - M68K_REG_A7, - M68K_REG_ASP, - M68K_REG_PC, - M68K_REG_SR + M68K_REG_D0=0, + M68K_REG_D1, + M68K_REG_D2, + M68K_REG_D3, + M68K_REG_D4, + M68K_REG_D5, + M68K_REG_D6, + M68K_REG_D7, + M68K_REG_A0, + M68K_REG_A1, + M68K_REG_A2, + M68K_REG_A3, + M68K_REG_A4, + M68K_REG_A5, + M68K_REG_A6, + M68K_REG_A7, + M68K_REG_USP, + M68K_REG_PC, + M68K_REG_SR } m68k_register; -/* The memory blocks must be in native (Motorola) format */ -struct M68K_PROGRAM { - unsigned low_addr; - unsigned high_addr; - unsigned offset; -}; - -/* The memory blocks must be in native (Motorola) format */ -struct M68K_DATA { - unsigned low_addr; - unsigned high_addr; - void *mem_handler; - void *data; -}; +typedef union +{ + u8 B; + s8 SB; + u16 W; + s16 SW; + u32 D; + s32 SD; +} famec_union32; + /* M68K CPU CONTEXT */ -struct M68K_CONTEXT { - struct M68K_PROGRAM *fetch; - struct M68K_DATA *read_byte; - struct M68K_DATA *read_word; - struct M68K_DATA *write_byte; - struct M68K_DATA *write_word; - struct M68K_PROGRAM *sv_fetch; - struct M68K_DATA *sv_read_byte; - - struct M68K_DATA *sv_read_word; - struct M68K_DATA *sv_write_byte; - struct M68K_DATA *sv_write_word; - struct M68K_PROGRAM *user_fetch; - struct M68K_DATA *user_read_byte; - struct M68K_DATA *user_read_word; - struct M68K_DATA *user_write_byte; - struct M68K_DATA *user_write_word; - void (*reset_handler)(void); - void (*iack_handler)(unsigned level); - unsigned * icust_handler; - unsigned dreg[8]; - unsigned areg[8]; - unsigned asp; - unsigned pc; - unsigned cycles_counter; - unsigned char interrupts[8]; - unsigned short sr; - unsigned short execinfo; -}; +typedef struct +{ + famec_union32 dreg[8]; + famec_union32 areg[8]; + u32 *icust_handler; + u32 usp; + u32 pc; + u32 cycles_counter; + u8 interrupts[8]; + u16 sr; + u16 execinfo; + u32 vbr, sfc, dfc; /* Control Registers, 68010+ */ + u32 cacr, caar; /* Control Registers, 68020+ */ + u32 msp, isp; /* Master/Interrupt Stack Pointer */ + // We put everything what is needed for m68k_emulate and the opcodes in this + // struct, so there is only one base register in generated assembly code. + // This reduces the number of used and backed up register and we have better performance. + u32 flag_c; + u32 flag_v; + u32 flag_notz; + u32 flag_n; + u32 flag_x; + u32 flag_s; + u32 flag_i; + u32 flag_m; + u32 flag_t; + u16 *_pc; + u32 basepc; + u32 fetch[256]; + s32 more_cycles_to_do; + s32 cycles_not_done; + s32 io_cycle_counter; +} M68K_CONTEXT; /************************/ /* Function definition */ /************************/ - -/* General purpose functions */ -void m68k_init(void); -unsigned m68k_reset(void); -unsigned m68k_emulate(int n); -unsigned m68k_get_pc(void); -unsigned m68k_get_cpu_state(void); -int m68k_fetch(unsigned address, unsigned memory_space); - -/* Interrupt handling functions */ -int m68k_raise_irq(int level, int vector); -int m68k_lower_irq(int level); -void m68k_burst_irq(int mask, int vector); -void m68k_set_irq_type(void *context, int type); -int m68k_get_irq_vector(int level); -int m68k_change_irq_vector(int level, int vector); - -/* CPU context handling functions */ -int m68k_get_context_size(void); -void m68k_get_context(void *context); -void m68k_set_context(void *context); -int m68k_get_register(m68k_register reg); -int m68k_set_register(m68k_register reg, unsigned value); - -/* Timing functions */ -unsigned m68k_get_cycles_counter(void); -unsigned m68k_trip_cycles_counter(void); -unsigned m68k_control_cycles_counter(int n); -void m68k_release_timeslice(void); -void m68k_add_cycles(int cycles); -void m68k_release_cycles(int cycles); - - +#ifdef __cplusplus +extern "C" { +#endif + + /* General purpose functions */ + void m68k_init(int force_table); + unsigned m68k_reset(void); + unsigned m68k_emulate(int n); + unsigned m68k_get_pc(void); + int m68k_fetch(unsigned address); + + /* CPU context handling functions */ + M68K_CONTEXT *m68k_get_context(void); + void famec_SetBank(u32 low_addr, u32 high_addr, u32 fetch, void *rb, void *rw, void *wb, void *ww, void *data); + int m68k_set_register(m68k_register reg, unsigned value); + + /* Timing functions */ + void m68k_release_timeslice(void); + + #ifdef __cplusplus } #endif diff --git a/uae4all_gp2x_0.7.2a/src/m68k/fame/famec.cpp b/uae4all_gp2x_0.7.2a/src/m68k/fame/famec.cpp index 25c1af4..44cd411 100644 --- a/uae4all_gp2x_0.7.2a/src/m68k/fame/famec.cpp +++ b/uae4all_gp2x_0.7.2a/src/m68k/fame/famec.cpp @@ -7,78 +7,24 @@ /* Based on the excellent FAMEC emulator by StËphane Dallongueville */ /****************************************************************************/ - - #include #include #include -#include "sysconfig.h" - - -#ifdef USE_FAME_CORE_C - -#pragma mark - -#pragma mark debug routines - -#define NO_BREAKPOINTS 1 - -#if DISASSEMBLER || defined(DEBUG_CPU) - -int do_disa = 0; -int do_debug = 0; -int disa_step = 0; -int instruction_cycles; - -#if NO_BREAKPOINTS -#define CHECK_BREAKPOINTS -#else -#define CHECK_BREAKPOINTS check_breakpoints(); -#endif - -#define STORE_COUNTER instruction_cycles = io_cycle_counter; -#define INSTRUCTION_CYCLES (instruction_cycles - (io_cycle_counter+cycles_needed)) - -#else - -#define CHECK_BREAKPOINTS -#define STORE_COUNTER - -#endif - -#ifdef DEBUG_CPU - - -#define insdebug(CYC) \ -if (do_debug) \ - printf("%05i|%03i: %06x: OP_%04x (%02i) r=%08x|irq=%02i %s: \n",m68kcontext.cycles_counter,io_cycle_counter+cycles_needed,(u32)PC - BasePC,Opcode,io_cycles_before - io_cycle_counter,res, ((m68kcontext.sr>>8) & 7), __FUNCTION__) +#include "fame.h" +#include "config.h" -#else -#define insdebug(CYC) -#endif +/* Just 0x0 and not 680x0, so that constants can fit in ARM instructions */ +#define M68000 000 +#define M68020 020 -#pragma mark - -#pragma mark options - // Options // -#define FAMEC_ROLL_INLINE -#define FAMEC_EMULATE_TRACE -#define FAMEC_IRQ_CYCLES -#define FAMEC_CHECK_BRANCHES -#define FAMEC_USE_DATA_BANKS //#define FAMEC_EXTRA_INLINE // #define FAMEC_DEBUG -#define FAMEC_NO_GOTOS #define FAMEC_ADR_BITS 24 #define FAMEC_FETCHBITS 8 #define FAMEC_DATABITS 8 -// -O0 -fdefer-pop -fguess-branch-probability -fcprop-registers -fif-conversion -fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts -ftree-dse -ftree-ter -ftree-lrs -ftree-sra -ftree-copyrename -ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants -fstrict-aliasing -falign-jumps -fif-conversion2 -fif-conversion - -// #define USE_CYCLONE_TIMING -// #define USE_CYCLONE_TIMING_DIV -// Options // - #undef INLINE #ifndef INLINE @@ -86,117 +32,24 @@ if (do_debug) \ #endif #ifndef FAMEC_EXTRA_INLINE -#define FAMEC_EXTRA_INLINE +#define FAMEC_EXTRA_INLINE /*__inline__*/ #else +#undef FAMEC_EXTRA_INLINE #define FAMEC_EXTRA_INLINE INLINE #endif -#ifdef u8 -#undef u8 -#endif - -#ifdef s8 -#undef s8 -#endif - -#ifdef u16 -#undef u16 -#endif - -#ifdef s16 -#undef s16 -#endif - -#ifdef u32 -#undef u32 -#endif - -#ifdef s32 -#undef s32 -#endif - -#define u8 unsigned char -#define s8 signed char -#define u16 unsigned short -#define s16 signed short -#define u32 unsigned int -#define s32 signed int - -/* -typedef unsigned char u8; -typedef signed char s8; -typedef unsigned short u16; -typedef signed short s16; -typedef unsigned int u32; -typedef signed int s32; -*/ - -#ifdef FAMEC_EMULATE_TRACE -static u32 flag_T; -#endif -static u32 flag_C; -static u32 flag_V; -static u32 flag_NotZ; -static u32 flag_N; -static u32 flag_X; // 16 bytes aligned -static u32 flag_S; -static u32 flag_I; - -#ifndef M68K_OK - #define M68K_OK 0 -#endif - -#ifndef M68K_RUNNING - #define M68K_RUNNING 1 -#endif - -#ifndef M68K_NO_SUP_ADDR_SPACE - #define M68K_NO_SUP_ADDR_SPACE 2 -#endif - -#ifndef M68K_INV_REG - #define M68K_INV_REG -1 -#endif -/* Hardware interrupt state */ - -#ifndef M68K_IRQ_LEVEL_ERROR - #define M68K_IRQ_LEVEL_ERROR -1 -#endif - -#ifndef M68K_IRQ_INV_PARAMS - #define M68K_IRQ_INV_PARAMS -2 -#endif - -/* Defines to specify hardware interrupt type */ - -#ifndef M68K_AUTOVECTORED_IRQ - #define M68K_AUTOVECTORED_IRQ -1 -#endif - -#ifndef M68K_SPURIOUS_IRQ - #define M68K_SPURIOUS_IRQ -2 -#endif - -/* Defines to specify address space */ - -#ifndef M68K_SUP_ADDR_SPACE - #define M68K_SUP_ADDR_SPACE 0 -#endif - -#ifndef M68K_USER_ADDR_SPACE - #define M68K_USER_ADDR_SPACE 2 -#endif - -#ifndef M68K_PROG_ADDR_SPACE - #define M68K_PROG_ADDR_SPACE 0 -#endif +#define UVAL64(a) (a ## uLL) -#ifndef M68K_DATA_ADDR_SPACE - #define M68K_DATA_ADDR_SPACE 1 -#endif +// Return codes +#define M68K_OK 0 +#define M68K_RUNNING 1 +#define M68K_NO_SUP_ADDR_SPACE 2 +#define M68K_INV_REG -1 +extern int prefs_cpu_model; +extern int mainMenu_CPU_speed; /******************************/ /* 68K core types definitions */ @@ -221,6 +74,7 @@ static u32 flag_I; #define M68K_SR_N_SFT 7 #define M68K_SR_X_SFT 8 +#define M68K_SR_M_SFT 12 #define M68K_SR_S_SFT 13 #define M68K_SR_T_SFT 15 @@ -230,16 +84,13 @@ static u32 flag_I; #define M68K_SR_N (1 << M68K_SR_N_SFT) #define M68K_SR_X (1 << M68K_SR_X_SFT) +#define M68K_SR_M (1 << M68K_SR_M_SFT) #define M68K_SR_S (1 << M68K_SR_S_SFT) #define M68K_SR_T (1 << M68K_SR_T_SFT) #define M68K_CCR_MASK 0x1F -#ifdef FAMEC_EMULATE_TRACE -#define M68K_SR_MASK (M68K_SR_T | M68K_SR_S | 0x0700 | M68K_CCR_MASK) -#else -#define M68K_SR_MASK (M68K_SR_S | 0x0700 | M68K_CCR_MASK) -#endif +#define M68K_SR_MASK (M68K_SR_T | M68K_SR_S | M68K_SR_M | 0x0700 | M68K_CCR_MASK) // exception defines taken from musashi core #define M68K_RESET_EX 1 @@ -266,106 +117,6 @@ static u32 flag_I; #define M68K_WAITING 0x04 #define M68K_DISABLE 0x20 #define M68K_FAULTED 0x40 -#define M68K_EMULATE_GROUP_0 0x02 -#define M68K_EMULATE_TRACE 0x08 -#define M68K_DO_TRACE 0x10 - -typedef union -{ - u8 B; - s8 SB; -} famec_union8; - -typedef union -{ - u8 B; - s8 SB; - u16 W; - s16 SW; -} famec_union16; - -typedef union -{ - u8 B; - s8 SB; - u16 W; - s16 SW; - u32 D; - s32 SD; -} famec_union32; - - -/* M68K registers */ -typedef enum -{ - M68K_REG_D0=0, - M68K_REG_D1, - M68K_REG_D2, - M68K_REG_D3, - M68K_REG_D4, - M68K_REG_D5, - M68K_REG_D6, - M68K_REG_D7, - M68K_REG_A0, - M68K_REG_A1, - M68K_REG_A2, - M68K_REG_A3, - M68K_REG_A4, - M68K_REG_A5, - M68K_REG_A6, - M68K_REG_A7, - M68K_REG_ASP, - M68K_REG_PC, - M68K_REG_SR -} m68k_register; - - -/* The memory blocks must be in native (Motorola) format */ -typedef struct -{ - u32 low_addr; - u32 high_addr; - u32 offset; -} M68K_PROGRAM; - -/* The memory blocks must be in native (Motorola) format */ -typedef struct -{ - u32 low_addr; - u32 high_addr; - void *mem_handler; - void *data; -} M68K_DATA; - -/* M68K CPU CONTEXT */ -typedef struct { - M68K_PROGRAM *fetch; - M68K_DATA *read_byte; - M68K_DATA *read_word; - M68K_DATA *write_byte; - M68K_DATA *write_word; - M68K_PROGRAM *sv_fetch; - M68K_DATA *sv_read_byte; - M68K_DATA *sv_read_word; - M68K_DATA *sv_write_byte; - M68K_DATA *sv_write_word; - M68K_PROGRAM *user_fetch; - M68K_DATA *user_read_byte; - M68K_DATA *user_read_word; - M68K_DATA *user_write_byte; - M68K_DATA *user_write_word; - void (*reset_handler)(void); - void (*iack_handler)(u32 level); - u32 *icust_handler; - famec_union32 dreg[8]; - famec_union32 areg[8]; - u32 asp; - u32 pc; - u32 cycles_counter; - u8 interrupts[8]; - u16 sr; - u16 execinfo; -} M68K_CONTEXT; // internals core macros @@ -385,7 +136,66 @@ typedef struct { #define AREGu16(X) (m68kcontext.areg[(X)].W) #define AREGs16(X) (m68kcontext.areg[(X)].SW) -#define ASP (m68kcontext.asp) +#define USP (m68kcontext.usp) +#define MSP (m68kcontext.msp) +#define ISP (m68kcontext.isp) + + +/* Main CPU context */ +M68K_CONTEXT m68kcontext; + +#define flag_C m68kcontext.flag_c +#define flag_V m68kcontext.flag_v +#define flag_NotZ m68kcontext.flag_notz +#define flag_N m68kcontext.flag_n +#define flag_X m68kcontext.flag_x +#define flag_S m68kcontext.flag_s +#define flag_I m68kcontext.flag_i +#define flag_M m68kcontext.flag_m +#define flag_T m68kcontext.flag_t +#define PC m68kcontext._pc +#define BasePC m68kcontext.basepc +#define Fetch m68kcontext.fetch + + +#define UPDATE_SP_000 \ +{ \ +if (oldS != flag_S) { \ +if (oldS) { \ +ISP = AREG(7); \ +AREG(7) = USP; \ +} else { \ +USP = AREG(7); \ +AREG(7) = ISP; \ +} \ +} \ +} + + +#define UPDATE_SP_020 \ +{ \ +if (oldS != flag_S) { \ +if (oldS) { \ +if (oldM) \ +MSP = AREG(7); \ +else \ +ISP = AREG(7); \ +AREG(7) = USP; \ +} else { \ +USP = AREG(7); \ +AREG(7) = flag_M ? MSP : ISP; \ +} \ +} else if ((oldS && oldM) != flag_M) { \ +if (oldM) { \ +MSP = AREG(7); \ +AREG(7) = ISP; \ +} else { \ +ISP = AREG(7); \ +AREG(7) = MSP; \ +} \ +} \ +} + #define LSL(A, C) ((A) << (C)) #define LSR(A, C) ((A) >> (C)) @@ -407,344 +217,129 @@ typedef struct { #define ROR_32(A, C) (LSR_32(A, C) | LSL_32(A, 32-(C))) #define ROR_33(A, C) (LSR_32(A, C) | LSL_32(A, 33-(C))) -#ifndef FAMEC_NO_GOTOS -#define NEXT \ - FETCH_WORD(Opcode); \ - goto *JumpTable[Opcode]; - -#ifdef FAMEC_ROLL_INLINE -#define RET(A) \ - io_cycle_counter -= (A); \ - if (io_cycle_counter <= 0) goto famec_Exec_End; \ - NEXT -#else -#define RET(A) \ - io_cycle_counter -= (A); \ - if (io_cycle_counter <= 0) goto famec_Exec_End; \ - goto famec_Exec; -#endif - -#else - -#define NEXT \ - do{ \ - CHECK_BREAKPOINTS; \ - DISA_STEP(); \ - FETCH_WORD(Opcode); \ - STORE_COUNTER; \ - JumpTable[Opcode](); \ - DISA_POST_STEP(); \ - }while(io_cycle_counter>0); #define RET(A) \ - io_cycle_counter -= (A); \ - insdebug(A); \ - return; - -#endif +return (A); #define M68K_PPL (m68kcontext.sr >> 8) & 7 #define GET_PC \ - (u32)PC - BasePC; +(u32)PC - BasePC; #define SET_PC(A) \ - BasePC = Fetch[((A) >> M68K_FETCHSFT) & M68K_FETCHMASK]; \ - /* BasePC -= (A) & 0xFF000000; */ \ - PC = (u16*)(((A) & M68K_ADR_MASK) + BasePC); - -#define SET_PC_BASE(P,B,A) \ - (B) = Fetch[((A) >> M68K_FETCHSFT) & M68K_FETCHMASK]; \ - /* (B) -= (A) & 0xFF000000; */ \ - (P) = (u16*)(((A) & M68K_ADR_MASK) + (B)); +BasePC = Fetch[((A) >> M68K_FETCHSFT) & M68K_FETCHMASK]; \ +PC = (u16*)(((A) & M68K_ADR_MASK) + BasePC); +#define READ_BYTE_F(A, D) \ +D = Read_Byte(A) /*& 0xFF*/; -#define PRE_IO \ -// io_cycle_counter = CCnt; +#define READ_WORD_F(A, D) \ +D = Read_Word(A) /*& 0xFFFF*/; -#define POST_IO \ -// CCnt = io_cycle_counter; +#define READ_LONG_F(A, D) \ +D = Read_Long((A)); -#ifndef FAME_BIG_ENDIAN +#define READ_LONG_DEC_F(A, D) \ +D = Read_Long((A)); - #define READ_BYTE_F(A, D) \ - D = Read_Byte(A) & 0xFF; +#define READSX_LONG_F(A, D) \ +D = Read_Long((A)); - #define READ_WORD_F(A, D) \ - D = Read_Word(A) & 0xFFFF; +#define READSX_LONG_DEC_F(A, D) \ +D = Read_Long((A)); - #define READ_LONG_F(A, D) \ - D = Read_Word((A)) << 16; \ - D |= Read_Word((A) + 2) & 0xFFFF; +#define POP_32_F(D) \ +D = Read_Long(AREG(7)); \ +AREG(7) += 4; - #define READ_LONG_DEC_F(A, D) \ - D = Read_Word((A) + 2) & 0xFFFF; \ - D |= Read_Word((A)) << 16; +#define WRITE_LONG_F(A, D) \ +Write_Long((A), (D)); - #define READSX_LONG_F(A, D) \ - D = Read_Word((A)) << 16; \ - D |= Read_Word((A) + 2) & 0xFFFF; +#define WRITE_LONG_DEC_F(A, D) \ +Write_Long((A), (D)); - #define READSX_LONG_DEC_F(A, D) \ - D |= Read_Word((A)) << 16; \ - D = Read_Word((A) + 2) & 0xFFFF; +#define PUSH_32_F(D) \ +AREG(7) -= 4; \ +Write_Long(AREG(7), (D)); - #define WRITE_LONG_F(A, D) \ - Write_Word((A), (D) >> 16); \ - Write_Word((A) + 2, (D) & 0xFFFF); - #define WRITE_LONG_DEC_F(A, D) \ - Write_Word((A), (D) >> 16); \ - Write_Word((A) + 2, (D) & 0xFFFF); +#define GET_SWORD \ +(s32)(s16)(*PC) - #define FETCH_LONG(A) \ - (A) = PC[1] | (PC[0] << 16); \ - PC += 2; - - #define PUSH_32_F(D) \ - AREG(7) -= 4; \ - Write_Word(AREG(7), (D) >> 16); \ - Write_Word(AREG(7) + 2, (D) & 0xFFFF); - - #define POP_32_F(D) \ - D = Read_Word(AREG(7)) << 16; \ - D |= Read_Word(AREG(7) + 2) & 0xFFFF; \ - AREG(7) += 4; - - #define GET_SWORD \ - (s16)(*PC) - - #define FETCH_BYTE(A) \ - (A) = (*PC++) & 0xFF; - - #define FETCH_SBYTE(A) \ - (A) = (s8)((*PC++) & 0xFF); - - #define FETCH_WORD(A) \ - (A) = *PC++; - - #define FETCH_SWORD(A) \ - (A) = (s16)(*PC++); - - #define DECODE_EXT_WORD \ - { \ - u32 ext; \ - \ - ext = *PC++; \ - \ - adr += (s8)(ext); \ - if (ext & 0x0800) adr += DREGs32(ext >> 12); \ - else adr += DREGs16(ext >> 12); \ - } +#define GET_SLONG \ +(s32)(((u32)(*PC) << 16) | (*(PC + 1) /*& 0xFFFF*/)); +#ifndef USE_ARMV7 +#define FETCH_LONG(A) \ +(A) = PC[1] | (PC[0] << 16); \ +PC += 2; #else +#define FETCH_LONG(A) \ +asm volatile ("ldr %[erg], [%[adr]], #4 \n\t" \ +"ror %[erg], %[erg], #16 \n\t" \ +: [erg] "=r" (A), [adr] "+r" (PC) ); +#endif - #define READ_BYTE_F(A, D) \ - D = Read_Byte(A) & 0xFF; - - #define READ_WORD_F(A, D) \ - D = Read_Word(A) & 0xFFFF; - - #define READ_LONG_F(A, D) \ - D = Read_Word((A)) & 0xFFFF; \ - D |= Read_Word((A) + 2) << 16; - - #define READ_LONG_DEC_F(A, D) \ - D = Read_Word((A)) & 0xFFFF; \ - D |= Read_Word((A) + 2) << 16; - - #define READSX_LONG_F(A, D) \ - D = Read_Word((A)) & 0xFFFF; \ - D |= Read_Word((A) + 2) << 16; - - #define READSX_LONG_DEC_F(A, D) \ - D = Read_Word((A) + 2) << 16; \ - D |= Read_Word((A)) & 0xFFFF; - - #define WRITE_LONG_F(A, D) \ - Write_Word((A), (D) & 0xFFFF); \ - Write_Word((A) + 2, (D) >> 16); - - #define WRITE_LONG_DEC_F(A, D) \ - Write_Word((A) + 2, (D) >> 16); \ - Write_Word((A), (D) & 0xFFFF); - - #define FETCH_LONG(A) \ - (A) = PC[0] | (PC[1] << 16); \ - PC += 2; - - #define PUSH_32_F(D) \ - AREG(7) -= 4; \ - Write_Word(AREG(7), (D) & 0xFFFF); \ - Write_Word(AREG(7) + 2, (D) >> 16); - - #define POP_32_F(D) \ - D = Read_Word(AREG(7)) & 0xFFFF; \ - D |= Read_Word(AREG(7) + 2) << 16; \ - AREG(7) += 4; - - #define GET_SWORD \ - ((s16)(((*PC & 0xFF) << 8) | (*PC >> 8))) - - #define FETCH_BYTE(A) \ - (A) = (*PC++) >> 8; - - #define FETCH_SBYTE(A) \ - (A) = (s8)((*PC++) >> 8); - - #define FETCH_WORD(A) \ - (A) = ((*PC & 0xFF) << 8) | (*PC >> 8); \ - PC++; - - #define FETCH_SWORD(A) \ - (A) = (s16)(((*PC & 0xFF) << 8) | (*PC >> 8)); \ - PC++; +#define FETCH_BYTE(A) \ +(A) = (*PC++) & 0xFF; - #define DECODE_EXT_WORD \ - { \ - u32 ext; \ - \ - ext = *PC++; \ - \ - adr += (s8)(ext >> 8); \ - if (ext & 0x0008) adr += DREGs32((ext >> 4) & 0x000F); \ - else adr += DREGs16((ext >> 4) & 0x000F); \ - } +#define FETCH_WORD(A) \ +(A) = *PC++; -#endif +#define FETCH_SWORD(A) \ +(A) = (s32)(s16)(*PC++); -#define READSX_BYTE_F(A, D) \ - D = (s8)Read_Byte(A); #define READSX_WORD_F(A, D) \ - D = (s16)Read_Word(A); - +D = (s16)Read_Word(A); + #define WRITE_BYTE_F(A, D) \ - Write_Byte(A, D); +Write_Byte(A, D); #define WRITE_WORD_F(A, D) \ - Write_Word(A, D); +Write_Word(A, D); #define PUSH_16_F(D) \ - Write_Word(AREG(7) -= 2, D); \ +Write_Word(AREG(7) -= 2, D); \ #define POP_16_F(D) \ - D = (u16)Read_Word(AREG(7)); \ - AREG(7) += 2; +D = (u16)Read_Word(AREG(7)); \ +AREG(7) += 2; #define GET_CCR \ - (((flag_C >> (M68K_SR_C_SFT - 0)) & 1) | \ - ((flag_V >> (M68K_SR_V_SFT - 1)) & 2) | \ - (((!flag_NotZ) & 1) << 2) | \ - ((flag_N >> (M68K_SR_N_SFT - 3)) & 8) | \ - ((flag_X >> (M68K_SR_X_SFT - 4)) & 0x10)) +(((flag_C >> (M68K_SR_C_SFT - 0)) & 1) | \ +((flag_V >> (M68K_SR_V_SFT - 1)) & 2) | \ +(((!flag_NotZ) & 1) << 2) | \ +((flag_N >> (M68K_SR_N_SFT - 3)) & 8) | \ +((flag_X >> (M68K_SR_X_SFT - 4)) & 0x10)) -#ifdef FAMEC_EMULATE_TRACE -#define GET_SR \ - ((flag_S << 0) | \ - (flag_I << 8) | \ - (flag_T ) | \ - GET_CCR) -#else #define GET_SR \ - ((flag_S << 0) | \ - (flag_I << 8) | \ - GET_CCR) -#endif +((flag_S << 0) | \ +(flag_I << 8) | \ +(prefs_cpu_model >= M68020 ? (flag_M << 12) : 0) | \ +(flag_T ) | \ +GET_CCR) #define SET_CCR(A) \ - flag_C = (A) << (M68K_SR_C_SFT - 0); \ - flag_V = (A) << (M68K_SR_V_SFT - 1); \ - flag_NotZ = ~(A) & 4; \ - flag_N = (A) << (M68K_SR_N_SFT - 3); \ - flag_X = (A) << (M68K_SR_X_SFT - 4); - - -#ifdef FAMEC_EMULATE_TRACE -#define SET_SR(A) \ - SET_CCR(A) \ - flag_T = (A) & M68K_SR_T; \ - flag_S = (A) & M68K_SR_S; \ - flag_I = ((A) >> 8) & 7; -#else -#define SET_SR(A) \ - SET_CCR(A) \ - flag_S = (A) & M68K_SR_S; \ - flag_I = ((A) >> 8) & 7; -#endif - -#define CHECK_INT_TO_JUMP(CLK) \ - if (interrupt_chk__()) \ - { \ - cycles_needed=io_cycle_counter-(CLK); \ - io_cycle_counter= (CLK); \ - } - - -#ifdef FAMEC_CHECK_BRANCHES - -#ifdef FAMEC_NO_GOTOS -#define CHECK_BRANCH_EXCEPTION_GOTO_END io_cycle_counter=0; return; -#else -#define CHECK_BRANCH_EXCEPTION_GOTO_END goto famec_Exec_End; -#endif - -#define CHECK_BRANCH_EXCEPTION(_PC_) \ - if ((_PC_)&1) \ - { \ - u32 pr_PC=GET_PC; \ - m68kcontext.execinfo |= M68K_EMULATE_GROUP_0; \ - execute_exception_group_0(M68K_ADDRESS_ERROR_EX, 0, pr_PC, 0x12 ); \ - CHECK_BRANCH_EXCEPTION_GOTO_END \ - } -#else -#define CHECK_BRANCH_EXCEPTION(_PC_) -#endif +flag_C = (A) << (M68K_SR_C_SFT - 0); \ +flag_V = (A) << (M68K_SR_V_SFT - 1); \ +flag_NotZ = ~(A) & 4; \ +flag_N = (A) << (M68K_SR_N_SFT - 3); \ +flag_X = (A) << (M68K_SR_X_SFT - 4); -#ifdef __cplusplus -extern "C" { -#endif +#define SET_SR(A) \ +SET_CCR(A) \ +flag_T = (A) & M68K_SR_T; \ +flag_S = (A) & M68K_SR_S; \ +flag_I = ((A) >> 8) & 7; \ +flag_M = (prefs_cpu_model >= M68020 ? (A) & M68K_SR_M : 0); -/* General purpose functions */ -void m68k_init(void); -u32 m68k_reset(void); -u32 m68k_emulate(s32 n); -u32 m68k_get_pc(void); -u32 m68k_get_cpu_state(void); -s32 m68k_fetch(u32 address, u32 memory_space); - -/* Interrupt handling functions */ -s32 m68k_raise_irq(s32 level, s32 vector); -s32 m68k_lower_irq(s32 level); -void m68k_burst_irq(s32 mask, s32 vector); -void m68k_set_irq_type(void *context, s32 type); -s32 m68k_get_irq_vector(s32 level); -s32 m68k_change_irq_vector(s32 level, s32 vector); - -/* CPU context handling functions */ -s32 m68k_get_context_size(void); -void m68k_get_context(void *context); -void m68k_set_context(void *context); -s32 m68k_get_register(m68k_register reg); -s32 m68k_set_register(m68k_register reg, u32 value); - -/* Timing functions */ -u32 m68k_get_cycles_counter(void); -u32 m68k_trip_cycles_counter(void); -u32 m68k_control_cycles_counter(s32 n); -void m68k_release_timeslice(void); -void m68k_add_cycles(s32 cycles); -void m68k_release_cycles(s32 cycles); - - -#ifdef __cplusplus -} -#endif +#define CHECK_INT_TO_JUMP(CLK) m68kcontext.more_cycles_to_do=m68kcontext.io_cycle_counter; m68kcontext.io_cycle_counter=0; +#define BANKEND_TAG ((u32)-1) -static void init_jump_table(void); /* Custom function handler */ typedef void (*icust_handler_func)(u32 vector); @@ -752,121 +347,94 @@ typedef void (*icust_handler_func)(u32 vector); // global variable /////////////////// -/* Main CPU context */ - -/* static */ M68K_CONTEXT m68kcontext __attribute__((aligned(32))); -/* static */ s32 io_cycle_counter; -u32 Opcode;// asm("r8"); +void *mem_handlerRB[M68K_DATABANK]; +void *mem_handlerRW[M68K_DATABANK]; +void *mem_handlerWB[M68K_DATABANK]; +void *mem_handlerWW[M68K_DATABANK]; +void *mem_data[M68K_DATABANK]; -static s32 cycles_needed=0; -static u16 *PC;// asm("r8"); -static u32 BasePC; -static u32 Fetch[M68K_FETCHBANK]; - -#ifdef FAMEC_USE_DATA_BANKS -typedef struct -{ - void *mem_handler; - void *data; -} M68K_INTERNAL_DATA; - -static M68K_INTERNAL_DATA DataRB[M68K_DATABANK]; -static M68K_INTERNAL_DATA DataRW[M68K_DATABANK]; -static M68K_INTERNAL_DATA DataWB[M68K_DATABANK]; -static M68K_INTERNAL_DATA DataWW[M68K_DATABANK]; -#else -#define DataRB m68kcontext.read_byte -#define DataRW m68kcontext.read_word -#define DataWB m68kcontext.write_byte -#define DataWW m68kcontext.write_word -#endif /* Custom function handler */ -#ifdef FAMEC_NO_GOTOS -typedef void (*opcode_func)(void); -#else -typedef const void* opcode_func; -#endif - -static opcode_func JumpTable[0x10000]; +typedef int (*opcode_func)(const u32 opcode, M68K_CONTEXT &m68kcontext); +static opcode_func JumpTable[0x10000] UAE4ALL_ALIGN; static u32 initialised = 0; // exception cycle table (taken from musashi core) static const s32 exception_cycle_table[256] = { - 4, // 0: Reset - Initial Stack Pointer - 4, // 1: Reset - Initial Program Counter - 50, // 2: Bus Error - 50, // 3: Address Error - 34, // 4: Illegal Instruction - 38, // 5: Divide by Zero - 40, // 6: CHK - 34, // 7: TRAPV - 34, // 8: Privilege Violation - 34, // 9: Trace - 4, // 10: - 4, // 11: - 4, // 12: RESERVED - 4, // 13: Coprocessor Protocol Violation - 4, // 14: Format Error - 44, // 15: Uninitialized Interrupt - 4, // 16: RESERVED - 4, // 17: RESERVED - 4, // 18: RESERVED - 4, // 19: RESERVED - 4, // 20: RESERVED - 4, // 21: RESERVED - 4, // 22: RESERVED - 4, // 23: RESERVED - 44, // 24: Spurious Interrupt - 44, // 25: Level 1 Interrupt Autovector - 44, // 26: Level 2 Interrupt Autovector - 44, // 27: Level 3 Interrupt Autovector - 44, // 28: Level 4 Interrupt Autovector - 44, // 29: Level 5 Interrupt Autovector - 44, // 30: Level 6 Interrupt Autovector - 44, // 31: Level 7 Interrupt Autovector - 34, // 32: TRAP #0 - 34, // 33: TRAP #1 - 34, // 34: TRAP #2 - 34, // 35: TRAP #3 - 34, // 36: TRAP #4 - 34, // 37: TRAP #5 - 34, // 38: TRAP #6 - 34, // 39: TRAP #7 - 34, // 40: TRAP #8 - 34, // 41: TRAP #9 - 34, // 42: TRAP #10 - 34, // 43: TRAP #11 - 34, // 44: TRAP #12 - 34, // 45: TRAP #13 - 34, // 46: TRAP #14 - 34, // 47: TRAP #15 - 4, // 48: FP Branch or Set on Unknown Condition - 4, // 49: FP Inexact Result - 4, // 50: FP Divide by Zero - 4, // 51: FP Underflow - 4, // 52: FP Operand Error - 4, // 53: FP Overflow - 4, // 54: FP Signaling NAN - 4, // 55: FP Unimplemented Data Type - 4, // 56: MMU Configuration Error - 4, // 57: MMU Illegal Operation Error - 4, // 58: MMU Access Level Violation Error - 4, // 59: RESERVED - 4, // 60: RESERVED - 4, // 61: RESERVED - 4, // 62: RESERVED - 4, // 63: RESERVED - // 64-255: User Defined - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 + 4, // 0: Reset - Initial Stack Pointer + 4, // 1: Reset - Initial Program Counter + 50, // 2: Bus Error + 50, // 3: Address Error + 34, // 4: Illegal Instruction + 38, // 5: Divide by Zero + 40, // 6: CHK + 34, // 7: TRAPV + 34, // 8: Privilege Violation + 34, // 9: Trace + 4, // 10: + 4, // 11: + 4, // 12: RESERVED + 4, // 13: Coprocessor Protocol Violation + 4, // 14: Format Error + 44, // 15: Uninitialized Interrupt + 4, // 16: RESERVED + 4, // 17: RESERVED + 4, // 18: RESERVED + 4, // 19: RESERVED + 4, // 20: RESERVED + 4, // 21: RESERVED + 4, // 22: RESERVED + 4, // 23: RESERVED + 44, // 24: Spurious Interrupt + 44, // 25: Level 1 Interrupt Autovector + 44, // 26: Level 2 Interrupt Autovector + 44, // 27: Level 3 Interrupt Autovector + 44, // 28: Level 4 Interrupt Autovector + 44, // 29: Level 5 Interrupt Autovector + 44, // 30: Level 6 Interrupt Autovector + 44, // 31: Level 7 Interrupt Autovector + 34, // 32: TRAP #0 + 34, // 33: TRAP #1 + 34, // 34: TRAP #2 + 34, // 35: TRAP #3 + 34, // 36: TRAP #4 + 34, // 37: TRAP #5 + 34, // 38: TRAP #6 + 34, // 39: TRAP #7 + 34, // 40: TRAP #8 + 34, // 41: TRAP #9 + 34, // 42: TRAP #10 + 34, // 43: TRAP #11 + 34, // 44: TRAP #12 + 34, // 45: TRAP #13 + 34, // 46: TRAP #14 + 34, // 47: TRAP #15 + 4, // 48: FP Branch or Set on Unknown Condition + 4, // 49: FP Inexact Result + 4, // 50: FP Divide by Zero + 4, // 51: FP Underflow + 4, // 52: FP Operand Error + 4, // 53: FP Overflow + 4, // 54: FP Signaling NAN + 4, // 55: FP Unimplemented Data Type + 4, // 56: MMU Configuration Error + 4, // 57: MMU Illegal Operation Error + 4, // 58: MMU Access Level Violation Error + 4, // 59: RESERVED + 4, // 60: RESERVED + 4, // 61: RESERVED + 4, // 62: RESERVED + 4, // 63: RESERVED + // 64-255: User Defined + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 }; @@ -874,443 +442,192 @@ static const s32 exception_cycle_table[256] = /* helper functions */ /********************/ +static void execute_exception_group_0(s32 vect, u16 inst_reg, s32 addr, u16 spec_info); -static void famec_SetFetch(u32 low_adr, u32 high_adr, u32 fetch_adr) -{ - u32 i, j; - - i = (low_adr >> M68K_FETCHSFT) & M68K_FETCHMASK; - j = (high_adr >> M68K_FETCHSFT) & M68K_FETCHMASK; - - while (i <= j) - Fetch[i++] = fetch_adr; +#define CHECK_BRANCH_EXCEPTION(_PC_,CYCLES) \ +if (unlikely((_PC_)&1)) \ +{ \ +u32 pr_PC = GET_PC; \ +execute_exception_group_0(M68K_ADDRESS_ERROR_EX, 0, pr_PC, 0x12 ); \ +RET(CYCLES) \ } -#ifdef FAMEC_USE_DATA_BANKS -static void famec_SetDataRB(u32 low_adr, u32 high_adr, void *mh, void *dt) +void famec_SetBank(u32 low_addr, u32 high_addr, u32 fetch, void *rb, void *rw, void *wb, void *ww, void *data) { u32 i, j; - - i = (low_adr >> M68K_DATASFT) & M68K_DATAMASK; - j = (high_adr >> M68K_DATASFT) & M68K_DATAMASK; - + + i = (low_addr >> M68K_DATASFT) & M68K_DATAMASK; + j = (high_addr >> M68K_DATASFT) & M68K_DATAMASK; + while (i <= j) - { - DataRB[i].mem_handler = mh; - DataRB[i++].data = dt; + { + Fetch[i] = fetch; + mem_handlerRB[i] = rb; + mem_handlerRW[i] = rw; + mem_handlerWB[i] = wb; + mem_handlerWW[i] = ww; + mem_data[i++] = data; } } -static void famec_SetDataRW(u32 low_adr, u32 high_adr, void *mh, void *dt) -{ - u32 i, j; - - i = (low_adr >> M68K_DATASFT) & M68K_DATAMASK; - j = (high_adr >> M68K_DATASFT) & M68K_DATAMASK; - while (i <= j) - { - DataRW[i].mem_handler = mh; - DataRW[i++].data = dt; - } -} +// Read / Write functions +//////////////////////////////// -static void famec_SetDataWB(u32 low_adr, u32 high_adr, void *mh, void *dt) -{ - u32 i, j; +#ifdef USE_ARMNEON - i = (low_adr >> M68K_DATASFT) & M68K_DATAMASK; - j = (high_adr >> M68K_DATASFT) & M68K_DATAMASK; +extern "C" u8 ARM_Read_Byte(u32 addr); +#define Read_Byte ARM_Read_Byte - while (i <= j) - { - DataWB[i].mem_handler = mh; - DataWB[i++].data = dt; - } -} +extern "C" u16 ARM_Read_Word(u32 addr); +#define Read_Word ARM_Read_Word -static void famec_SetDataWW(u32 low_adr, u32 high_adr, void *mh, void *dt) -{ - u32 i, j; +extern "C" u32 ARM_Read_Long(u32 addr); +#define Read_Long ARM_Read_Long - i = (low_adr >> M68K_DATASFT) & M68K_DATAMASK; - j = (high_adr >> M68K_DATASFT) & M68K_DATAMASK; +extern "C" void ARM_Write_Byte(u32 addr, u8 data); +#define Write_Byte ARM_Write_Byte - while (i <= j) - { - DataWW[i].mem_handler = mh; - DataWW[i++].data = dt; - } -} -#endif +extern "C" void ARM_Write_Word(u32 addr, u16 data); +#define Write_Word ARM_Write_Word -static void famec_SetBanks(void) -{ - u32 i=0; - while(m68kcontext.fetch[i].low_addr != (u32)-1) - { - famec_SetFetch(m68kcontext.fetch[i].low_addr,m68kcontext.fetch[i].high_addr,m68kcontext.fetch[i].offset); - i++; - } -#ifdef FAMEC_USE_DATA_BANKS - i=0; - while(m68kcontext.read_byte[i].low_addr != (u32)-1) - { - famec_SetDataRB(m68kcontext.read_byte[i].low_addr,m68kcontext.read_byte[i].high_addr,m68kcontext.read_byte[i].mem_handler,m68kcontext.read_byte[i].data); - i++; - } - i=0; - while(m68kcontext.read_word[i].low_addr != (u32)-1) - { - famec_SetDataRW(m68kcontext.read_word[i].low_addr,m68kcontext.read_word[i].high_addr,m68kcontext.read_word[i].mem_handler,m68kcontext.read_word[i].data); - i++; - } - i=0; - while(m68kcontext.write_byte[i].low_addr != (u32)-1) - { - famec_SetDataWB(m68kcontext.write_byte[i].low_addr,m68kcontext.write_byte[i].high_addr,m68kcontext.write_byte[i].mem_handler,m68kcontext.write_byte[i].data); - i++; - } - i=0; - while(m68kcontext.write_word[i].low_addr != (u32)-1) - { - famec_SetDataWW(m68kcontext.write_word[i].low_addr,m68kcontext.write_word[i].high_addr,m68kcontext.write_word[i].mem_handler,m68kcontext.write_word[i].data); - i++; - } -#endif -} +extern "C" void ARM_Write_Long(u32 addr, u32 data); +#define Write_Long ARM_Write_Long -// Read / Write functions -//////////////////////////////// +#else -static FAMEC_EXTRA_INLINE u32 Read_Byte(u32 addr) +static __attribute__ ((noinline)) u8 Read_Byte(u32 addr) { - u32 i=0; - s32 val; - + u32 i; + u8 val; + addr&=M68K_ADR_MASK; -#ifdef FAMEC_DEBUG - printf("Reading byte from addr = 0x%08X\n",addr); -#endif - -#ifndef FAMEC_USE_DATA_BANKS - while ( ((m68kcontext.read_byte[i].low_addr > addr) || (m68kcontext.read_byte[i].high_addr < addr)) && (m68kcontext.read_byte[i].low_addr != -1) ) - i++; - if (m68kcontext.read_byte[i].low_addr == -1) - return (u32)-1; -#else i=addr>>M68K_DATASFT; -#endif - - if (DataRB[i].mem_handler) - val = ((u8 (*)(s32))DataRB[i].mem_handler)(addr); - else - val = *((u8 *)(((u32)DataRB[i].data) + (addr^1))); - -#ifdef FAMEC_DEBUG - printf("Reading 0x%08X = 0x%04X...\n",addr,val); -#endif - + + if (mem_handlerRB[i]) + val = ((u8 (*)(s32))mem_handlerRB[i])(addr); + else { + val = *((u8 *)(((u32)mem_data[i]) + (addr^1))); + } + return val; } -static FAMEC_EXTRA_INLINE u32 Read_Word(u32 addr) +static __attribute__ ((noinline)) u16 Read_Word(u32 addr) { - u32 i=0; - s32 val; - + u32 i; + u32 val; + addr&=M68K_ADR_MASK; -#ifdef FAMEC_DEBUG - printf("Reading from addr = 0x%08X\n",addr); -#endif - -#ifndef FAMEC_USE_DATA_BANKS - while ( ((m68kcontext.read_word[i].low_addr > addr) || (m68kcontext.read_word[i].high_addr < addr)) && (m68kcontext.read_word[i].low_addr != -1) ) - i++; - if (m68kcontext.read_word[i].low_addr == -1) - return (u32)-1; -#else i=addr>>M68K_DATASFT; -#endif - - if (DataRW[i].mem_handler) - val = ((u16 (*)(s32))DataRW[i].mem_handler)(addr); - else - val = *((u16 *)(((u32)DataRW[i].data) + addr)); - -#ifdef FAMEC_DEBUG - printf("Reading 0x%08X = 0x%04X...\n",addr,val); -#endif - + + /* ! 68020+ CPUs can read/write words and longs at odd addresses ! */ + if (mem_handlerRW[i]) { + val = ((u16 (*)(s32))mem_handlerRW[i])(addr); + } + else { + if (unlikely(addr & 1)) { + /* Example: + * - memory loc. 0x00000000 : 0xeeff0011 (word-swabbed data) + * - read word from 0x00000001 : 0xee11 (unswabbed data) + */ + register u32 b; + b = *((u32 *)(((u32)mem_data[i]) + (addr ^ 1))); + val = (b << 8) | (b >> 24); + // u8 *pdata = (u8 *)((u32)DataWW[i].data + addr); + // val = *(pdata - 1) << 8; + // val |= *(pdata + 2); + } + else { + val = *((u16 *)(((u32)mem_data[i]) + addr)); + } + } + return val; } -static FAMEC_EXTRA_INLINE u32 Read_Long(const u32 addr) +static INLINE u32 Read_Long(u32 addr) { -#ifdef FAME_BIG_ENDIAN - return (Read_Word(addr) & 0xFFFF) | (Read_Word(addr + 2) << 16); -#else - return (Read_Word(addr) << 16) | (Read_Word(addr + 2) & 0xFFFF); -#endif + return (Read_Word(addr) << 16) | (Read_Word(addr + 2) /*& 0xFFFF*/); } -static FAMEC_EXTRA_INLINE void Write_Byte(u32 addr, u32 data) +static __attribute__ ((noinline)) void Write_Byte(u32 addr, u8 data) { - u32 i=0; - + u32 i; + addr&=M68K_ADR_MASK; -#ifdef FAMEC_DEBUG - printf("Writing byte 0x%08X = 0x%04X...\n",addr,data); -#endif -#ifndef FAMEC_USE_DATA_BANKS - while ( ((m68kcontext.write_byte[i].low_addr > addr) || (m68kcontext.write_byte[i].high_addr < addr)) && (m68kcontext.write_byte[i].low_addr != -1) ) - i++; - if (m68kcontext.write_byte[i].low_addr == -1) - return; -#else i=addr>>M68K_DATASFT; -#endif - - if (DataWB[i].mem_handler != NULL) - ((void (*)(s32, s32))DataWB[i].mem_handler)(addr,data); - else - *((u8 *)(((u32)DataWB[i].data)+ (addr^1))) = data; + + if (mem_handlerWB[i] != NULL) + ((void (*)(s32, s32))mem_handlerWB[i])(addr,data); + else { + *((u8 *)(((u32)mem_data[i]) + (addr^1))) = data; + } } - -static FAMEC_EXTRA_INLINE void Write_Word(u32 addr, u32 data) +static __attribute__ ((noinline)) void Write_Word(u32 addr, u16 data) { - u32 i=0; - + u32 i; + addr&=M68K_ADR_MASK; -#ifdef FAMEC_DEBUG - printf("Writing 0x%08X = 0x%04X...\n",addr,data); -#endif -#ifndef FAMEC_USE_DATA_BANKS - while ( ((m68kcontext.write_word[i].low_addr > addr) || (m68kcontext.write_word[i].high_addr < addr)) && (m68kcontext.write_word[i].low_addr != -1) ) - i++; - if (m68kcontext.write_word[i].low_addr == -1) - return; -#else i=addr>>M68K_DATASFT; -#endif - - if (DataWW[i].mem_handler != NULL) - ((void (*)(s32, s32))DataWW[i].mem_handler)(addr,data); - else - *((u16 *)(((u32)DataWW[i].data) + addr)) = data; + + /* ! 68020+ CPUs can read/write words and longs at odd addresses ! */ + if (mem_handlerWW[i]) { + ((void (*)(s32, s32))mem_handlerWW[i])(addr,data); + } + else { + if (unlikely(addr & 1)) { + u8 *pdata = (u8 *)((u32)mem_data[i] + addr); + + /* Example: + * - memory loc. 0x00000000 : 0xeeff0011 (word-swabbed data) + * - write 0x2233 to 0x00000001 : 0x22ff0033 + */ + *(pdata - 1) = data >> 8; + *(pdata + 2) = data; + } + else { + *((u16 *)(((u32)mem_data[i]) + addr)) = data; + } + } } -static FAMEC_EXTRA_INLINE void Write_Long(const u32 addr, u32 data) +static INLINE void Write_Long(u32 addr, u32 data) { -#ifdef FAME_BIG_ENDIAN - Write_Word(addr, data & 0xFFFF); - Write_Word(addr + 2, data >> 16); -#else - Write_Word(addr, data >> 16); - Write_Word(addr + 2, data & 0xFFFF); -#endif + Write_Word(addr, data >> 16); + Write_Word(addr + 2, data /*& 0xFFFF*/); } -/***********************/ -/* disassembler code */ -/***********************/ -#if DISASSEMBLER - -# include "Disa.h" -# include "disassembler.h" -# include "DisaLogging.h" - -FILE *g_logOutput = stdout; - -#define flag_x (flag_X & 0x100) -#define flag_n (flag_N & 0x80) -#define flag_z (!flag_NotZ) -#define flag_v (flag_V & 0x80) -#define flag_c (flag_C & 0x80) - -#define flag_Xx (flag_x ? 'X' : 'x') -#define flag_Nn (flag_n ? 'N' : 'n') -#define flag_Zz (flag_z ? 'Z' : 'z') -#define flag_Vv (flag_v ? 'V' : 'v') -#define flag_Cc (flag_c ? 'C' : 'c') -#define _68k_areg(X) AREG(X) -#define _68k_dreg(X) DREGu32(X) - -#pragma mark - -#pragma mark BREAKPOINTS - -void check_breakpoints() { - u32 cPC = GET_PC; - - static int count = 0; - - switch (cPC) { - case 0x53d0: - count++; - if (count == 1) { - do_disa = 1; - } - break; - } -} - -unsigned short DisaGetWord(unsigned int a) { - return Read_Word(a); -} - -#define MODE_BINARY 1 -#define MODE_TEXT_TABS 2 -#define MODE_TEXT_SPACES 3 - -#define DISASSEMBLER_OUTPUT MODE_BINARY - -#define DISASSEMBLER_LIMIT 1000000 - -#define INSTRUCTION_LOGLEVEL 3 - -u16 *DPC; - -static void DisaStep() { - DisaPc = GET_PC; -#if DISASSEMBLER_OUTPUT != MODE_BINARY - DisaGet(); - DisaPc = GET_PC; -#else - DPC = PC; #endif -} -static void DisaPostStep() { -#if DISASSEMBLER_LIMIT - disa_step++; -#endif - -#if DISASSEMBLER_OUTPUT == MODE_BINARY - -#if INSTRUCTION_LOGLEVEL == 0 - const uint8_t rType = EntryTypeInstructionL0; -#elif INSTRUCTION_LOGLEVEL == 1 - const uint8_t rType = EntryTypeInstructionL1; -#else - const uint8_t rType = EntryTypeInstructionL2; -#endif - fwrite(&rType, sizeof(rType), 1, g_logOutput); - - fwrite(&DisaPc, 4, 1, g_logOutput); - fwrite(DPC, 4, 3, g_logOutput); - uint8_t ccr = GET_CCR; - fwrite(&ccr, 1, 1, g_logOutput); - -#if INSTRUCTION_LOGLEVEL > 0 - u8 inscycles = INSTRUCTION_CYCLES; - fwrite(&inscycles, 1, 1, g_logOutput); -#endif - -#if INSTRUCTION_LOGLEVEL > 1 - fwrite(&DREG(0), 4, 16, g_logOutput); -#endif - -#elif DISASSEMBLER_OUTPUT == MODE_TEXT_TABS - fprintf(g_logOutput, "%06x:\t%s\t%c%c%c%c%c", DisaPc, DisaText, - flag_Xx, flag_Nn, flag_Zz, flag_Vv, flag_Cc); - - fprintf(g_logOutput, "\tA0=%.8X\tA1=%.8X\tA2=%.8X\tA3=%.8X",_68k_areg(0),_68k_areg(1),_68k_areg(2),_68k_areg(3)); - fprintf(g_logOutput, "\tA4=%.8X\tA5=%.8X\tA6=%.8X\tA7=%.8X",_68k_areg(4),_68k_areg(5),_68k_areg(6),_68k_areg(7)); - fprintf(g_logOutput, "\tD0=%.8X\tD1=%.8X\tD2=%.8X\tD3=%.8X",_68k_dreg(0),_68k_dreg(1),_68k_dreg(2),_68k_dreg(3)); - fprintf(g_logOutput, "\tD4=%.8X\tD5=%.8X\tD6=%.8X\tD7=%.8X",_68k_dreg(4),_68k_dreg(5),_68k_dreg(6),_68k_dreg(7)); - - fprintf(g_logOutput, "\n"); - -#else - fprintf(g_logOutput, "%06x %06x: %-35s %c%c%c%c%c\n", disa_step, DisaPc, DisaText, - flag_Xx, flag_Nn, flag_Zz, flag_Vv, flag_Cc); -#endif - -#if DISASSEMBLER_LIMIT - // limit - if (disa_step > DISASSEMBLER_LIMIT) { - do_disa = 0; - disa_step = 0; - DisaCloseFile(); - } -#endif -} - -static void DisaLogException(s32 vect, u32 oldPC, u32 newPC) { - uint8_t rType = EntryTypeException; - fwrite(&rType, sizeof(rType), 1, g_logOutput); - - tagExceptionRecord rec = { - vect, oldPC, newPC - }; - fwrite(&rec, sizeof(rec), 1, g_logOutput); -} - -void DisaInitialize() { - static char buffer[512]; - DisaWord = &DisaGetWord; - DisaText = buffer; - - DisaCreateFile(1); -} - -void DisaLogEmulateStart(s32 cycles, u32 total_cycles) { - uint8_t rType = EntryTypeEmulateStart; - fwrite(&rType, sizeof(rType), 1, g_logOutput); - - tagEmulateStart rec = { - cycles, total_cycles - }; - fwrite(&rec, sizeof(rec), 1, g_logOutput); -} - -#define DISA_STEP() if (do_disa) DisaStep(); -#define DISA_POST_STEP() if (do_disa) DisaPostStep(); -#define DISA_LOGEXCEPTION() if (do_disa) DisaLogException(vect, oldPC, newPC); -#define DISA_EMULATE_START(cycles, total_cycles) if (do_disa) DisaLogEmulateStart(cycles, total_cycles); - -#else - -#define DISA_STEP() -#define DISA_POST_STEP() -#define DISA_LOGEXCEPTION() -#define DISA_EMULATE_START(cycles, total_cycles) - -#endif /***********************/ /* core main functions */ /***********************/ +static void m68k_jumptable000(int force_table); +static void m68k_jumptable020(int force_table); /***************************************************************************/ /* m68k_init() */ /* Debe ser llamado para inicializar la tabla de saltos de instruccion */ /* No recibe parametros y no devuelve nada */ /***************************************************************************/ -void m68k_init(void) +void m68k_init(int force_table) { -#ifdef FAMEC_DEBUG - puts("Initializing FAME..."); -#endif - - if (!initialised) { - m68k_emulate(0); - -#if DISASSEMBLER - DisaInitialize(); -#endif - - } -#ifdef FAMEC_DEBUG - puts("FAME initialized."); -#endif + if (!initialised || force_table) + { + if(prefs_cpu_model >= M68020) + m68k_jumptable020(force_table); + else + m68k_jumptable000(force_table); + } } /******************************************************************************/ @@ -1325,186 +642,52 @@ void m68k_init(void) u32 m68k_reset(void) { u32 i=0; - + if (!initialised) - m68k_emulate(0); - + { + if(prefs_cpu_model >= M68020) + m68k_jumptable020(0); + else + m68k_jumptable000(0); + } + // Si la CPU esta en ejecucion, salir con M68K_RUNNING if (m68kcontext.execinfo & M68K_RUNNING) return M68K_RUNNING; - - // Si no hay mapa de memoria supervisor, salir con M68K_NO_SUP_ADDR_SPACE - if (!m68kcontext.sv_fetch) - return M68K_NO_SUP_ADDR_SPACE; - - m68kcontext.fetch = m68kcontext.sv_fetch; - m68kcontext.read_byte = m68kcontext.sv_read_byte; - m68kcontext.read_word = m68kcontext.sv_read_word; - m68kcontext.write_byte = m68kcontext.sv_write_byte; - m68kcontext.write_word = m68kcontext.sv_write_word; - + // Resetear registros memset(&m68kcontext.dreg[0], 0, 16*4); - // Resetear interrupts, execinfo y ASP + // Resetear interrupts, execinfo y USP m68kcontext.interrupts[0] = 0; for(i=1;i<8;i++) m68kcontext.interrupts[i]=i+0x18; m68kcontext.execinfo = 0; - ASP = 0; - + USP = MSP = ISP = 0; + m68kcontext.vbr = m68kcontext.sfc = m68kcontext.dfc = 0; + m68kcontext.caar = m68kcontext.cacr = 0; + flag_S = 1; + flag_M = 0; + // Fijar registro de estado m68kcontext.sr = 0x2700; // Obtener puntero de pila inicial y PC - AREG(7) = Read_Long(0); - m68kcontext.pc = Read_Long(4); - -#if DISASSEMBLER - DisaCloseFile(); - DisaCreateFile(1); -#endif - -#ifdef FAMEC_DEBUG - puts("Reset 68k done!\n"); - printf("PC = 0x%08X\n",m68kcontext.pc); -#endif - - return M68K_OK; -} - - -/******************************************************************************/ -/* m68k_raise_irq(level,vector) */ -/* Parametros: level = nivel de interrupcion */ -/* vector = puntero a la direccion de la rutina de atencion */ -/* -1 auto, -2 interrupcion espuria */ -/* Retorno: Exito de la operacion */ -/* 0 La interrupcion se ha habilitado satisfactoriamente */ -/* -1 No se ha podido habilitar porque ya existe otra interrupcion */ -/* en ese nivel. */ -/* -2 No se ha podido habilitar porque el vector no es valido o */ -/* el nivel es igual a 0. */ -/******************************************************************************/ -s32 m68k_raise_irq(s32 level, s32 vector) -{ - /* Enmascarar nivel de interrupcion */ - level &=7; - - /* Nivel de interrupcion = 0 no es valido */ - if (!level) return M68K_IRQ_INV_PARAMS; - - /* Comprobar si existe una interrupcion activada en ese nivel */ - if (m68kcontext.interrupts[0] & (1 << level)) - return M68K_IRQ_LEVEL_ERROR; - - /* El vector de interrupcion no puede ser > 255 ni menor que -2 */ - if ((vector > 255) || (vector < M68K_SPURIOUS_IRQ)) - { - return M68K_IRQ_INV_PARAMS; - } - - /* Dar de alta la interrupcion en interrupts */ - m68kcontext.interrupts[0] |= (1 << level); - - switch(vector) - { - case M68K_SPURIOUS_IRQ: - m68kcontext.interrupts[level] = 0x18; - break; - case M68K_AUTOVECTORED_IRQ: - m68kcontext.interrupts[level] = level + 0x18; - break; - default: - m68kcontext.interrupts[level] = vector; - break; - } -#ifdef FAMEC_DEBUG - printf("RAISE interrupts[%i]=0x%X\n",level,m68kcontext.interrupts[level]); -#endif - - /* Testear si la CPU esta detenida (mediante STOP) */ - if (m68kcontext.execinfo & M68K_HALTED) - { - /* Si la IRQ es NMI o si supera la mascara de interrupcion, */ - /* salir de estado parado */ - if ((level == 7) || (level > ((m68kcontext.sr >> 8) & 0x7))) - { - m68kcontext.execinfo &= ~M68K_HALTED; - } - } + AREG(7) = Read_Long(/*0x00F8000*/0); + m68kcontext.pc = Read_Long(/*0x00F8000*/4); return M68K_OK; } -/******************************************************************************/ -/* m68k_lower_irq(level) */ -/* Parametros: Nivel de la interrupcion a retirar */ -/* Retorno: Exito de la operacion */ -/* 0 La interrupcion se ha retirado satisfactoriamente */ -/* -1 No se ha podido retirar porque esa interrupcion */ -/* no esta habilitada. */ -/* -2 No se ha podido retirar porque el nivel es 0 o mayor */ -/* o igual que 7 (no se puede retirar la NMI) */ -/******************************************************************************/ -s32 m68k_lower_irq(s32 level) -{ - /* Enmascarar nivel de interrupcion */ - level &=7; - - /* Nivel de interrupcion = 0 no es valido */ - if (!level) return M68K_IRQ_INV_PARAMS; - - /* La interrupcion de nivel 7 (NMI) no se puede bajar */ - if (level > 6) - { - return M68K_IRQ_INV_PARAMS; - } - - /* Comprobar que la interrupcion este activada */ - if (m68kcontext.interrupts[0] & (1 << level)) - { - /* Dar de baja la interrupcion */ - m68kcontext.interrupts[0] &= ~(1 << level); - } - else - { - return M68K_IRQ_LEVEL_ERROR; - } - - return M68K_OK; -} - -/******************************************************************************/ -/* m68k_get_context_size */ -/* No recibe parametros */ -/* Retorno: Tamano del contexto en bytes */ -/******************************************************************************/ -s32 m68k_get_context_size(void) -{ - return sizeof(M68K_CONTEXT); -} - -/***************************************************************************/ -/* m68k_get_context(address) */ -/* Parametro: Direccion del contexto */ -/* No retorna ningun valor */ /***************************************************************************/ -void m68k_get_context(void *context) -{ - memcpy(context,&m68kcontext,sizeof(M68K_CONTEXT)); -} - -/***************************************************************************/ -/* m68k_set_context(address) */ +/* address=m68k_get_context(address) */ /* Parametro: Direccion del contexto */ /* No retorna ningun valor */ /***************************************************************************/ -void m68k_set_context(void *context) +M68K_CONTEXT *m68k_get_context(void) { - memcpy(&m68kcontext,context,sizeof(M68K_CONTEXT)); - famec_SetBanks(); + return &m68kcontext; } /****************************************************************************/ @@ -1517,57 +700,12 @@ u32 m68k_get_pc(void) return (m68kcontext.execinfo & M68K_RUNNING)?(u32)PC-BasePC:m68kcontext.pc; } -/***************************************************************************/ -/* m68k_get_register(register) */ -/* Parametro: Registro a obtener valor (indice) */ -/* Retorno: Valor del registro requerido */ -/* Observacion: En caso de que el indice no sea correcto */ -/* la funcion devolvera -1 */ -/***************************************************************************/ -s32 m68k_get_register(m68k_register reg) -{ - switch(reg) - { - case M68K_REG_D0: - case M68K_REG_D1: - case M68K_REG_D2: - case M68K_REG_D3: - case M68K_REG_D4: - case M68K_REG_D5: - case M68K_REG_D6: - case M68K_REG_D7: - return DREG(reg - M68K_REG_D0); - - case M68K_REG_A0: - case M68K_REG_A1: - case M68K_REG_A2: - case M68K_REG_A3: - case M68K_REG_A4: - case M68K_REG_A5: - case M68K_REG_A6: - case M68K_REG_A7: - return AREG(reg - M68K_REG_A0); - - case M68K_REG_ASP: - return ASP; - - case M68K_REG_PC: - return m68k_get_pc(); - - case M68K_REG_SR: - return m68kcontext.sr; - - default: - return M68K_INV_REG; - } -} - /***********************************************************************/ /* m68k_set_register(register,value) */ -/* Parametros: Register (index) and value to assign */ -/* Retorno: Successful operation */ -/* 0 The operation has been successful */ -/* 1 The register index is invalid (out of bounds) */ +/* Parametros: Registro (indice) y valor a asignar */ +/* Retorno: Exito de la operacion */ +/* 0 La operacion se ha realizado satisfactoriamente */ +/* 1 El indice del registro no es valido (fuera de limites) */ /***********************************************************************/ s32 m68k_set_register(m68k_register reg, u32 value) { @@ -1583,7 +721,7 @@ s32 m68k_set_register(m68k_register reg, u32 value) case M68K_REG_D7: DREG(reg - M68K_REG_D0) = value; break; - + case M68K_REG_A0: case M68K_REG_A1: case M68K_REG_A2: @@ -1594,11 +732,11 @@ s32 m68k_set_register(m68k_register reg, u32 value) case M68K_REG_A7: AREG(reg - M68K_REG_A0) = value; break; - - case M68K_REG_ASP: - ASP = value; + + case M68K_REG_USP: + USP = value; break; - + case M68K_REG_PC: if (m68kcontext.execinfo & M68K_RUNNING) { @@ -1609,150 +747,44 @@ s32 m68k_set_register(m68k_register reg, u32 value) m68kcontext.pc = value; } break; - + case M68K_REG_SR: - m68kcontext.sr = value & 0xFFFF; + if (m68kcontext.execinfo & M68K_RUNNING) + { + SET_SR(value); + } + else + { + m68kcontext.sr = value & 0xFFFF; + } break; - + default: return M68K_INV_REG; } - + return M68K_OK; } /*********************************************************/ /* m68k_fetch(address,access_type) */ -/* Read a word of the memory space of 68k */ -/* Parametro: Address of the word and type of access */ -/* Retorno: The word or -1 if dir. not valid */ +/* Lee una palabra del espacio de memoria del 68k */ +/* Parametro: Direccion de la palabra y tipo de acceso */ +/* Retorno: La palabra o -1 en caso de dir. no valida */ /*********************************************************/ -s32 m68k_fetch(u32 addr, u32 memory_space) +s32 m68k_fetch(u32 addr) { - u32 i=0; s32 val; - M68K_DATA *ds = NULL; - M68K_PROGRAM *ps = NULL; - - switch(memory_space & 2) - { - case M68K_SUP_ADDR_SPACE: - if ((memory_space & 1) == M68K_PROG_ADDR_SPACE) - ps = m68kcontext.sv_fetch; - else - ds = m68kcontext.sv_read_word; - break; - - case M68K_USER_ADDR_SPACE: - if ((memory_space & 1) == M68K_PROG_ADDR_SPACE) - ps = m68kcontext.user_fetch; - else - ds = m68kcontext.user_read_word; - break; - } - - if (ps == NULL) - { - while ( ((ds[i].low_addr > addr) || (ds[i].high_addr < addr)) && (ds[i].low_addr != (u32)-1) ) - { - #ifdef FAMEC_DEBUG - printf("RW not found in %d region... 0x%08X - 0x%08X --> 0x%08X\n",i,ds[i].low_addr,ds[i].high_addr,addr); - #endif - - i++; - } - - if (ds[i].low_addr == (u32)-1) - { - /* Error de BUS */ - #ifdef FAMEC_DEBUG - printf("ERROR de BUS en region %d...\n",i); - #endif - return -1; - } - else - { - if (ds[i].mem_handler != NULL) - { - #ifdef FAMEC_DEBUG - puts("Handled...\n"); - #endif - val = ((u16 (*)(s32))ds[i].mem_handler)(addr); - } - else - { - #ifdef FAMEC_DEBUG - printf("Ptr en region %d... addr: %p\n",i,ds[i].data); - #endif - val = *((u16 *)(((u32)ds[i].data) + addr)); - #ifdef FAMEC_DEBUG - puts("read"); - #endif - } - } - - #ifdef FAMEC_DEBUG - printf("Reading 0x%08X = 0x%04X...\n",addr,val); - #endif - } - else - { - u16 *PC; - u32 BasePC; - - SET_PC_BASE(PC,BasePC,addr) - #ifdef FAMEC_DEBUG - printf("BasePC = %08X, PC = %08X, addr=%08X\n",BasePC,PC,addr); - #endif - val = *PC; - } - - return val; -} - -/******************************************************/ -/* m68k_get_cycles_counter() */ -/* Retorna el cycles_counter */ -/* Parametro: Ninguno */ -/* Retorno: cycles_counter */ -/******************************************************/ -u32 m68k_get_cycles_counter (void) -{ - return (m68kcontext.execinfo & M68K_RUNNING)?io_cycle_counter:m68kcontext.cycles_counter; -} - -/******************************************************/ -/* m68k_trip_cycles_counter() */ -/* Retorna el cycles_counter y lo reinicializa */ -/* Parametro: Ninguno */ -/* Retorno: cycles_counter */ -/******************************************************/ -u32 m68k_trip_cycles_counter(void) -{ - s32 aux; - - // TODO Cycles - if (m68kcontext.execinfo & M68K_RUNNING) - { - aux = io_cycle_counter; - return aux; - } - else - { - } + u32 Base; + u16 *ptr; + + Base = Fetch[(addr >> M68K_FETCHSFT) & M68K_FETCHMASK]; + ptr = (u16*)((addr & M68K_ADR_MASK) + Base); + val = *ptr; + + return val; } -/**********************************************************/ -/* m68k_control_cycles_counter(n) */ -/* Retorna el cycles_counter y lo reinicializa si */ -/* cycles_counter = n */ -/* Parametro: ciclos = n */ -/* Retorno: cycles_counter */ -/**********************************************************/ -u32 m68k_control_cycles_counter(s32 cycles) -{ - return (cycles)?m68k_trip_cycles_counter():m68k_get_cycles_counter(); -} /******************************************************/ /* m68k_release_timeslice() */ @@ -1765,137 +797,151 @@ void m68k_release_timeslice(void) { if (m68kcontext.execinfo & M68K_RUNNING) { - io_cycle_counter = 0; - } - else - { - } -// m68kcontext.CycleToDo -= m68kcontext.CycleIO + m68kcontext.CycleSup; -// m68kcontext.CycleIO = m68kcontext.CycleSup = 0; -} - -/******************************************************/ -/* m68k_add_cycles() */ -/* Incrementa los ciclos de reloj a ejecutar por la */ -/* CPU en las llamadas a emulate */ -/* Parametro: Ninguno */ -/* Retorno: Ninguno */ -/******************************************************/ -void m68k_add_cycles(s32 cycles) -{ - if (m68kcontext.execinfo & M68K_RUNNING) - { - io_cycle_counter += cycles; - } - else - { - m68kcontext.cycles_counter += cycles; - } -} - - -/******************************************************/ -/* m68k_release_cycles() */ -/* Decrementa los ciclos de reloj a ejecutar por la */ -/* CPU en las llamadas a emulate */ -/* Parametro: Ninguno */ -/* Retorno: Ninguno */ -/******************************************************/ -void m68k_release_cycles(s32 cycles) -{ - if (m68kcontext.execinfo & M68K_RUNNING) - { - io_cycle_counter -= cycles; + m68kcontext.cycles_not_done = m68kcontext.io_cycle_counter >> mainMenu_CPU_speed; + m68kcontext.io_cycle_counter = 0; } - else - { - m68kcontext.cycles_counter -= cycles; - } -} - -/*****************************************************************************/ -/* m68k_get_cpu_state() */ -/* No recibe parametros */ -/* Retorna el estado de la CPU */ -/*****************************************************************************/ -u32 m68k_get_cpu_state (void) -{ - return m68kcontext.execinfo; } - - ////////////////////////// // Chequea las interrupciones y las inicia -static FAMEC_EXTRA_INLINE s32 interrupt_chk__(void) +static FAMEC_EXTRA_INLINE s32 interrupt_chk__(M68K_CONTEXT &m68kcontext) { if ((m68kcontext.interrupts[0]>>1)) { if (m68kcontext.interrupts[0]&0x80) return 7; else - if (m68kcontext.interrupts[0]&0x40) - { - if (6 > flag_I) - return 6; - } - else - if (m68kcontext.interrupts[0]&0x20) - { - if (5 > flag_I) - return 5; - } - else - if (m68kcontext.interrupts[0]&0x10) - { - if (4 > flag_I) - return 4; - } - else - if (m68kcontext.interrupts[0]&0x08) - { - if (3 > flag_I) - return 3; - } - else - if (m68kcontext.interrupts[0]&0x04) - { - if (2 > flag_I) - return 2; - } - else - if (m68kcontext.interrupts[0]&0x02) - { - if (1 > flag_I) - return 1; - } + if (m68kcontext.interrupts[0]&0x40) + { + if (6 > flag_I) + return 6; + } + else + if (m68kcontext.interrupts[0]&0x20) + { + if (5 > flag_I) + return 5; + } + else + if (m68kcontext.interrupts[0]&0x10) + { + if (4 > flag_I) + return 4; + } + else + if (m68kcontext.interrupts[0]&0x08) + { + if (3 > flag_I) + return 3; + } + else + if (m68kcontext.interrupts[0]&0x04) + { + if (2 > flag_I) + return 2; + } + else + if (m68kcontext.interrupts[0]&0x02) + { + if (1 > flag_I) + return 1; + } } - -#ifdef FAMEC_EMULATE_TRACE + if (flag_T) - { -/* - m68kcontext.execinfo |= M68K_EMULATE_TRACE; - cycles_needed= io_cycle_counter; - io_cycle_counter=0; -*/ return -1; - } -#endif + return 0; } +/* Called from execute_exception() *and* uae_chk_handler() to process stack and PC */ +void process_exception(unsigned int vect) +{ + u32 newPC; + u32 oldPC = (u32)(PC) - BasePC; + u32 oldSR = GET_SR; + + // TomB 02.12.2013: 68000 reference manual says, trace-flag is always cleared + flag_T = 0; + + if (!flag_S) + { + USP = AREG(7); + if (prefs_cpu_model >= M68020) + AREG(7) = flag_M ? MSP : ISP; + else + AREG(7) = ISP; + /* adjust SR */ + flag_S = M68K_SR_S; + } + + if (prefs_cpu_model > M68000) { + /* 68010, 68020 & 68030. 68040 code has not been ported from WinUAE */ + if ((vect == 2) || (vect == 3)) { + int i; + u16 ssw = (flag_S ? 4 : 0) | (0/*last_instructionaccess_for_exception_3*/ ? 2 : 1); + ssw |= 0/*last_writeaccess_for_exception_3*/ ? 0 : 0x40; + ssw |= 0x20; + for (i = 0 ; i < 36; i++) { + PUSH_16_F(0); + } + PUSH_32_F(0/*last_fault_for_exception_3*/); + PUSH_16_F(0); + PUSH_16_F(0); + PUSH_16_F(0); + PUSH_16_F(ssw); + PUSH_16_F(0xb000 + vect * 4); + } else if ((vect == 5) || (vect == 6) || (vect == 7) || (vect == 9)) { + PUSH_32_F(oldPC); + PUSH_16_F(0x2000 + vect * 4); + } else if (flag_M && vect >= 24 && vect < 32) { /* M + Interrupt */ + PUSH_16_F(vect * 4); + PUSH_32_F(oldPC); + PUSH_16_F(oldSR); + m68kcontext.sr |= (1 << 13); + MSP = AREG(7); + AREG(7) = ISP; + PUSH_16_F(0x1000 + vect * 4); + } else { + PUSH_16_F(vect * 4); + } + + PUSH_32_F(oldPC); + PUSH_16_F(oldSR); + + flag_M = 0; + } + // else if ((vect == 2) || (vect == 3)) { + // /* Bus / address error */ + // uae_u16 mode = (sv ? 4 : 0) | (last_instructionaccess_for_exception_3 ? 2 : 1); + // mode |= last_writeaccess_for_exception_3 ? 0 : 16; + // m68k_areg (regs, 7) -= 14; + // /* bit3=I/N */ + // put_word (m68k_areg (regs, 7) + 0, mode); + // put_long (m68k_areg (regs, 7) + 2, last_fault_for_exception_3); + // put_word (m68k_areg (regs, 7) + 6, last_op_for_exception_3); + // put_word (m68k_areg (regs, 7) + 8, regs->sr); + // put_long (m68k_areg (regs, 7) + 10, last_addr_for_exception_3); + // } + else { + /* 68000 */ + PUSH_32_F(oldPC) + PUSH_16_F(oldSR) + } + + READ_LONG_F(m68kcontext.vbr + vect * 4, newPC) + newPC &= M68K_ADR_MASK; + + SET_PC(newPC) +} static FAMEC_EXTRA_INLINE void execute_exception(s32 vect) { -extern u32 flag_S; -#ifndef FAMEC_IRQ_CYCLES - if ((vect<24)||(vect>31)) -#endif - io_cycle_counter -= exception_cycle_table[vect]; + m68kcontext.io_cycle_counter -= (exception_cycle_table[vect]); + /* comprobar si hay tabla funciones manejadoras */ - if (m68kcontext.icust_handler && m68kcontext.icust_handler[vect]) + if (m68kcontext.icust_handler[vect]) { m68kcontext.sr = GET_SR; m68kcontext.pc = GET_PC; @@ -1904,45 +950,29 @@ extern u32 flag_S; } else { - u32 newPC; - u32 oldPC; - u32 oldSR = GET_SR; - - PRE_IO - - READ_LONG_F(vect * 4, newPC) - - /* swap A7 and USP */ - if (!flag_S) - { - u32 tmpSP; - - tmpSP = ASP; - ASP = AREG(7); - AREG(7) = tmpSP; - } - - oldPC = (u32)(PC) - BasePC; - PUSH_32_F(oldPC) - PUSH_16_F(oldSR) - - /* adjust SR */ - flag_S = M68K_SR_S; - - newPC&=M68K_ADR_MASK; - - SET_PC(newPC) - - DISA_LOGEXCEPTION(); - - POST_IO + process_exception(vect); } } -static FAMEC_EXTRA_INLINE void execute_exception_group_0(s32 vect, u16 inst_reg, s32 addr, u16 spec_info) + +static FAMEC_EXTRA_INLINE void interrupt_attend(s32 line) +{ + /* al atender la IRQ, la CPU sale del estado parado */ + m68kcontext.execinfo &= ~M68K_HALTED; + + /* Desactivar interrupcion */ + m68kcontext.interrupts[0] &= ~(1 << ((u32)line)); + + execute_exception(m68kcontext.interrupts[(u32)line]); + + flag_I = (u32)line; +} + + +static INLINE void execute_exception_group_0(s32 vect, u16 inst_reg, s32 addr, u16 spec_info) { execute_exception(vect); - if (!(m68kcontext.icust_handler && m68kcontext.icust_handler[vect])) + if (!(m68kcontext.icust_handler[vect])) { PUSH_16_F(inst_reg); PUSH_32_F(addr); @@ -1950,4199 +980,777 @@ static FAMEC_EXTRA_INLINE void execute_exception_group_0(s32 vect, u16 inst_reg, } } -#ifdef FAMEC_NO_GOTOS -#define OPCODE(N_OP) static void OP_##N_OP(void) -#define CAST_OP(N_OP) (opcode_func)&OP_##N_OP -#include "famec_opcodes.h" -#endif +/* Performs the required actions to finish the emulate call */ +static INLINE void finish_emulate(const s32 cycles_to_add) +{ + m68kcontext.sr = GET_SR; + m68kcontext.pc = GET_PC; + + m68kcontext.execinfo &= ~M68K_RUNNING; + + /* Actualizar contador de ciclos */ + m68kcontext.cycles_counter += cycles_to_add; +} -// main exec function -////////////////////// +#define EXECUTE_EXCEPTION(EX,CYCLES) \ +{ \ +u32 oldPC=GET_PC; \ +SET_PC(oldPC-2) \ +execute_exception(EX); \ +RET(CYCLES) \ +} -/***************************************************************************/ -/* m68k_emulate() */ -/* Parametros: Numero de ciclos a ejecutar */ -/* Retorno: Exito de la operaciÛn */ -/* 0 La operacion se ha realizado satisfactoriamente */ -/* -1 La CPU esta detenida debido a un ERROR DE BUS DOBLE (linea) */ -/* El PC ha salido de los limites (bucle no en linea) */ -/***************************************************************************/ +static void TRAPCC_EXECUTE (u32 Opcode) +{ + u8 do_trap; + int c = (flag_C >> M68K_SR_C_SFT) & 1; + int z = (flag_NotZ == 0); + int n = (flag_N >> M68K_SR_N_SFT) & 1; + int v = (flag_V >> M68K_SR_V_SFT) & 1; + + switch((Opcode >> 8) & 0xF) { + case 0: do_trap = 1; break; + case 1: do_trap = 0; break; + case 2: do_trap = !c && !z; break; + case 3: do_trap = c || z; break; + case 4: do_trap = !c; break; + case 5: do_trap = c; break; + case 6: do_trap = !z; break; + case 7: do_trap = z; break; + case 8: do_trap = !v; break; + case 9: do_trap = v; break; + case 10: do_trap = !n; break; + case 11: do_trap = n; break; + case 12: do_trap = n && v || !n && !v; break; + case 13: do_trap = n && !v || !n && v; break; + case 14: do_trap = n && v && !z || !n && !v && !z; break; + case 15: do_trap = z || n && !v || !n && v; break; + } + if (do_trap) + execute_exception(M68K_TRAPV_EX); +} -extern long breakpoint = 0; -u32 m68k_emulate(s32 cycles) -{ - -if(m68kcontext.pc == breakpoint) +/* Bit Field Instructions + * + * NOTE: Offset is from the most-significant bit, *not* from the least-significant one. + * http://www-scm.tees.ac.uk/users/a.clements/BF/BF.htm + */ +#define BF_MASK(MASK, OFFSET, WIDTH) \ +MASK = 0xFFFFFFFF; \ +if ((OFFSET + WIDTH) < 32) { \ +MASK <<= OFFSET; \ +MASK >>= 32 - WIDTH; \ +} + +#define BF_SHIFT_DOWN(DATA, OFFSET, WIDTH) \ +DATA <<= OFFSET; \ +DATA >>= 32 - WIDTH; + +#define BF_SHIFT_UP(DATA, OFFSET, WIDTH) \ +DATA <<= 32 - WIDTH; \ +DATA >>= OFFSET; + +#define BF_EXTS(DATA, WIDTH, MASK) \ +DATA |= (((DATA >> (WIDTH - 1)) - 1) & ~MASK) ^ ~MASK; + +#define BF_SET_FLAGS(DATA, WIDTH) \ +flag_N = (DATA << (32 - WIDTH)) >> 24; /*((DATA & (1 << (WIDTH - 1))) != 0);*/ \ +flag_NotZ = (DATA != 0); \ +flag_C = 0; \ +flag_V = 0; + +#define BF_GET_PARM(EXTRA, OFFSET, WIDTH) \ +OFFSET = EXTRA & 0x800 ? DREG((EXTRA >> 6) & 7) : (EXTRA >> 6) & 0x1F; \ +/* Width 0 -> 32 */ \ +WIDTH = (((EXTRA & 0x20 ? DREG(EXTRA & 7) : EXTRA) - 1) & 0x1F) + 1; \ + +#define BF_FFO(SRC, MASK, OFFSET, WIDTH) \ +{ \ +MASK = 1 << (WIDTH - 1); \ +while (MASK) { \ +if (SRC & MASK) \ +break; \ +OFFSET++; \ +MASK >>= 1; \ +} \ +DREGu32(Opcode >> 12) = OFFSET; \ +} + +#define BF_REG_GET(EXTRA, DATA, OFFSET, WIDTH) \ +DATA = DREG((Opcode /*>> 0*/) & 7); \ +BF_GET_PARM(EXTRA, OFFSET, WIDTH) \ +OFFSET &= 0x1F; \ +BF_SHIFT_DOWN(DATA, OFFSET, WIDTH) \ +BF_SET_FLAGS(DATA, WIDTH) + +static __inline__ void BF_MEM_GET(u32 *adr, u32 *dst, s32 *offset, u32 width, u32 *bf0, u32 *bf1) { - printf("Ciclos a ejecutar: %d\n",cycles); + /* adr = base byte address + * dst = DATA (result) + * bf0 = lower long (starting with the first *affected* byte) + * bf1 = upper byte (bit field crosses into next byte) + */ + + /* Locate the first *affected* byte (*not* the base byte), and read 4(+1) bytes from there */ + if (*offset >= 0) { + *adr += *offset >> 3; + /* New offset from the first *affected* byte */ + *offset &= 7; + } else { + /* With negative offset, address of the first *affected* byte is one byte below */ + *adr += *offset / 8 - 1; + /* New offset from the first *affected* byte */ + *offset = 8 - (u32)(*offset & 7); + } + + READ_LONG_F(*adr, *bf0); + if ((*offset + width) > 32) + READ_BYTE_F((*adr+4), *bf1) + else + *bf1 = 0; + + *dst = (*bf0 << *offset) | (*bf1 >> (8 - *offset)); + *dst >>= (32 - width); } + +static __inline__ void BF_MEM_PUT(u32 adr, u32 dst, u32 mask, u32 offset, u32 width, u32 bf0, u32 bf1) +{ + /* adr = address of the first *affected* byte + * dst = DATA (to be written) + * bf0 = lower long (starting with the first *affected* byte) + * bf1 = upper byte (bit field crosses into upper byte) + */ + /* Example: 00[F(FF0FF 0f][f)0]0fff => offset=12->4, width=32 + * bf0 bf1 + * + * DATA=FF0FF0ff, MASK=FFFFFFFF + */ + u32 dst_tmp = dst; + u32 mask_tmp = mask; + /* WRITE long @A: xFF0FF0f */ + BF_SHIFT_UP(mask_tmp, offset, width) + BF_SHIFT_UP(dst_tmp, offset, width) + WRITE_LONG_F(adr, (bf0 & ~mask_tmp) | dst_tmp); - if (initialised) - { - - DISA_EMULATE_START(cycles, m68kcontext.cycles_counter); + /* WRITE byte @A+4: fx */ + if ((offset + width) > 32) { + offset = 8 - offset; + mask_tmp = mask << offset; + dst_tmp = dst << offset; + WRITE_BYTE_F(adr+4, (bf1 & ~mask_tmp) | dst_tmp); + } +} - /* Comprobar si la CPU esta detenida debido a un doble error de bus */ - if (m68kcontext.execinfo & M68K_FAULTED) return (u32)-1; - - if (m68kcontext.execinfo & M68K_HALTED) - { - if (interrupt_chk__() <= 0) - { - /* La CPU esta detenida mediante la instruccion STOP */ - /* Agregar ciclos de reloj requeridos */ - m68kcontext.cycles_counter += cycles; - return 0; - } - m68kcontext.execinfo &= ~M68K_HALTED; - } - - -#ifdef FAMEC_DEBUG - printf("Ciclos a ejecutar: %d\n",cycles); -#endif +#define CAS_EXECUTE(SHIFT, WRITE_OP) \ +{ \ +/* s8 flgs, flgo, flgn;*/ \ +\ +src = DREG(res & 7); \ +\ +/* flgs = (src < 0);*/ \ +/* flgo = (tmp < 0);*/ \ +dst = tmp - src; \ +/* flgn = (dst < 0);*/ \ +\ +flag_V = ((src ^ tmp) & (dst ^ tmp)) >> SHIFT; /*((flgs != flgo) && (flgn != flgo));*/ \ +flag_C = dst; /*(src > tmp);*/ \ +flag_N = dst >> SHIFT; /*flgn << 7;*/ \ +flag_NotZ = (dst != 0); \ +\ +if (flag_NotZ) \ +DREGs32(res & 7) = tmp; \ +else { \ +WRITE_OP; \ +} \ +} - /* Poner la CPU en estado de ejecucion */ - m68kcontext.execinfo |= M68K_RUNNING; +#define CAS2_EXECUTE(SHIFT, WRITE_OP1, WRITE_OP2) \ +{ \ +/* s8 flgs, flgo, flgn;*/ \ +\ +/* 1st compare */ \ +src = DREG(res1 & 7); \ +/* flgs = (src < 0);*/ \ +/* flgo = (tmp1 < 0);*/ \ +dst = tmp1 - src; \ +/* flgn = (dst < 0);*/ \ +\ +flag_NotZ = (dst != 0); \ +\ +if (flag_NotZ) { \ +/* Difference */ \ +flag_V = ((src ^ tmp1) & (dst ^ tmp1)) >> SHIFT; /* ((flgs != flgo) && (flgn != flgo));*/ \ +flag_C = dst; /*(src > tmp1);*/ \ +flag_N = dst >> SHIFT; /*flgn;*/ \ +DREGs32(res1 & 7) = tmp1; \ +DREGs32(res2 & 7) = tmp2; \ +} \ +else { \ +/* 2nd compare */ \ +src = DREG(res2 & 7); \ +/* flgs = (src < 0);*/ \ +/* flgo = (tmp2 < 0);*/ \ +dst = tmp2 - src; \ +/* flgn = (dst < 0);*/ \ +\ +flag_V = ((src ^ tmp2) & (dst ^ tmp2)) >> SHIFT; /*((flgs != flgo) && (flgn != flgo));*/ \ +flag_C = dst; /*(src > tmp2);*/ \ +flag_N = dst >> SHIFT; /*flgn;*/ \ +flag_NotZ = (dst != 0); \ +\ +if (flag_NotZ) { \ +/* Difference */ \ +DREGs32(res1 & 7) = tmp1; \ +DREGs32(res2 & 7) = tmp2; \ +} else { \ +/* Both compares passed */ \ +WRITE_OP1; \ +WRITE_OP2; \ +} \ +} \ +} - // Cache SR - SET_SR(m68kcontext.sr) +#define CMP2_CHK2_EXECUTE(SIZE, ROLLBACK) \ +{ \ +READ_BYTE_F(adr, src1) \ +READ_BYTE_F(adr + 1, src2) \ +\ +if (res & 0x8000) \ +dst = AREG((res >> 12) & 7); \ +else \ +dst = (s32)(SIZE)DREG(res >> 12); \ +flag_NotZ = ((dst != src1) && (dst != src2)); \ +if (src1 > src2) { \ +s32 tmp; \ +tmp = src1; \ +src1 = src2; \ +src2 = tmp; \ +} \ +if ((dst < src1) || (dst > src2)) \ +{ \ +flag_C = M68K_SR_C; \ +if (res & 0x0800) \ +execute_exception(M68K_CHK_EX); \ +} else \ +flag_C = 0; \ +} - // Cache PPL - flag_I = M68K_PPL; +static void MULL(u32 src, u16 extra) +{ + if (extra & 0x800) + { + /* signed variant */ + s64 a; + + a = (s64)(s32)DREG((extra >> 12) & 7); + a *= (s64)(s32)src; + + flag_V = 0; + flag_C = 0; + flag_NotZ = (a != 0); + flag_N = (a < 0); + if (extra & 0x400) { + /* 32 x 32 -> 64 */ + DREG(extra & 7) = (u32)(a >> 32); + } + else if ((a & UVAL64 (0xffffffff80000000)) != 0 + && (a & UVAL64 (0xffffffff80000000)) != UVAL64 (0xffffffff80000000)) + flag_V = M68K_SR_V; + DREG((extra >> 12) & 7) = (u32)a; + } + else + { + /* unsigned */ + u64 a; + + a = (u64)(u32)src * (u64)(u32)DREG((extra >> 12) & 7); + flag_V = 0; + flag_C = 0; + flag_NotZ = (a != 0); + flag_N = (((s64)a) < 0); + if (extra & 0x400) + DREG(extra & 7) = (u32)(a >> 32); + else if ((a & UVAL64 (0xffffffff00000000)) != 0) + flag_V = M68K_SR_V; + DREG((extra >> 12) & 7) = (u32)a; + } +} - // Fijar PC - SET_PC(m68kcontext.pc) +// returns extra cycles if we have a signed DIV +static int DIVL(u32 src, u16 extra) +{ + /* NOTE: Valid result is *always* 32-bit */ + if (extra & 0x800) + { + /* signed variant */ + s64 a = (s64)(s32)DREG((extra >> 12) & 7); + s64 quot, rem; + + if (extra & 0x400) { + a &= 0xffffffffu; + a |= (s64)DREG(extra & 7) << 32; + } + rem = a % (s64)(s32)src; + quot = a / (s64)(s32)src; + if ((quot & UVAL64 (0xffffffff80000000)) != 0 + && (quot & UVAL64 (0xffffffff80000000)) != UVAL64 (0xffffffff80000000)) + { + flag_V = M68K_SR_V; + flag_N = M68K_SR_N; + flag_C = 0; + } else { + if (((s32)rem < 0) != ((s64)a < 0)) rem = -rem; + flag_V = 0; + flag_C = 0; + flag_NotZ = ((s32)quot != 0); + flag_N = (((s32)quot) < 0); + DREG(extra & 7) = (u32)rem; + DREG((extra >> 12) & 7) = (u32)quot; + } + return 12; + } + else + { + /* unsigned */ + u64 a = (u64)(u32)DREG((extra >> 12) & 7); + u64 quot, rem; + + if (extra & 0x400) { + a &= 0xffffffffu; + a |= (u64)DREG(extra & 7) << 32; + } + rem = a % (u64)src; + quot = a / (u64)src; + if (quot > 0xffffffffu) { + flag_V = M68K_SR_V; + flag_N = M68K_SR_N; + flag_C = 0; + } else { + flag_V = 0; + flag_C = 0; + flag_NotZ = ((s32)quot != 0); + flag_N = (((s32)quot) < 0); + DREG(extra & 7) = (u32)rem; + DREG((extra >> 12) & 7) = (u32)quot; + } + return 0; + } +} -#ifdef FAMEC_DEBUG - printf("PC: 0x%08X\n",PC); - printf("BasePC: 0x%08X\n",BasePC); -#endif +static __inline__ void MOVEC2(int XN, int RC) +{ + u32 *reg; + int xreg = RC & 0x0007; + + if (RC & 0x0008) + reg = &(AREGu32(xreg)); + else + reg = &(DREGu32(xreg)); + + switch(XN) { + case 0: *reg = m68kcontext.sfc; break; + case 1: *reg = m68kcontext.dfc; break; + case 2: + { + *reg = m68kcontext.cacr & 0x00000003; /* 68020 mask */ + break; + } + + case 0x800: *reg = USP; break; + case 0x801: *reg = m68kcontext.vbr; break; + case 0x802: *reg = m68kcontext.caar; break; + case 0x803: *reg = (flag_M == 1) ? AREGu32(7) : MSP; break; + case 0x804: *reg = (flag_M == 0) ? AREGu32(7) : ISP; break; + } +} - /* guardar ciclos de ejecucion solicitados */ - io_cycle_counter = cycles; - cycles_needed = 0; +static __inline__ void MOVE2C(int XN, int RC) +{ + u32 *reg; + int xreg = RC & 0x0007; + + if (RC & 0x0008) + reg = &(AREGu32(xreg)); + else + reg = &(DREGu32(xreg)); + + switch(XN) { + case 0: m68kcontext.sfc = *reg & 7; break; + case 1: m68kcontext.dfc = *reg & 7; break; + case 2: + { + m68kcontext.cacr = *reg & 0x0000000F; /* 68020 mask */ + break; + } + + case 0x800: USP = *reg; break; + case 0x801: m68kcontext.vbr = *reg; break; + case 0x802: m68kcontext.caar = *reg & 0xFC; break; + case 0x803: MSP = *reg; if (flag_M == 1) AREGu32(7) = MSP; break; + case 0x804: ISP = *reg; if (flag_M == 0) AREGu32(7) = ISP; break; + } +} -#ifdef FAMEC_EMULATE_TRACE - if (!(m68kcontext.execinfo & M68K_EMULATE_TRACE)) -#endif - { - s32 line=interrupt_chk__(); - if (line>0) - { - /* Desactivar interrupcion */ - m68kcontext.interrupts[0] &= ~(1 << ((u32)line)); - - /* comprobar si hay rutina de acknowledge */ - if (m68kcontext.iack_handler != NULL) - m68kcontext.iack_handler(line); - - execute_exception(m68kcontext.interrupts[(u32)line]); - flag_I = (u32)line; - } -#ifdef FAMEC_EMULATE_TRACE - else - if (flag_T) - { - m68kcontext.execinfo |= M68K_EMULATE_TRACE; - cycles_needed= io_cycle_counter; - io_cycle_counter=0; - } -#endif - } +static __attribute__ ((noinline)) void DECODE_EXT_WORD_020 (u32 *adr) +{ + u16 ext; + s32 index = 0; + + FETCH_WORD(ext); + + if (ext & 0x0100) { + /* 68020+ Full Extension Word */ + s32 disp = 0, outer = 0; + + /* Base Register Suppressed */ + if (ext & 0x80) + *adr = 0; + + /* Base Displacement */ + if ((ext & 0x0030) == 0x20) { + FETCH_SWORD(disp); + } + else if ((ext & 0x0030) == 0x30) { + FETCH_LONG(disp); + } + *adr += disp; + + /* Index Suppressed ? */ + if ((ext & 0x0040) == 0) { + /* Index not suppressed */ + if (ext & 0x8000) { + if (ext & 0x0800) + index = AREGs32((ext >> 12) & 7); + else + index = AREGs16((ext >> 12) & 7); + } else { + if (ext & 0x0800) + index = DREGs32(ext >> 12); + else + index = DREGs16(ext >> 12); + } + /* Index *= SCALE */ + index <<= (ext >> 9) & 3; + } + + /* Preindexed */ + if ((ext & 0x0004) == 0) + *adr += index; + /* Memory Indirect */ + if (ext & 0x0003) { + u32 res; + READ_LONG_F(*adr, res); + *adr = res; + } + /* Postindexed */ + if (ext & 0x0004) + *adr += index; + + /* Outer Displacement */ + if ((ext & 0x0003) == 0x0002) { + FETCH_SWORD(outer); + } + else if ((ext & 0x0003) == 0x0003) { + FETCH_LONG(outer); + } + + *adr += outer; + } else { + /* 68000+ Brief Extension Word */ + + /* Index */ + if (ext & 0x8000) { + if (ext & 0x0800) + index = AREGs32((ext >> 12) & 7); + else + index = AREGs16((ext >> 12) & 7); + } else { + if (ext & 0x0800) + index = DREGs32((ext >> 12)); + else + index = DREGs16((ext >> 12)); + } + /* Index *= SCALE (only M68020+) */ + index <<= (ext >> 9) & 3; + + *adr += (s8)(ext) + index; + } +} -#ifndef FAMEC_NO_GOTOS -famec_Exec: -#endif +static __inline__ void DECODE_EXT_WORD_000 (u32 *adr) +{ + u16 ext; + s32 index = 0; + + FETCH_WORD(ext); + + /* Index */ + if (ext & 0x8000) { + if (ext & 0x0800) + index = AREGs32((ext >> 12) & 7); + else + index = AREGs16((ext >> 12) & 7); + } else { + if (ext & 0x0800) + index = DREGs32((ext >> 12)); + else + index = DREGs16((ext >> 12)); + } + *adr += (s8)(ext) + index; +} + + +static FAMEC_EXTRA_INLINE u8 bitset_count(u32 data) +{ + unsigned int const MASK1 = 0x55555555; + unsigned int const MASK2 = 0x33333333; + unsigned int const MASK4 = 0x0f0f0f0f; + unsigned int const MASK6 = 0x0000003f; + + unsigned int const w = (data & MASK1) + ((data >> 1) & MASK1); + unsigned int const x = (w & MASK2) + ((w >> 2) & MASK2); + unsigned int const y = ((x + (x >> 4)) & MASK4); + unsigned int const z = (y + (y >> 8)); + unsigned int const c = (z + (z >> 16)) & MASK6; + + return c; +} + + +/* + DIVU + Unsigned division + */ +static u32 getDivu68kCycles(u32 dividend, u16 divisor) +{ + u32 mcycles; + u32 hdivisor; + int i; + + if ( (u16) divisor == 0) + return 0; + + /* Overflow */ + if ( (dividend >> 16) >= divisor) + return 10; + + mcycles = 38; + hdivisor = ((u32) divisor) << 16; + + for ( i = 0; i < 15; i++) + { + u32 temp; + temp = dividend; + + dividend <<= 1; + + /* If carry from shift */ + if ( (int) temp < 0) + { + dividend -= hdivisor; + } + + else + { + mcycles += 2; + if ( dividend >= hdivisor) + { + dividend -= hdivisor; + mcycles--; + } + } + } + + return mcycles * 2; +} + +/* + DIVS + Signed division + */ +static u32 getDivs68kCycles(s32 dividend, s16 divisor) +{ + u32 mcycles; + u32 aquot; + int i; + + if ( (s16) divisor == 0) + return 0; + + mcycles = 6; + + if ( dividend < 0) + mcycles++; + + /* Check for absolute overflow */ + if ( ((u32) abs( dividend) >> 16) >= (u16) abs( divisor)) + { + return (mcycles + 2) * 2; + } + + /* Absolute quotient */ + aquot = (u32) abs( dividend) / (u16) abs( divisor); + + mcycles += 55; + + if ( divisor >= 0) + { + if ( dividend >= 0) + mcycles--; + else + mcycles++; + } + + /* Count 15 msbits in absolute of quotient */ + + for ( i = 0; i < 15; i++) + { + if ( (s16) aquot >= 0) + mcycles++; + aquot <<= 1; + } + + return mcycles * 2; +} -#ifdef FAMEC_DEBUG - printf("Antes de NEXT... PC = 0x%08X\n",PC); -#endif - NEXT +#define OPCODES_M68000 +#undef OPCODES_M68020 -#ifndef FAMEC_NO_GOTOS +#define DECODE_EXT_WORD DECODE_EXT_WORD_000 -#define OPCODE(N_OP) OP_##N_OP: -#define CAST_OP(N_OP) (opcode_func)&&OP_##N_OP +#define OPCODE(N_OP) static int OP_000_##N_OP(const u32 Opcode, M68K_CONTEXT &m68kcontext) +#define CAST_OP(N_OP) (opcode_func)&OP_000_##N_OP +#define JUMPTABLE m68k_jumptable000 #include "famec_opcodes.h" +#include "famec_jumptable.h" +#undef OPCODE +#undef CAST_OP +#undef JUMPTABLE +#undef DECODE_EXT_WORD -famec_Exec_End: -#endif -#ifdef FAMEC_EMULATE_TRACE - if (m68kcontext.execinfo & M68K_EMULATE_TRACE) - { - io_cycle_counter= cycles_needed; - m68kcontext.execinfo &= ~M68K_EMULATE_TRACE; - m68kcontext.execinfo |= M68K_DO_TRACE; - execute_exception(M68K_TRACE_EX); - flag_T=0; - if (io_cycle_counter > 0) - { - NEXT - } - } - else -#endif - if (cycles_needed>0) - { - s32 line=interrupt_chk__(); - io_cycle_counter= cycles_needed; - if (line>0) - { - /* Desactivar interrupcion */ - m68kcontext.interrupts[0] &= ~(1 << ((u32)line)); - - /* comprobar si hay rutina de acknowledge */ - if (m68kcontext.iack_handler != NULL) - m68kcontext.iack_handler(line); - - execute_exception(m68kcontext.interrupts[(u32)line]); - flag_I = (u32)line; - } -#ifdef FAMEC_EMULATE_TRACE - else - if (!(flag_T)) -#endif - if (io_cycle_counter > 0) - { - NEXT - } - } +#define OPCODES_M68020 +#undef OPCODES_M68000 - m68kcontext.sr = GET_SR; - m68kcontext.pc = GET_PC; +#define DECODE_EXT_WORD DECODE_EXT_WORD_020 - m68kcontext.execinfo &= ~M68K_RUNNING; - - // Actualizar contador de ciclos - m68kcontext.cycles_counter += (cycles - io_cycle_counter); - -#ifdef FAMEC_DEBUG - printf("En really end...\n"); - printf("PC: 0x%08X\n",PC); - printf("BasePC: 0x%08X\n",BasePC); - printf("pc: 0x%08X\n",m68kcontext.pc); -#endif +#define OPCODE(N_OP) static int OP_020_##N_OP(const u32 Opcode, M68K_CONTEXT &m68kcontext) +#define CAST_OP(N_OP) (opcode_func)&OP_020_##N_OP +#define JUMPTABLE m68k_jumptable020 +#include "famec_opcodes.h" +#include "famec_jumptable.h" +#undef OPCODE +#undef CAST_OP +#undef JUMPTABLE +#undef DECODE_EXT_WORD - } - else - { - u32 i, j; - - for(i = 0x0000; i <= 0xFFFF; i += 0x0001) - JumpTable[0x0000 + i] = CAST_OP(0x4AFC); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0000 + i] = CAST_OP(0x0000); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0010 + i] = CAST_OP(0x0010); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0018 + i] = CAST_OP(0x0018); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0020 + i] = CAST_OP(0x0020); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0028 + i] = CAST_OP(0x0028); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0030 + i] = CAST_OP(0x0030); - JumpTable[0x0038] = CAST_OP(0x0038); - JumpTable[0x0039] = CAST_OP(0x0039); - JumpTable[0x001F] = CAST_OP(0x001F); - JumpTable[0x0027] = CAST_OP(0x0027); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0040 + i] = CAST_OP(0x0040); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0050 + i] = CAST_OP(0x0050); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0058 + i] = CAST_OP(0x0058); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0060 + i] = CAST_OP(0x0060); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0068 + i] = CAST_OP(0x0068); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0070 + i] = CAST_OP(0x0070); - JumpTable[0x0078] = CAST_OP(0x0078); - JumpTable[0x0079] = CAST_OP(0x0079); - JumpTable[0x005F] = CAST_OP(0x005F); - JumpTable[0x0067] = CAST_OP(0x0067); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0080 + i] = CAST_OP(0x0080); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0090 + i] = CAST_OP(0x0090); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0098 + i] = CAST_OP(0x0098); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x00A0 + i] = CAST_OP(0x00A0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x00A8 + i] = CAST_OP(0x00A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x00B0 + i] = CAST_OP(0x00B0); - JumpTable[0x00B8] = CAST_OP(0x00B8); - JumpTable[0x00B9] = CAST_OP(0x00B9); - JumpTable[0x009F] = CAST_OP(0x009F); - JumpTable[0x00A7] = CAST_OP(0x00A7); - JumpTable[0x003C] = CAST_OP(0x003C); - JumpTable[0x007C] = CAST_OP(0x007C); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0200 + i] = CAST_OP(0x0200); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0210 + i] = CAST_OP(0x0210); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0218 + i] = CAST_OP(0x0218); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0220 + i] = CAST_OP(0x0220); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0228 + i] = CAST_OP(0x0228); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0230 + i] = CAST_OP(0x0230); - JumpTable[0x0238] = CAST_OP(0x0238); - JumpTable[0x0239] = CAST_OP(0x0239); - JumpTable[0x021F] = CAST_OP(0x021F); - JumpTable[0x0227] = CAST_OP(0x0227); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0240 + i] = CAST_OP(0x0240); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0250 + i] = CAST_OP(0x0250); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0258 + i] = CAST_OP(0x0258); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0260 + i] = CAST_OP(0x0260); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0268 + i] = CAST_OP(0x0268); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0270 + i] = CAST_OP(0x0270); - JumpTable[0x0278] = CAST_OP(0x0278); - JumpTable[0x0279] = CAST_OP(0x0279); - JumpTable[0x025F] = CAST_OP(0x025F); - JumpTable[0x0267] = CAST_OP(0x0267); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0280 + i] = CAST_OP(0x0280); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0290 + i] = CAST_OP(0x0290); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0298 + i] = CAST_OP(0x0298); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x02A0 + i] = CAST_OP(0x02A0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x02A8 + i] = CAST_OP(0x02A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x02B0 + i] = CAST_OP(0x02B0); - JumpTable[0x02B8] = CAST_OP(0x02B8); - JumpTable[0x02B9] = CAST_OP(0x02B9); - JumpTable[0x029F] = CAST_OP(0x029F); - JumpTable[0x02A7] = CAST_OP(0x02A7); - JumpTable[0x023C] = CAST_OP(0x023C); - JumpTable[0x027C] = CAST_OP(0x027C); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0A00 + i] = CAST_OP(0x0A00); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0A10 + i] = CAST_OP(0x0A10); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0A18 + i] = CAST_OP(0x0A18); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0A20 + i] = CAST_OP(0x0A20); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0A28 + i] = CAST_OP(0x0A28); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0A30 + i] = CAST_OP(0x0A30); - JumpTable[0x0A38] = CAST_OP(0x0A38); - JumpTable[0x0A39] = CAST_OP(0x0A39); - JumpTable[0x0A1F] = CAST_OP(0x0A1F); - JumpTable[0x0A27] = CAST_OP(0x0A27); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0A40 + i] = CAST_OP(0x0A40); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0A50 + i] = CAST_OP(0x0A50); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0A58 + i] = CAST_OP(0x0A58); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0A60 + i] = CAST_OP(0x0A60); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0A68 + i] = CAST_OP(0x0A68); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0A70 + i] = CAST_OP(0x0A70); - JumpTable[0x0A78] = CAST_OP(0x0A78); - JumpTable[0x0A79] = CAST_OP(0x0A79); - JumpTable[0x0A5F] = CAST_OP(0x0A5F); - JumpTable[0x0A67] = CAST_OP(0x0A67); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0A80 + i] = CAST_OP(0x0A80); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0A90 + i] = CAST_OP(0x0A90); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0A98 + i] = CAST_OP(0x0A98); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0AA0 + i] = CAST_OP(0x0AA0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0AA8 + i] = CAST_OP(0x0AA8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0AB0 + i] = CAST_OP(0x0AB0); - JumpTable[0x0AB8] = CAST_OP(0x0AB8); - JumpTable[0x0AB9] = CAST_OP(0x0AB9); - JumpTable[0x0A9F] = CAST_OP(0x0A9F); - JumpTable[0x0AA7] = CAST_OP(0x0AA7); - JumpTable[0x0A3C] = CAST_OP(0x0A3C); - JumpTable[0x0A7C] = CAST_OP(0x0A7C); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0400 + i] = CAST_OP(0x0400); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0410 + i] = CAST_OP(0x0410); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0418 + i] = CAST_OP(0x0418); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0420 + i] = CAST_OP(0x0420); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0428 + i] = CAST_OP(0x0428); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0430 + i] = CAST_OP(0x0430); - JumpTable[0x0438] = CAST_OP(0x0438); - JumpTable[0x0439] = CAST_OP(0x0439); - JumpTable[0x041F] = CAST_OP(0x041F); - JumpTable[0x0427] = CAST_OP(0x0427); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0440 + i] = CAST_OP(0x0440); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0450 + i] = CAST_OP(0x0450); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0458 + i] = CAST_OP(0x0458); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0460 + i] = CAST_OP(0x0460); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0468 + i] = CAST_OP(0x0468); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0470 + i] = CAST_OP(0x0470); - JumpTable[0x0478] = CAST_OP(0x0478); - JumpTable[0x0479] = CAST_OP(0x0479); - JumpTable[0x045F] = CAST_OP(0x045F); - JumpTable[0x0467] = CAST_OP(0x0467); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0480 + i] = CAST_OP(0x0480); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0490 + i] = CAST_OP(0x0490); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0498 + i] = CAST_OP(0x0498); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x04A0 + i] = CAST_OP(0x04A0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x04A8 + i] = CAST_OP(0x04A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x04B0 + i] = CAST_OP(0x04B0); - JumpTable[0x04B8] = CAST_OP(0x04B8); - JumpTable[0x04B9] = CAST_OP(0x04B9); - JumpTable[0x049F] = CAST_OP(0x049F); - JumpTable[0x04A7] = CAST_OP(0x04A7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0600 + i] = CAST_OP(0x0600); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0610 + i] = CAST_OP(0x0610); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0618 + i] = CAST_OP(0x0618); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0620 + i] = CAST_OP(0x0620); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0628 + i] = CAST_OP(0x0628); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0630 + i] = CAST_OP(0x0630); - JumpTable[0x0638] = CAST_OP(0x0638); - JumpTable[0x0639] = CAST_OP(0x0639); - JumpTable[0x061F] = CAST_OP(0x061F); - JumpTable[0x0627] = CAST_OP(0x0627); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0640 + i] = CAST_OP(0x0640); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0650 + i] = CAST_OP(0x0650); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0658 + i] = CAST_OP(0x0658); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0660 + i] = CAST_OP(0x0660); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0668 + i] = CAST_OP(0x0668); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0670 + i] = CAST_OP(0x0670); - JumpTable[0x0678] = CAST_OP(0x0678); - JumpTable[0x0679] = CAST_OP(0x0679); - JumpTable[0x065F] = CAST_OP(0x065F); - JumpTable[0x0667] = CAST_OP(0x0667); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0680 + i] = CAST_OP(0x0680); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0690 + i] = CAST_OP(0x0690); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0698 + i] = CAST_OP(0x0698); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x06A0 + i] = CAST_OP(0x06A0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x06A8 + i] = CAST_OP(0x06A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x06B0 + i] = CAST_OP(0x06B0); - JumpTable[0x06B8] = CAST_OP(0x06B8); - JumpTable[0x06B9] = CAST_OP(0x06B9); - JumpTable[0x069F] = CAST_OP(0x069F); - JumpTable[0x06A7] = CAST_OP(0x06A7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0C00 + i] = CAST_OP(0x0C00); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0C10 + i] = CAST_OP(0x0C10); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0C18 + i] = CAST_OP(0x0C18); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0C20 + i] = CAST_OP(0x0C20); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0C28 + i] = CAST_OP(0x0C28); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0C30 + i] = CAST_OP(0x0C30); - JumpTable[0x0C38] = CAST_OP(0x0C38); - JumpTable[0x0C39] = CAST_OP(0x0C39); - JumpTable[0x0C1F] = CAST_OP(0x0C1F); - JumpTable[0x0C27] = CAST_OP(0x0C27); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0C40 + i] = CAST_OP(0x0C40); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0C50 + i] = CAST_OP(0x0C50); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0C58 + i] = CAST_OP(0x0C58); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0C60 + i] = CAST_OP(0x0C60); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0C68 + i] = CAST_OP(0x0C68); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0C70 + i] = CAST_OP(0x0C70); - JumpTable[0x0C78] = CAST_OP(0x0C78); - JumpTable[0x0C79] = CAST_OP(0x0C79); - JumpTable[0x0C5F] = CAST_OP(0x0C5F); - JumpTable[0x0C67] = CAST_OP(0x0C67); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0C80 + i] = CAST_OP(0x0C80); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0C90 + i] = CAST_OP(0x0C90); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0C98 + i] = CAST_OP(0x0C98); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0CA0 + i] = CAST_OP(0x0CA0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0CA8 + i] = CAST_OP(0x0CA8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0CB0 + i] = CAST_OP(0x0CB0); - JumpTable[0x0CB8] = CAST_OP(0x0CB8); - JumpTable[0x0CB9] = CAST_OP(0x0CB9); - JumpTable[0x0C9F] = CAST_OP(0x0C9F); - JumpTable[0x0CA7] = CAST_OP(0x0CA7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0800 + i] = CAST_OP(0x0800); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0810 + i] = CAST_OP(0x0810); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0818 + i] = CAST_OP(0x0818); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0820 + i] = CAST_OP(0x0820); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0828 + i] = CAST_OP(0x0828); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0830 + i] = CAST_OP(0x0830); - JumpTable[0x0838] = CAST_OP(0x0838); - JumpTable[0x0839] = CAST_OP(0x0839); - JumpTable[0x083A] = CAST_OP(0x083A); - JumpTable[0x083B] = CAST_OP(0x083B); - JumpTable[0x081F] = CAST_OP(0x081F); - JumpTable[0x0827] = CAST_OP(0x0827); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0840 + i] = CAST_OP(0x0840); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0850 + i] = CAST_OP(0x0850); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0858 + i] = CAST_OP(0x0858); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0860 + i] = CAST_OP(0x0860); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0868 + i] = CAST_OP(0x0868); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0870 + i] = CAST_OP(0x0870); - JumpTable[0x0878] = CAST_OP(0x0878); - JumpTable[0x0879] = CAST_OP(0x0879); - JumpTable[0x085F] = CAST_OP(0x085F); - JumpTable[0x0867] = CAST_OP(0x0867); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0880 + i] = CAST_OP(0x0880); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x0890 + i] = CAST_OP(0x0890); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x0898 + i] = CAST_OP(0x0898); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x08A0 + i] = CAST_OP(0x08A0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x08A8 + i] = CAST_OP(0x08A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x08B0 + i] = CAST_OP(0x08B0); - JumpTable[0x08B8] = CAST_OP(0x08B8); - JumpTable[0x08B9] = CAST_OP(0x08B9); - JumpTable[0x089F] = CAST_OP(0x089F); - JumpTable[0x08A7] = CAST_OP(0x08A7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x08C0 + i] = CAST_OP(0x08C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x08D0 + i] = CAST_OP(0x08D0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x08D8 + i] = CAST_OP(0x08D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x08E0 + i] = CAST_OP(0x08E0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x08E8 + i] = CAST_OP(0x08E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x08F0 + i] = CAST_OP(0x08F0); - JumpTable[0x08F8] = CAST_OP(0x08F8); - JumpTable[0x08F9] = CAST_OP(0x08F9); - JumpTable[0x08DF] = CAST_OP(0x08DF); - JumpTable[0x08E7] = CAST_OP(0x08E7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x0100 + i + j] = CAST_OP(0x0100); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x0110 + i + j] = CAST_OP(0x0110); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x0118 + i + j] = CAST_OP(0x0118); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x0120 + i + j] = CAST_OP(0x0120); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x0128 + i + j] = CAST_OP(0x0128); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x0130 + i + j] = CAST_OP(0x0130); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x0138 + i] = CAST_OP(0x0138); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x0139 + i] = CAST_OP(0x0139); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x013A + i] = CAST_OP(0x013A); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x013B + i] = CAST_OP(0x013B); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x013C + i] = CAST_OP(0x013C); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x011F + i] = CAST_OP(0x011F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x0127 + i] = CAST_OP(0x0127); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x0140 + i + j] = CAST_OP(0x0140); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x0150 + i + j] = CAST_OP(0x0150); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x0158 + i + j] = CAST_OP(0x0158); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x0160 + i + j] = CAST_OP(0x0160); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x0168 + i + j] = CAST_OP(0x0168); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x0170 + i + j] = CAST_OP(0x0170); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x0178 + i] = CAST_OP(0x0178); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x0179 + i] = CAST_OP(0x0179); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x015F + i] = CAST_OP(0x015F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x0167 + i] = CAST_OP(0x0167); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x0180 + i + j] = CAST_OP(0x0180); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x0190 + i + j] = CAST_OP(0x0190); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x0198 + i + j] = CAST_OP(0x0198); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x01A0 + i + j] = CAST_OP(0x01A0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x01A8 + i + j] = CAST_OP(0x01A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x01B0 + i + j] = CAST_OP(0x01B0); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x01B8 + i] = CAST_OP(0x01B8); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x01B9 + i] = CAST_OP(0x01B9); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x019F + i] = CAST_OP(0x019F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x01A7 + i] = CAST_OP(0x01A7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x01C0 + i + j] = CAST_OP(0x01C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x01D0 + i + j] = CAST_OP(0x01D0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x01D8 + i + j] = CAST_OP(0x01D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x01E0 + i + j] = CAST_OP(0x01E0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x01E8 + i + j] = CAST_OP(0x01E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x01F0 + i + j] = CAST_OP(0x01F0); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x01F8 + i] = CAST_OP(0x01F8); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x01F9 + i] = CAST_OP(0x01F9); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x01DF + i] = CAST_OP(0x01DF); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x01E7 + i] = CAST_OP(0x01E7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x0108 + i + j] = CAST_OP(0x0108); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x0148 + i + j] = CAST_OP(0x0148); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x0188 + i + j] = CAST_OP(0x0188); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x01C8 + i + j] = CAST_OP(0x01C8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x1000 + i + j] = CAST_OP(0x1000); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x1080 + i + j] = CAST_OP(0x1080); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x10C0 + i + j] = CAST_OP(0x10C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x1100 + i + j] = CAST_OP(0x1100); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x1140 + i + j] = CAST_OP(0x1140); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x1180 + i + j] = CAST_OP(0x1180); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x11C0 + i] = CAST_OP(0x11C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x13C0 + i] = CAST_OP(0x13C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x1EC0 + i] = CAST_OP(0x1EC0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x1F00 + i] = CAST_OP(0x1F00); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x1008 + i + j] = CAST_OP(0x1008); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x1088 + i + j] = CAST_OP(0x1088); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x10C8 + i + j] = CAST_OP(0x10C8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x1108 + i + j] = CAST_OP(0x1108); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x1148 + i + j] = CAST_OP(0x1148); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x1188 + i + j] = CAST_OP(0x1188); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x11C8 + i] = CAST_OP(0x11C8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x13C8 + i] = CAST_OP(0x13C8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x1EC8 + i] = CAST_OP(0x1EC8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x1F08 + i] = CAST_OP(0x1F08); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x1010 + i + j] = CAST_OP(0x1010); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x1090 + i + j] = CAST_OP(0x1090); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x10D0 + i + j] = CAST_OP(0x10D0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x1110 + i + j] = CAST_OP(0x1110); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x1150 + i + j] = CAST_OP(0x1150); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x1190 + i + j] = CAST_OP(0x1190); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x11D0 + i] = CAST_OP(0x11D0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x13D0 + i] = CAST_OP(0x13D0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x1ED0 + i] = CAST_OP(0x1ED0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x1F10 + i] = CAST_OP(0x1F10); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x1018 + i + j] = CAST_OP(0x1018); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x1098 + i + j] = CAST_OP(0x1098); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x10D8 + i + j] = CAST_OP(0x10D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x1118 + i + j] = CAST_OP(0x1118); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x1158 + i + j] = CAST_OP(0x1158); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x1198 + i + j] = CAST_OP(0x1198); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x11D8 + i] = CAST_OP(0x11D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x13D8 + i] = CAST_OP(0x13D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x1ED8 + i] = CAST_OP(0x1ED8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x1F18 + i] = CAST_OP(0x1F18); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x1020 + i + j] = CAST_OP(0x1020); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x10A0 + i + j] = CAST_OP(0x10A0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x10E0 + i + j] = CAST_OP(0x10E0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x1120 + i + j] = CAST_OP(0x1120); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x1160 + i + j] = CAST_OP(0x1160); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x11A0 + i + j] = CAST_OP(0x11A0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x11E0 + i] = CAST_OP(0x11E0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x13E0 + i] = CAST_OP(0x13E0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x1EE0 + i] = CAST_OP(0x1EE0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x1F20 + i] = CAST_OP(0x1F20); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x1028 + i + j] = CAST_OP(0x1028); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x10A8 + i + j] = CAST_OP(0x10A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x10E8 + i + j] = CAST_OP(0x10E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x1128 + i + j] = CAST_OP(0x1128); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x1168 + i + j] = CAST_OP(0x1168); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x11A8 + i + j] = CAST_OP(0x11A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x11E8 + i] = CAST_OP(0x11E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x13E8 + i] = CAST_OP(0x13E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x1EE8 + i] = CAST_OP(0x1EE8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x1F28 + i] = CAST_OP(0x1F28); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x1030 + i + j] = CAST_OP(0x1030); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x10B0 + i + j] = CAST_OP(0x10B0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x10F0 + i + j] = CAST_OP(0x10F0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x1130 + i + j] = CAST_OP(0x1130); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x1170 + i + j] = CAST_OP(0x1170); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x11B0 + i + j] = CAST_OP(0x11B0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x11F0 + i] = CAST_OP(0x11F0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x13F0 + i] = CAST_OP(0x13F0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x1EF0 + i] = CAST_OP(0x1EF0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x1F30 + i] = CAST_OP(0x1F30); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x1038 + i] = CAST_OP(0x1038); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x10B8 + i] = CAST_OP(0x10B8); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x10F8 + i] = CAST_OP(0x10F8); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x1138 + i] = CAST_OP(0x1138); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x1178 + i] = CAST_OP(0x1178); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x11B8 + i] = CAST_OP(0x11B8); - JumpTable[0x11F8] = CAST_OP(0x11F8); - JumpTable[0x13F8] = CAST_OP(0x13F8); - JumpTable[0x1EF8] = CAST_OP(0x1EF8); - JumpTable[0x1F38] = CAST_OP(0x1F38); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x1039 + i] = CAST_OP(0x1039); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x10B9 + i] = CAST_OP(0x10B9); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x10F9 + i] = CAST_OP(0x10F9); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x1139 + i] = CAST_OP(0x1139); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x1179 + i] = CAST_OP(0x1179); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x11B9 + i] = CAST_OP(0x11B9); - JumpTable[0x11F9] = CAST_OP(0x11F9); - JumpTable[0x13F9] = CAST_OP(0x13F9); - JumpTable[0x1EF9] = CAST_OP(0x1EF9); - JumpTable[0x1F39] = CAST_OP(0x1F39); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x103A + i] = CAST_OP(0x103A); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x10BA + i] = CAST_OP(0x10BA); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x10FA + i] = CAST_OP(0x10FA); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x113A + i] = CAST_OP(0x113A); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x117A + i] = CAST_OP(0x117A); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x11BA + i] = CAST_OP(0x11BA); - JumpTable[0x11FA] = CAST_OP(0x11FA); - JumpTable[0x13FA] = CAST_OP(0x13FA); - JumpTable[0x1EFA] = CAST_OP(0x1EFA); - JumpTable[0x1F3A] = CAST_OP(0x1F3A); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x103B + i] = CAST_OP(0x103B); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x10BB + i] = CAST_OP(0x10BB); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x10FB + i] = CAST_OP(0x10FB); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x113B + i] = CAST_OP(0x113B); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x117B + i] = CAST_OP(0x117B); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x11BB + i] = CAST_OP(0x11BB); - JumpTable[0x11FB] = CAST_OP(0x11FB); - JumpTable[0x13FB] = CAST_OP(0x13FB); - JumpTable[0x1EFB] = CAST_OP(0x1EFB); - JumpTable[0x1F3B] = CAST_OP(0x1F3B); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x103C + i] = CAST_OP(0x103C); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x10BC + i] = CAST_OP(0x10BC); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x10FC + i] = CAST_OP(0x10FC); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x113C + i] = CAST_OP(0x113C); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x117C + i] = CAST_OP(0x117C); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x11BC + i] = CAST_OP(0x11BC); - JumpTable[0x11FC] = CAST_OP(0x11FC); - JumpTable[0x13FC] = CAST_OP(0x13FC); - JumpTable[0x1EFC] = CAST_OP(0x1EFC); - JumpTable[0x1F3C] = CAST_OP(0x1F3C); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x101F + i] = CAST_OP(0x101F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x109F + i] = CAST_OP(0x109F); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x10DF + i] = CAST_OP(0x10DF); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x111F + i] = CAST_OP(0x111F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x115F + i] = CAST_OP(0x115F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x119F + i] = CAST_OP(0x119F); - JumpTable[0x11DF] = CAST_OP(0x11DF); - JumpTable[0x13DF] = CAST_OP(0x13DF); - JumpTable[0x1EDF] = CAST_OP(0x1EDF); - JumpTable[0x1F1F] = CAST_OP(0x1F1F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x1027 + i] = CAST_OP(0x1027); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x10A7 + i] = CAST_OP(0x10A7); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x10E7 + i] = CAST_OP(0x10E7); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x1127 + i] = CAST_OP(0x1127); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x1167 + i] = CAST_OP(0x1167); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x11A7 + i] = CAST_OP(0x11A7); - JumpTable[0x11E7] = CAST_OP(0x11E7); - JumpTable[0x13E7] = CAST_OP(0x13E7); - JumpTable[0x1EE7] = CAST_OP(0x1EE7); - JumpTable[0x1F27] = CAST_OP(0x1F27); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x2000 + i + j] = CAST_OP(0x2000); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x2080 + i + j] = CAST_OP(0x2080); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x20C0 + i + j] = CAST_OP(0x20C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x2100 + i + j] = CAST_OP(0x2100); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x2140 + i + j] = CAST_OP(0x2140); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x2180 + i + j] = CAST_OP(0x2180); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x21C0 + i] = CAST_OP(0x21C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x23C0 + i] = CAST_OP(0x23C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x2EC0 + i] = CAST_OP(0x2EC0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x2F00 + i] = CAST_OP(0x2F00); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x2008 + i + j] = CAST_OP(0x2008); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x2088 + i + j] = CAST_OP(0x2088); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x20C8 + i + j] = CAST_OP(0x20C8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x2108 + i + j] = CAST_OP(0x2108); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x2148 + i + j] = CAST_OP(0x2148); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x2188 + i + j] = CAST_OP(0x2188); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x21C8 + i] = CAST_OP(0x21C8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x23C8 + i] = CAST_OP(0x23C8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x2EC8 + i] = CAST_OP(0x2EC8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x2F08 + i] = CAST_OP(0x2F08); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x2010 + i + j] = CAST_OP(0x2010); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x2090 + i + j] = CAST_OP(0x2090); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x20D0 + i + j] = CAST_OP(0x20D0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x2110 + i + j] = CAST_OP(0x2110); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x2150 + i + j] = CAST_OP(0x2150); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x2190 + i + j] = CAST_OP(0x2190); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x21D0 + i] = CAST_OP(0x21D0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x23D0 + i] = CAST_OP(0x23D0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x2ED0 + i] = CAST_OP(0x2ED0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x2F10 + i] = CAST_OP(0x2F10); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x2018 + i + j] = CAST_OP(0x2018); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x2098 + i + j] = CAST_OP(0x2098); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x20D8 + i + j] = CAST_OP(0x20D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x2118 + i + j] = CAST_OP(0x2118); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x2158 + i + j] = CAST_OP(0x2158); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x2198 + i + j] = CAST_OP(0x2198); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x21D8 + i] = CAST_OP(0x21D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x23D8 + i] = CAST_OP(0x23D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x2ED8 + i] = CAST_OP(0x2ED8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x2F18 + i] = CAST_OP(0x2F18); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x2020 + i + j] = CAST_OP(0x2020); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x20A0 + i + j] = CAST_OP(0x20A0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x20E0 + i + j] = CAST_OP(0x20E0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x2120 + i + j] = CAST_OP(0x2120); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x2160 + i + j] = CAST_OP(0x2160); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x21A0 + i + j] = CAST_OP(0x21A0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x21E0 + i] = CAST_OP(0x21E0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x23E0 + i] = CAST_OP(0x23E0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x2EE0 + i] = CAST_OP(0x2EE0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x2F20 + i] = CAST_OP(0x2F20); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x2028 + i + j] = CAST_OP(0x2028); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x20A8 + i + j] = CAST_OP(0x20A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x20E8 + i + j] = CAST_OP(0x20E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x2128 + i + j] = CAST_OP(0x2128); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x2168 + i + j] = CAST_OP(0x2168); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x21A8 + i + j] = CAST_OP(0x21A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x21E8 + i] = CAST_OP(0x21E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x23E8 + i] = CAST_OP(0x23E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x2EE8 + i] = CAST_OP(0x2EE8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x2F28 + i] = CAST_OP(0x2F28); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x2030 + i + j] = CAST_OP(0x2030); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x20B0 + i + j] = CAST_OP(0x20B0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x20F0 + i + j] = CAST_OP(0x20F0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x2130 + i + j] = CAST_OP(0x2130); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x2170 + i + j] = CAST_OP(0x2170); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x21B0 + i + j] = CAST_OP(0x21B0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x21F0 + i] = CAST_OP(0x21F0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x23F0 + i] = CAST_OP(0x23F0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x2EF0 + i] = CAST_OP(0x2EF0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x2F30 + i] = CAST_OP(0x2F30); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x2038 + i] = CAST_OP(0x2038); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x20B8 + i] = CAST_OP(0x20B8); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x20F8 + i] = CAST_OP(0x20F8); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x2138 + i] = CAST_OP(0x2138); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x2178 + i] = CAST_OP(0x2178); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x21B8 + i] = CAST_OP(0x21B8); - JumpTable[0x21F8] = CAST_OP(0x21F8); - JumpTable[0x23F8] = CAST_OP(0x23F8); - JumpTable[0x2EF8] = CAST_OP(0x2EF8); - JumpTable[0x2F38] = CAST_OP(0x2F38); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x2039 + i] = CAST_OP(0x2039); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x20B9 + i] = CAST_OP(0x20B9); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x20F9 + i] = CAST_OP(0x20F9); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x2139 + i] = CAST_OP(0x2139); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x2179 + i] = CAST_OP(0x2179); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x21B9 + i] = CAST_OP(0x21B9); - JumpTable[0x21F9] = CAST_OP(0x21F9); - JumpTable[0x23F9] = CAST_OP(0x23F9); - JumpTable[0x2EF9] = CAST_OP(0x2EF9); - JumpTable[0x2F39] = CAST_OP(0x2F39); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x203A + i] = CAST_OP(0x203A); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x20BA + i] = CAST_OP(0x20BA); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x20FA + i] = CAST_OP(0x20FA); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x213A + i] = CAST_OP(0x213A); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x217A + i] = CAST_OP(0x217A); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x21BA + i] = CAST_OP(0x21BA); - JumpTable[0x21FA] = CAST_OP(0x21FA); - JumpTable[0x23FA] = CAST_OP(0x23FA); - JumpTable[0x2EFA] = CAST_OP(0x2EFA); - JumpTable[0x2F3A] = CAST_OP(0x2F3A); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x203B + i] = CAST_OP(0x203B); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x20BB + i] = CAST_OP(0x20BB); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x20FB + i] = CAST_OP(0x20FB); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x213B + i] = CAST_OP(0x213B); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x217B + i] = CAST_OP(0x217B); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x21BB + i] = CAST_OP(0x21BB); - JumpTable[0x21FB] = CAST_OP(0x21FB); - JumpTable[0x23FB] = CAST_OP(0x23FB); - JumpTable[0x2EFB] = CAST_OP(0x2EFB); - JumpTable[0x2F3B] = CAST_OP(0x2F3B); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x203C + i] = CAST_OP(0x203C); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x20BC + i] = CAST_OP(0x20BC); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x20FC + i] = CAST_OP(0x20FC); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x213C + i] = CAST_OP(0x213C); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x217C + i] = CAST_OP(0x217C); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x21BC + i] = CAST_OP(0x21BC); - JumpTable[0x21FC] = CAST_OP(0x21FC); - JumpTable[0x23FC] = CAST_OP(0x23FC); - JumpTable[0x2EFC] = CAST_OP(0x2EFC); - JumpTable[0x2F3C] = CAST_OP(0x2F3C); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x201F + i] = CAST_OP(0x201F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x209F + i] = CAST_OP(0x209F); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x20DF + i] = CAST_OP(0x20DF); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x211F + i] = CAST_OP(0x211F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x215F + i] = CAST_OP(0x215F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x219F + i] = CAST_OP(0x219F); - JumpTable[0x21DF] = CAST_OP(0x21DF); - JumpTable[0x23DF] = CAST_OP(0x23DF); - JumpTable[0x2EDF] = CAST_OP(0x2EDF); - JumpTable[0x2F1F] = CAST_OP(0x2F1F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x2027 + i] = CAST_OP(0x2027); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x20A7 + i] = CAST_OP(0x20A7); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x20E7 + i] = CAST_OP(0x20E7); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x2127 + i] = CAST_OP(0x2127); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x2167 + i] = CAST_OP(0x2167); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x21A7 + i] = CAST_OP(0x21A7); - JumpTable[0x21E7] = CAST_OP(0x21E7); - JumpTable[0x23E7] = CAST_OP(0x23E7); - JumpTable[0x2EE7] = CAST_OP(0x2EE7); - JumpTable[0x2F27] = CAST_OP(0x2F27); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x3000 + i + j] = CAST_OP(0x3000); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x3080 + i + j] = CAST_OP(0x3080); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x30C0 + i + j] = CAST_OP(0x30C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x3100 + i + j] = CAST_OP(0x3100); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x3140 + i + j] = CAST_OP(0x3140); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x3180 + i + j] = CAST_OP(0x3180); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x31C0 + i] = CAST_OP(0x31C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x33C0 + i] = CAST_OP(0x33C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x3EC0 + i] = CAST_OP(0x3EC0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x3F00 + i] = CAST_OP(0x3F00); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x3008 + i + j] = CAST_OP(0x3008); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x3088 + i + j] = CAST_OP(0x3088); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x30C8 + i + j] = CAST_OP(0x30C8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x3108 + i + j] = CAST_OP(0x3108); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x3148 + i + j] = CAST_OP(0x3148); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x3188 + i + j] = CAST_OP(0x3188); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x31C8 + i] = CAST_OP(0x31C8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x33C8 + i] = CAST_OP(0x33C8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x3EC8 + i] = CAST_OP(0x3EC8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x3F08 + i] = CAST_OP(0x3F08); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x3010 + i + j] = CAST_OP(0x3010); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x3090 + i + j] = CAST_OP(0x3090); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x30D0 + i + j] = CAST_OP(0x30D0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x3110 + i + j] = CAST_OP(0x3110); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x3150 + i + j] = CAST_OP(0x3150); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x3190 + i + j] = CAST_OP(0x3190); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x31D0 + i] = CAST_OP(0x31D0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x33D0 + i] = CAST_OP(0x33D0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x3ED0 + i] = CAST_OP(0x3ED0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x3F10 + i] = CAST_OP(0x3F10); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x3018 + i + j] = CAST_OP(0x3018); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x3098 + i + j] = CAST_OP(0x3098); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x30D8 + i + j] = CAST_OP(0x30D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x3118 + i + j] = CAST_OP(0x3118); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x3158 + i + j] = CAST_OP(0x3158); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x3198 + i + j] = CAST_OP(0x3198); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x31D8 + i] = CAST_OP(0x31D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x33D8 + i] = CAST_OP(0x33D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x3ED8 + i] = CAST_OP(0x3ED8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x3F18 + i] = CAST_OP(0x3F18); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x3020 + i + j] = CAST_OP(0x3020); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x30A0 + i + j] = CAST_OP(0x30A0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x30E0 + i + j] = CAST_OP(0x30E0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x3120 + i + j] = CAST_OP(0x3120); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x3160 + i + j] = CAST_OP(0x3160); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x31A0 + i + j] = CAST_OP(0x31A0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x31E0 + i] = CAST_OP(0x31E0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x33E0 + i] = CAST_OP(0x33E0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x3EE0 + i] = CAST_OP(0x3EE0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x3F20 + i] = CAST_OP(0x3F20); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x3028 + i + j] = CAST_OP(0x3028); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x30A8 + i + j] = CAST_OP(0x30A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x30E8 + i + j] = CAST_OP(0x30E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x3128 + i + j] = CAST_OP(0x3128); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x3168 + i + j] = CAST_OP(0x3168); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x31A8 + i + j] = CAST_OP(0x31A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x31E8 + i] = CAST_OP(0x31E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x33E8 + i] = CAST_OP(0x33E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x3EE8 + i] = CAST_OP(0x3EE8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x3F28 + i] = CAST_OP(0x3F28); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x3030 + i + j] = CAST_OP(0x3030); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x30B0 + i + j] = CAST_OP(0x30B0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x30F0 + i + j] = CAST_OP(0x30F0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x3130 + i + j] = CAST_OP(0x3130); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x3170 + i + j] = CAST_OP(0x3170); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x31B0 + i + j] = CAST_OP(0x31B0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x31F0 + i] = CAST_OP(0x31F0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x33F0 + i] = CAST_OP(0x33F0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x3EF0 + i] = CAST_OP(0x3EF0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x3F30 + i] = CAST_OP(0x3F30); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x3038 + i] = CAST_OP(0x3038); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x30B8 + i] = CAST_OP(0x30B8); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x30F8 + i] = CAST_OP(0x30F8); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x3138 + i] = CAST_OP(0x3138); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x3178 + i] = CAST_OP(0x3178); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x31B8 + i] = CAST_OP(0x31B8); - JumpTable[0x31F8] = CAST_OP(0x31F8); - JumpTable[0x33F8] = CAST_OP(0x33F8); - JumpTable[0x3EF8] = CAST_OP(0x3EF8); - JumpTable[0x3F38] = CAST_OP(0x3F38); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x3039 + i] = CAST_OP(0x3039); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x30B9 + i] = CAST_OP(0x30B9); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x30F9 + i] = CAST_OP(0x30F9); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x3139 + i] = CAST_OP(0x3139); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x3179 + i] = CAST_OP(0x3179); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x31B9 + i] = CAST_OP(0x31B9); - JumpTable[0x31F9] = CAST_OP(0x31F9); - JumpTable[0x33F9] = CAST_OP(0x33F9); - JumpTable[0x3EF9] = CAST_OP(0x3EF9); - JumpTable[0x3F39] = CAST_OP(0x3F39); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x303A + i] = CAST_OP(0x303A); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x30BA + i] = CAST_OP(0x30BA); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x30FA + i] = CAST_OP(0x30FA); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x313A + i] = CAST_OP(0x313A); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x317A + i] = CAST_OP(0x317A); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x31BA + i] = CAST_OP(0x31BA); - JumpTable[0x31FA] = CAST_OP(0x31FA); - JumpTable[0x33FA] = CAST_OP(0x33FA); - JumpTable[0x3EFA] = CAST_OP(0x3EFA); - JumpTable[0x3F3A] = CAST_OP(0x3F3A); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x303B + i] = CAST_OP(0x303B); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x30BB + i] = CAST_OP(0x30BB); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x30FB + i] = CAST_OP(0x30FB); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x313B + i] = CAST_OP(0x313B); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x317B + i] = CAST_OP(0x317B); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x31BB + i] = CAST_OP(0x31BB); - JumpTable[0x31FB] = CAST_OP(0x31FB); - JumpTable[0x33FB] = CAST_OP(0x33FB); - JumpTable[0x3EFB] = CAST_OP(0x3EFB); - JumpTable[0x3F3B] = CAST_OP(0x3F3B); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x303C + i] = CAST_OP(0x303C); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x30BC + i] = CAST_OP(0x30BC); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x30FC + i] = CAST_OP(0x30FC); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x313C + i] = CAST_OP(0x313C); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x317C + i] = CAST_OP(0x317C); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x31BC + i] = CAST_OP(0x31BC); - JumpTable[0x31FC] = CAST_OP(0x31FC); - JumpTable[0x33FC] = CAST_OP(0x33FC); - JumpTable[0x3EFC] = CAST_OP(0x3EFC); - JumpTable[0x3F3C] = CAST_OP(0x3F3C); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x301F + i] = CAST_OP(0x301F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x309F + i] = CAST_OP(0x309F); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x30DF + i] = CAST_OP(0x30DF); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x311F + i] = CAST_OP(0x311F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x315F + i] = CAST_OP(0x315F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x319F + i] = CAST_OP(0x319F); - JumpTable[0x31DF] = CAST_OP(0x31DF); - JumpTable[0x33DF] = CAST_OP(0x33DF); - JumpTable[0x3EDF] = CAST_OP(0x3EDF); - JumpTable[0x3F1F] = CAST_OP(0x3F1F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x3027 + i] = CAST_OP(0x3027); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x30A7 + i] = CAST_OP(0x30A7); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x30E7 + i] = CAST_OP(0x30E7); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x3127 + i] = CAST_OP(0x3127); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x3167 + i] = CAST_OP(0x3167); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x31A7 + i] = CAST_OP(0x31A7); - JumpTable[0x31E7] = CAST_OP(0x31E7); - JumpTable[0x33E7] = CAST_OP(0x33E7); - JumpTable[0x3EE7] = CAST_OP(0x3EE7); - JumpTable[0x3F27] = CAST_OP(0x3F27); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x2040 + i + j] = CAST_OP(0x2040); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x2048 + i + j] = CAST_OP(0x2048); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x2050 + i + j] = CAST_OP(0x2050); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x2058 + i + j] = CAST_OP(0x2058); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x2060 + i + j] = CAST_OP(0x2060); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x2068 + i + j] = CAST_OP(0x2068); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x2070 + i + j] = CAST_OP(0x2070); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x2078 + i] = CAST_OP(0x2078); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x2079 + i] = CAST_OP(0x2079); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x207A + i] = CAST_OP(0x207A); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x207B + i] = CAST_OP(0x207B); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x207C + i] = CAST_OP(0x207C); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x205F + i] = CAST_OP(0x205F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x2067 + i] = CAST_OP(0x2067); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x3040 + i + j] = CAST_OP(0x3040); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x3048 + i + j] = CAST_OP(0x3048); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x3050 + i + j] = CAST_OP(0x3050); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x3058 + i + j] = CAST_OP(0x3058); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x3060 + i + j] = CAST_OP(0x3060); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x3068 + i + j] = CAST_OP(0x3068); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x3070 + i + j] = CAST_OP(0x3070); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x3078 + i] = CAST_OP(0x3078); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x3079 + i] = CAST_OP(0x3079); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x307A + i] = CAST_OP(0x307A); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x307B + i] = CAST_OP(0x307B); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x307C + i] = CAST_OP(0x307C); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x305F + i] = CAST_OP(0x305F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x3067 + i] = CAST_OP(0x3067); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4000 + i] = CAST_OP(0x4000); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4010 + i] = CAST_OP(0x4010); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4018 + i] = CAST_OP(0x4018); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4020 + i] = CAST_OP(0x4020); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4028 + i] = CAST_OP(0x4028); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4030 + i] = CAST_OP(0x4030); - JumpTable[0x4038] = CAST_OP(0x4038); - JumpTable[0x4039] = CAST_OP(0x4039); - JumpTable[0x401F] = CAST_OP(0x401F); - JumpTable[0x4027] = CAST_OP(0x4027); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4040 + i] = CAST_OP(0x4040); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4050 + i] = CAST_OP(0x4050); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4058 + i] = CAST_OP(0x4058); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4060 + i] = CAST_OP(0x4060); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4068 + i] = CAST_OP(0x4068); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4070 + i] = CAST_OP(0x4070); - JumpTable[0x4078] = CAST_OP(0x4078); - JumpTable[0x4079] = CAST_OP(0x4079); - JumpTable[0x405F] = CAST_OP(0x405F); - JumpTable[0x4067] = CAST_OP(0x4067); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4080 + i] = CAST_OP(0x4080); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4090 + i] = CAST_OP(0x4090); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4098 + i] = CAST_OP(0x4098); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x40A0 + i] = CAST_OP(0x40A0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x40A8 + i] = CAST_OP(0x40A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x40B0 + i] = CAST_OP(0x40B0); - JumpTable[0x40B8] = CAST_OP(0x40B8); - JumpTable[0x40B9] = CAST_OP(0x40B9); - JumpTable[0x409F] = CAST_OP(0x409F); - JumpTable[0x40A7] = CAST_OP(0x40A7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4200 + i] = CAST_OP(0x4200); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4210 + i] = CAST_OP(0x4210); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4218 + i] = CAST_OP(0x4218); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4220 + i] = CAST_OP(0x4220); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4228 + i] = CAST_OP(0x4228); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4230 + i] = CAST_OP(0x4230); - JumpTable[0x4238] = CAST_OP(0x4238); - JumpTable[0x4239] = CAST_OP(0x4239); - JumpTable[0x421F] = CAST_OP(0x421F); - JumpTable[0x4227] = CAST_OP(0x4227); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4240 + i] = CAST_OP(0x4240); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4250 + i] = CAST_OP(0x4250); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4258 + i] = CAST_OP(0x4258); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4260 + i] = CAST_OP(0x4260); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4268 + i] = CAST_OP(0x4268); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4270 + i] = CAST_OP(0x4270); - JumpTable[0x4278] = CAST_OP(0x4278); - JumpTable[0x4279] = CAST_OP(0x4279); - JumpTable[0x425F] = CAST_OP(0x425F); - JumpTable[0x4267] = CAST_OP(0x4267); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4280 + i] = CAST_OP(0x4280); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4290 + i] = CAST_OP(0x4290); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4298 + i] = CAST_OP(0x4298); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x42A0 + i] = CAST_OP(0x42A0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x42A8 + i] = CAST_OP(0x42A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x42B0 + i] = CAST_OP(0x42B0); - JumpTable[0x42B8] = CAST_OP(0x42B8); - JumpTable[0x42B9] = CAST_OP(0x42B9); - JumpTable[0x429F] = CAST_OP(0x429F); - JumpTable[0x42A7] = CAST_OP(0x42A7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4400 + i] = CAST_OP(0x4400); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4410 + i] = CAST_OP(0x4410); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4418 + i] = CAST_OP(0x4418); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4420 + i] = CAST_OP(0x4420); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4428 + i] = CAST_OP(0x4428); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4430 + i] = CAST_OP(0x4430); - JumpTable[0x4438] = CAST_OP(0x4438); - JumpTable[0x4439] = CAST_OP(0x4439); - JumpTable[0x441F] = CAST_OP(0x441F); - JumpTable[0x4427] = CAST_OP(0x4427); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4440 + i] = CAST_OP(0x4440); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4450 + i] = CAST_OP(0x4450); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4458 + i] = CAST_OP(0x4458); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4460 + i] = CAST_OP(0x4460); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4468 + i] = CAST_OP(0x4468); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4470 + i] = CAST_OP(0x4470); - JumpTable[0x4478] = CAST_OP(0x4478); - JumpTable[0x4479] = CAST_OP(0x4479); - JumpTable[0x445F] = CAST_OP(0x445F); - JumpTable[0x4467] = CAST_OP(0x4467); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4480 + i] = CAST_OP(0x4480); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4490 + i] = CAST_OP(0x4490); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4498 + i] = CAST_OP(0x4498); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x44A0 + i] = CAST_OP(0x44A0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x44A8 + i] = CAST_OP(0x44A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x44B0 + i] = CAST_OP(0x44B0); - JumpTable[0x44B8] = CAST_OP(0x44B8); - JumpTable[0x44B9] = CAST_OP(0x44B9); - JumpTable[0x449F] = CAST_OP(0x449F); - JumpTable[0x44A7] = CAST_OP(0x44A7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4600 + i] = CAST_OP(0x4600); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4610 + i] = CAST_OP(0x4610); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4618 + i] = CAST_OP(0x4618); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4620 + i] = CAST_OP(0x4620); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4628 + i] = CAST_OP(0x4628); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4630 + i] = CAST_OP(0x4630); - JumpTable[0x4638] = CAST_OP(0x4638); - JumpTable[0x4639] = CAST_OP(0x4639); - JumpTable[0x461F] = CAST_OP(0x461F); - JumpTable[0x4627] = CAST_OP(0x4627); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4640 + i] = CAST_OP(0x4640); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4650 + i] = CAST_OP(0x4650); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4658 + i] = CAST_OP(0x4658); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4660 + i] = CAST_OP(0x4660); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4668 + i] = CAST_OP(0x4668); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4670 + i] = CAST_OP(0x4670); - JumpTable[0x4678] = CAST_OP(0x4678); - JumpTable[0x4679] = CAST_OP(0x4679); - JumpTable[0x465F] = CAST_OP(0x465F); - JumpTable[0x4667] = CAST_OP(0x4667); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4680 + i] = CAST_OP(0x4680); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4690 + i] = CAST_OP(0x4690); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4698 + i] = CAST_OP(0x4698); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x46A0 + i] = CAST_OP(0x46A0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x46A8 + i] = CAST_OP(0x46A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x46B0 + i] = CAST_OP(0x46B0); - JumpTable[0x46B8] = CAST_OP(0x46B8); - JumpTable[0x46B9] = CAST_OP(0x46B9); - JumpTable[0x469F] = CAST_OP(0x469F); - JumpTable[0x46A7] = CAST_OP(0x46A7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x40C0 + i] = CAST_OP(0x40C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x40D0 + i] = CAST_OP(0x40D0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x40D8 + i] = CAST_OP(0x40D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x40E0 + i] = CAST_OP(0x40E0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x40E8 + i] = CAST_OP(0x40E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x40F0 + i] = CAST_OP(0x40F0); - JumpTable[0x40F8] = CAST_OP(0x40F8); - JumpTable[0x40F9] = CAST_OP(0x40F9); - JumpTable[0x40DF] = CAST_OP(0x40DF); - JumpTable[0x40E7] = CAST_OP(0x40E7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x44C0 + i] = CAST_OP(0x44C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x44D0 + i] = CAST_OP(0x44D0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x44D8 + i] = CAST_OP(0x44D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x44E0 + i] = CAST_OP(0x44E0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x44E8 + i] = CAST_OP(0x44E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x44F0 + i] = CAST_OP(0x44F0); - JumpTable[0x44F8] = CAST_OP(0x44F8); - JumpTable[0x44F9] = CAST_OP(0x44F9); - JumpTable[0x44FA] = CAST_OP(0x44FA); - JumpTable[0x44FB] = CAST_OP(0x44FB); - JumpTable[0x44FC] = CAST_OP(0x44FC); - JumpTable[0x44DF] = CAST_OP(0x44DF); - JumpTable[0x44E7] = CAST_OP(0x44E7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x46C0 + i] = CAST_OP(0x46C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x46D0 + i] = CAST_OP(0x46D0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x46D8 + i] = CAST_OP(0x46D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x46E0 + i] = CAST_OP(0x46E0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x46E8 + i] = CAST_OP(0x46E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x46F0 + i] = CAST_OP(0x46F0); - JumpTable[0x46F8] = CAST_OP(0x46F8); - JumpTable[0x46F9] = CAST_OP(0x46F9); - JumpTable[0x46FA] = CAST_OP(0x46FA); - JumpTable[0x46FB] = CAST_OP(0x46FB); - JumpTable[0x46FC] = CAST_OP(0x46FC); - JumpTable[0x46DF] = CAST_OP(0x46DF); - JumpTable[0x46E7] = CAST_OP(0x46E7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4800 + i] = CAST_OP(0x4800); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4810 + i] = CAST_OP(0x4810); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4818 + i] = CAST_OP(0x4818); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4820 + i] = CAST_OP(0x4820); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4828 + i] = CAST_OP(0x4828); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4830 + i] = CAST_OP(0x4830); - JumpTable[0x4838] = CAST_OP(0x4838); - JumpTable[0x4839] = CAST_OP(0x4839); - JumpTable[0x481F] = CAST_OP(0x481F); - JumpTable[0x4827] = CAST_OP(0x4827); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4850 + i] = CAST_OP(0x4850); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4868 + i] = CAST_OP(0x4868); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4870 + i] = CAST_OP(0x4870); - JumpTable[0x4878] = CAST_OP(0x4878); - JumpTable[0x4879] = CAST_OP(0x4879); - JumpTable[0x487A] = CAST_OP(0x487A); - JumpTable[0x487B] = CAST_OP(0x487B); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4840 + i] = CAST_OP(0x4840); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4890 + i] = CAST_OP(0x4890); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x48A0 + i] = CAST_OP(0x48A0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x48A8 + i] = CAST_OP(0x48A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x48B0 + i] = CAST_OP(0x48B0); - JumpTable[0x48B8] = CAST_OP(0x48B8); - JumpTable[0x48B9] = CAST_OP(0x48B9); - JumpTable[0x48A7] = CAST_OP(0x48A7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x48D0 + i] = CAST_OP(0x48D0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x48E0 + i] = CAST_OP(0x48E0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x48E8 + i] = CAST_OP(0x48E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x48F0 + i] = CAST_OP(0x48F0); - JumpTable[0x48F8] = CAST_OP(0x48F8); - JumpTable[0x48F9] = CAST_OP(0x48F9); - JumpTable[0x48E7] = CAST_OP(0x48E7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4880 + i] = CAST_OP(0x4880); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x48C0 + i] = CAST_OP(0x48C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4A00 + i] = CAST_OP(0x4A00); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4A10 + i] = CAST_OP(0x4A10); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4A18 + i] = CAST_OP(0x4A18); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4A20 + i] = CAST_OP(0x4A20); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4A28 + i] = CAST_OP(0x4A28); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4A30 + i] = CAST_OP(0x4A30); - JumpTable[0x4A38] = CAST_OP(0x4A38); - JumpTable[0x4A39] = CAST_OP(0x4A39); - JumpTable[0x4A1F] = CAST_OP(0x4A1F); - JumpTable[0x4A27] = CAST_OP(0x4A27); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4A40 + i] = CAST_OP(0x4A40); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4A50 + i] = CAST_OP(0x4A50); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4A58 + i] = CAST_OP(0x4A58); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4A60 + i] = CAST_OP(0x4A60); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4A68 + i] = CAST_OP(0x4A68); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4A70 + i] = CAST_OP(0x4A70); - JumpTable[0x4A78] = CAST_OP(0x4A78); - JumpTable[0x4A79] = CAST_OP(0x4A79); - JumpTable[0x4A5F] = CAST_OP(0x4A5F); - JumpTable[0x4A67] = CAST_OP(0x4A67); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4A80 + i] = CAST_OP(0x4A80); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4A90 + i] = CAST_OP(0x4A90); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4A98 + i] = CAST_OP(0x4A98); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4AA0 + i] = CAST_OP(0x4AA0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4AA8 + i] = CAST_OP(0x4AA8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4AB0 + i] = CAST_OP(0x4AB0); - JumpTable[0x4AB8] = CAST_OP(0x4AB8); - JumpTable[0x4AB9] = CAST_OP(0x4AB9); - JumpTable[0x4A9F] = CAST_OP(0x4A9F); - JumpTable[0x4AA7] = CAST_OP(0x4AA7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4AC0 + i] = CAST_OP(0x4AC0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4AD0 + i] = CAST_OP(0x4AD0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4AD8 + i] = CAST_OP(0x4AD8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4AE0 + i] = CAST_OP(0x4AE0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4AE8 + i] = CAST_OP(0x4AE8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4AF0 + i] = CAST_OP(0x4AF0); - JumpTable[0x4AF8] = CAST_OP(0x4AF8); - JumpTable[0x4AF9] = CAST_OP(0x4AF9); - JumpTable[0x4ADF] = CAST_OP(0x4ADF); - JumpTable[0x4AE7] = CAST_OP(0x4AE7); - JumpTable[0x4AFC] = CAST_OP(0x4AFC); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4C90 + i] = CAST_OP(0x4C90); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4C98 + i] = CAST_OP(0x4C98); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4CA8 + i] = CAST_OP(0x4CA8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4CB0 + i] = CAST_OP(0x4CB0); - JumpTable[0x4CB8] = CAST_OP(0x4CB8); - JumpTable[0x4CB9] = CAST_OP(0x4CB9); - JumpTable[0x4CBA] = CAST_OP(0x4CBA); - JumpTable[0x4CBB] = CAST_OP(0x4CBB); - JumpTable[0x4C9F] = CAST_OP(0x4C9F); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4CD0 + i] = CAST_OP(0x4CD0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x4CD8 + i] = CAST_OP(0x4CD8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4CE8 + i] = CAST_OP(0x4CE8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4CF0 + i] = CAST_OP(0x4CF0); - JumpTable[0x4CF8] = CAST_OP(0x4CF8); - JumpTable[0x4CF9] = CAST_OP(0x4CF9); - JumpTable[0x4CFA] = CAST_OP(0x4CFA); - JumpTable[0x4CFB] = CAST_OP(0x4CFB); - JumpTable[0x4CDF] = CAST_OP(0x4CDF); - for(i = 0x0000; i <= 0x000F; i += 0x0001) - JumpTable[0x4E40 + i] = CAST_OP(0x4E40); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4E50 + i] = CAST_OP(0x4E50); - JumpTable[0x4E57] = CAST_OP(0x4E57); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4E58 + i] = CAST_OP(0x4E58); - JumpTable[0x4E5F] = CAST_OP(0x4E5F); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4E60 + i] = CAST_OP(0x4E60); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4E68 + i] = CAST_OP(0x4E68); - JumpTable[0x4E70] = CAST_OP(0x4E70); - JumpTable[0x4E71] = CAST_OP(0x4E71); - JumpTable[0x4E72] = CAST_OP(0x4E72); - JumpTable[0x4E73] = CAST_OP(0x4E73); - JumpTable[0x4E75] = CAST_OP(0x4E75); - JumpTable[0x4E76] = CAST_OP(0x4E76); - JumpTable[0x4E77] = CAST_OP(0x4E77); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4E90 + i] = CAST_OP(0x4E90); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4EA8 + i] = CAST_OP(0x4EA8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4EB0 + i] = CAST_OP(0x4EB0); - JumpTable[0x4EB8] = CAST_OP(0x4EB8); - JumpTable[0x4EB9] = CAST_OP(0x4EB9); - JumpTable[0x4EBA] = CAST_OP(0x4EBA); - JumpTable[0x4EBB] = CAST_OP(0x4EBB); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4ED0 + i] = CAST_OP(0x4ED0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4EE8 + i] = CAST_OP(0x4EE8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x4EF0 + i] = CAST_OP(0x4EF0); - JumpTable[0x4EF8] = CAST_OP(0x4EF8); - JumpTable[0x4EF9] = CAST_OP(0x4EF9); - JumpTable[0x4EFA] = CAST_OP(0x4EFA); - JumpTable[0x4EFB] = CAST_OP(0x4EFB); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x4180 + i + j] = CAST_OP(0x4180); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x4190 + i + j] = CAST_OP(0x4190); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x4198 + i + j] = CAST_OP(0x4198); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x41A0 + i + j] = CAST_OP(0x41A0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x41A8 + i + j] = CAST_OP(0x41A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x41B0 + i + j] = CAST_OP(0x41B0); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x41B8 + i] = CAST_OP(0x41B8); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x41B9 + i] = CAST_OP(0x41B9); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x41BA + i] = CAST_OP(0x41BA); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x41BB + i] = CAST_OP(0x41BB); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x41BC + i] = CAST_OP(0x41BC); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x419F + i] = CAST_OP(0x419F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x41A7 + i] = CAST_OP(0x41A7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x41D0 + i + j] = CAST_OP(0x41D0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x41E8 + i + j] = CAST_OP(0x41E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x41F0 + i + j] = CAST_OP(0x41F0); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x41F8 + i] = CAST_OP(0x41F8); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x41F9 + i] = CAST_OP(0x41F9); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x41FA + i] = CAST_OP(0x41FA); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x41FB + i] = CAST_OP(0x41FB); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x50C0 + i] = CAST_OP(0x50C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x51C0 + i] = CAST_OP(0x51C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x52C0 + i] = CAST_OP(0x52C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x53C0 + i] = CAST_OP(0x53C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x54C0 + i] = CAST_OP(0x54C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x55C0 + i] = CAST_OP(0x55C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x56C0 + i] = CAST_OP(0x56C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x57C0 + i] = CAST_OP(0x57C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x58C0 + i] = CAST_OP(0x58C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x59C0 + i] = CAST_OP(0x59C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x5AC0 + i] = CAST_OP(0x5AC0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x5BC0 + i] = CAST_OP(0x5BC0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x5CC0 + i] = CAST_OP(0x5CC0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x5DC0 + i] = CAST_OP(0x5DC0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x5EC0 + i] = CAST_OP(0x5EC0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x5FC0 + i] = CAST_OP(0x5FC0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x50D0 + i] = CAST_OP(0x50D0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x51D0 + i] = CAST_OP(0x51D0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x52D0 + i] = CAST_OP(0x52D0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x53D0 + i] = CAST_OP(0x53D0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x54D0 + i] = CAST_OP(0x54D0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x55D0 + i] = CAST_OP(0x55D0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x56D0 + i] = CAST_OP(0x56D0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x57D0 + i] = CAST_OP(0x57D0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x58D0 + i] = CAST_OP(0x58D0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x59D0 + i] = CAST_OP(0x59D0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x5AD0 + i] = CAST_OP(0x5AD0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x5BD0 + i] = CAST_OP(0x5BD0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x5CD0 + i] = CAST_OP(0x5CD0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x5DD0 + i] = CAST_OP(0x5DD0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x5ED0 + i] = CAST_OP(0x5ED0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x5FD0 + i] = CAST_OP(0x5FD0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x50D8 + i] = CAST_OP(0x50D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x51D8 + i] = CAST_OP(0x51D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x52D8 + i] = CAST_OP(0x52D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x53D8 + i] = CAST_OP(0x53D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x54D8 + i] = CAST_OP(0x54D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x55D8 + i] = CAST_OP(0x55D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x56D8 + i] = CAST_OP(0x56D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x57D8 + i] = CAST_OP(0x57D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x58D8 + i] = CAST_OP(0x58D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x59D8 + i] = CAST_OP(0x59D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x5AD8 + i] = CAST_OP(0x5AD8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x5BD8 + i] = CAST_OP(0x5BD8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x5CD8 + i] = CAST_OP(0x5CD8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x5DD8 + i] = CAST_OP(0x5DD8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x5ED8 + i] = CAST_OP(0x5ED8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x5FD8 + i] = CAST_OP(0x5FD8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x50E0 + i] = CAST_OP(0x50E0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x51E0 + i] = CAST_OP(0x51E0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x52E0 + i] = CAST_OP(0x52E0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x53E0 + i] = CAST_OP(0x53E0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x54E0 + i] = CAST_OP(0x54E0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x55E0 + i] = CAST_OP(0x55E0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x56E0 + i] = CAST_OP(0x56E0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x57E0 + i] = CAST_OP(0x57E0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x58E0 + i] = CAST_OP(0x58E0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x59E0 + i] = CAST_OP(0x59E0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x5AE0 + i] = CAST_OP(0x5AE0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x5BE0 + i] = CAST_OP(0x5BE0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x5CE0 + i] = CAST_OP(0x5CE0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x5DE0 + i] = CAST_OP(0x5DE0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x5EE0 + i] = CAST_OP(0x5EE0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x5FE0 + i] = CAST_OP(0x5FE0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x50E8 + i] = CAST_OP(0x50E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x51E8 + i] = CAST_OP(0x51E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x52E8 + i] = CAST_OP(0x52E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x53E8 + i] = CAST_OP(0x53E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x54E8 + i] = CAST_OP(0x54E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x55E8 + i] = CAST_OP(0x55E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x56E8 + i] = CAST_OP(0x56E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x57E8 + i] = CAST_OP(0x57E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x58E8 + i] = CAST_OP(0x58E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x59E8 + i] = CAST_OP(0x59E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x5AE8 + i] = CAST_OP(0x5AE8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x5BE8 + i] = CAST_OP(0x5BE8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x5CE8 + i] = CAST_OP(0x5CE8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x5DE8 + i] = CAST_OP(0x5DE8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x5EE8 + i] = CAST_OP(0x5EE8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x5FE8 + i] = CAST_OP(0x5FE8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x50F0 + i] = CAST_OP(0x50F0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x51F0 + i] = CAST_OP(0x51F0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x52F0 + i] = CAST_OP(0x52F0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x53F0 + i] = CAST_OP(0x53F0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x54F0 + i] = CAST_OP(0x54F0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x55F0 + i] = CAST_OP(0x55F0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x56F0 + i] = CAST_OP(0x56F0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x57F0 + i] = CAST_OP(0x57F0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x58F0 + i] = CAST_OP(0x58F0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x59F0 + i] = CAST_OP(0x59F0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x5AF0 + i] = CAST_OP(0x5AF0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x5BF0 + i] = CAST_OP(0x5BF0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x5CF0 + i] = CAST_OP(0x5CF0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x5DF0 + i] = CAST_OP(0x5DF0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x5EF0 + i] = CAST_OP(0x5EF0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x5FF0 + i] = CAST_OP(0x5FF0); - JumpTable[0x50F8] = CAST_OP(0x50F8); - JumpTable[0x51F8] = CAST_OP(0x51F8); - JumpTable[0x52F8] = CAST_OP(0x52F8); - JumpTable[0x53F8] = CAST_OP(0x53F8); - JumpTable[0x54F8] = CAST_OP(0x54F8); - JumpTable[0x55F8] = CAST_OP(0x55F8); - JumpTable[0x56F8] = CAST_OP(0x56F8); - JumpTable[0x57F8] = CAST_OP(0x57F8); - JumpTable[0x58F8] = CAST_OP(0x58F8); - JumpTable[0x59F8] = CAST_OP(0x59F8); - JumpTable[0x5AF8] = CAST_OP(0x5AF8); - JumpTable[0x5BF8] = CAST_OP(0x5BF8); - JumpTable[0x5CF8] = CAST_OP(0x5CF8); - JumpTable[0x5DF8] = CAST_OP(0x5DF8); - JumpTable[0x5EF8] = CAST_OP(0x5EF8); - JumpTable[0x5FF8] = CAST_OP(0x5FF8); - JumpTable[0x50F9] = CAST_OP(0x50F9); - JumpTable[0x51F9] = CAST_OP(0x51F9); - JumpTable[0x52F9] = CAST_OP(0x52F9); - JumpTable[0x53F9] = CAST_OP(0x53F9); - JumpTable[0x54F9] = CAST_OP(0x54F9); - JumpTable[0x55F9] = CAST_OP(0x55F9); - JumpTable[0x56F9] = CAST_OP(0x56F9); - JumpTable[0x57F9] = CAST_OP(0x57F9); - JumpTable[0x58F9] = CAST_OP(0x58F9); - JumpTable[0x59F9] = CAST_OP(0x59F9); - JumpTable[0x5AF9] = CAST_OP(0x5AF9); - JumpTable[0x5BF9] = CAST_OP(0x5BF9); - JumpTable[0x5CF9] = CAST_OP(0x5CF9); - JumpTable[0x5DF9] = CAST_OP(0x5DF9); - JumpTable[0x5EF9] = CAST_OP(0x5EF9); - JumpTable[0x5FF9] = CAST_OP(0x5FF9); - JumpTable[0x50DF] = CAST_OP(0x50DF); - JumpTable[0x51DF] = CAST_OP(0x51DF); - JumpTable[0x52DF] = CAST_OP(0x52DF); - JumpTable[0x53DF] = CAST_OP(0x53DF); - JumpTable[0x54DF] = CAST_OP(0x54DF); - JumpTable[0x55DF] = CAST_OP(0x55DF); - JumpTable[0x56DF] = CAST_OP(0x56DF); - JumpTable[0x57DF] = CAST_OP(0x57DF); - JumpTable[0x58DF] = CAST_OP(0x58DF); - JumpTable[0x59DF] = CAST_OP(0x59DF); - JumpTable[0x5ADF] = CAST_OP(0x5ADF); - JumpTable[0x5BDF] = CAST_OP(0x5BDF); - JumpTable[0x5CDF] = CAST_OP(0x5CDF); - JumpTable[0x5DDF] = CAST_OP(0x5DDF); - JumpTable[0x5EDF] = CAST_OP(0x5EDF); - JumpTable[0x5FDF] = CAST_OP(0x5FDF); - JumpTable[0x50E7] = CAST_OP(0x50E7); - JumpTable[0x51E7] = CAST_OP(0x51E7); - JumpTable[0x52E7] = CAST_OP(0x52E7); - JumpTable[0x53E7] = CAST_OP(0x53E7); - JumpTable[0x54E7] = CAST_OP(0x54E7); - JumpTable[0x55E7] = CAST_OP(0x55E7); - JumpTable[0x56E7] = CAST_OP(0x56E7); - JumpTable[0x57E7] = CAST_OP(0x57E7); - JumpTable[0x58E7] = CAST_OP(0x58E7); - JumpTable[0x59E7] = CAST_OP(0x59E7); - JumpTable[0x5AE7] = CAST_OP(0x5AE7); - JumpTable[0x5BE7] = CAST_OP(0x5BE7); - JumpTable[0x5CE7] = CAST_OP(0x5CE7); - JumpTable[0x5DE7] = CAST_OP(0x5DE7); - JumpTable[0x5EE7] = CAST_OP(0x5EE7); - JumpTable[0x5FE7] = CAST_OP(0x5FE7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x50C8 + i] = CAST_OP(0x50C8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x51C8 + i] = CAST_OP(0x51C8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x52C8 + i] = CAST_OP(0x52C8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x53C8 + i] = CAST_OP(0x53C8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x54C8 + i] = CAST_OP(0x54C8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x55C8 + i] = CAST_OP(0x55C8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x56C8 + i] = CAST_OP(0x56C8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x57C8 + i] = CAST_OP(0x57C8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x58C8 + i] = CAST_OP(0x58C8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x59C8 + i] = CAST_OP(0x59C8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x5AC8 + i] = CAST_OP(0x5AC8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x5BC8 + i] = CAST_OP(0x5BC8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x5CC8 + i] = CAST_OP(0x5CC8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x5DC8 + i] = CAST_OP(0x5DC8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x5EC8 + i] = CAST_OP(0x5EC8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0x5FC8 + i] = CAST_OP(0x5FC8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5000 + i + j] = CAST_OP(0x5000); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5010 + i + j] = CAST_OP(0x5010); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5018 + i + j] = CAST_OP(0x5018); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5020 + i + j] = CAST_OP(0x5020); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5028 + i + j] = CAST_OP(0x5028); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5030 + i + j] = CAST_OP(0x5030); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x5038 + i] = CAST_OP(0x5038); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x5039 + i] = CAST_OP(0x5039); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x501F + i] = CAST_OP(0x501F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x5027 + i] = CAST_OP(0x5027); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5040 + i + j] = CAST_OP(0x5040); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5048 + i + j] = CAST_OP(0x5048); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5050 + i + j] = CAST_OP(0x5050); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5058 + i + j] = CAST_OP(0x5058); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5060 + i + j] = CAST_OP(0x5060); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5068 + i + j] = CAST_OP(0x5068); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5070 + i + j] = CAST_OP(0x5070); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x5078 + i] = CAST_OP(0x5078); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x5079 + i] = CAST_OP(0x5079); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x505F + i] = CAST_OP(0x505F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x5067 + i] = CAST_OP(0x5067); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5080 + i + j] = CAST_OP(0x5080); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5088 + i + j] = CAST_OP(0x5088); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5090 + i + j] = CAST_OP(0x5090); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5098 + i + j] = CAST_OP(0x5098); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x50A0 + i + j] = CAST_OP(0x50A0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x50A8 + i + j] = CAST_OP(0x50A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x50B0 + i + j] = CAST_OP(0x50B0); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x50B8 + i] = CAST_OP(0x50B8); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x50B9 + i] = CAST_OP(0x50B9); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x509F + i] = CAST_OP(0x509F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x50A7 + i] = CAST_OP(0x50A7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5100 + i + j] = CAST_OP(0x5100); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5110 + i + j] = CAST_OP(0x5110); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5118 + i + j] = CAST_OP(0x5118); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5120 + i + j] = CAST_OP(0x5120); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5128 + i + j] = CAST_OP(0x5128); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5130 + i + j] = CAST_OP(0x5130); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x5138 + i] = CAST_OP(0x5138); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x5139 + i] = CAST_OP(0x5139); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x511F + i] = CAST_OP(0x511F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x5127 + i] = CAST_OP(0x5127); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5140 + i + j] = CAST_OP(0x5140); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5148 + i + j] = CAST_OP(0x5148); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5150 + i + j] = CAST_OP(0x5150); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5158 + i + j] = CAST_OP(0x5158); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5160 + i + j] = CAST_OP(0x5160); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5168 + i + j] = CAST_OP(0x5168); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5170 + i + j] = CAST_OP(0x5170); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x5178 + i] = CAST_OP(0x5178); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x5179 + i] = CAST_OP(0x5179); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x515F + i] = CAST_OP(0x515F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x5167 + i] = CAST_OP(0x5167); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5180 + i + j] = CAST_OP(0x5180); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5188 + i + j] = CAST_OP(0x5188); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5190 + i + j] = CAST_OP(0x5190); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x5198 + i + j] = CAST_OP(0x5198); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x51A0 + i + j] = CAST_OP(0x51A0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x51A8 + i + j] = CAST_OP(0x51A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x51B0 + i + j] = CAST_OP(0x51B0); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x51B8 + i] = CAST_OP(0x51B8); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x51B9 + i] = CAST_OP(0x51B9); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x519F + i] = CAST_OP(0x519F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x51A7 + i] = CAST_OP(0x51A7); - for(i = 0x0001; i <= 0x00FF; i += 0x0001) - JumpTable[0x6200 + i] = CAST_OP(0x6201); - for(i = 0x0001; i <= 0x00FF; i += 0x0001) - JumpTable[0x6300 + i] = CAST_OP(0x6301); - for(i = 0x0001; i <= 0x00FF; i += 0x0001) - JumpTable[0x6400 + i] = CAST_OP(0x6401); - for(i = 0x0001; i <= 0x00FF; i += 0x0001) - JumpTable[0x6500 + i] = CAST_OP(0x6501); - for(i = 0x0001; i <= 0x00FF; i += 0x0001) - JumpTable[0x6600 + i] = CAST_OP(0x6601); - for(i = 0x0001; i <= 0x00FF; i += 0x0001) - JumpTable[0x6700 + i] = CAST_OP(0x6701); - for(i = 0x0001; i <= 0x00FF; i += 0x0001) - JumpTable[0x6800 + i] = CAST_OP(0x6801); - for(i = 0x0001; i <= 0x00FF; i += 0x0001) - JumpTable[0x6900 + i] = CAST_OP(0x6901); - for(i = 0x0001; i <= 0x00FF; i += 0x0001) - JumpTable[0x6A00 + i] = CAST_OP(0x6A01); - for(i = 0x0001; i <= 0x00FF; i += 0x0001) - JumpTable[0x6B00 + i] = CAST_OP(0x6B01); - for(i = 0x0001; i <= 0x00FF; i += 0x0001) - JumpTable[0x6C00 + i] = CAST_OP(0x6C01); - for(i = 0x0001; i <= 0x00FF; i += 0x0001) - JumpTable[0x6D00 + i] = CAST_OP(0x6D01); - for(i = 0x0001; i <= 0x00FF; i += 0x0001) - JumpTable[0x6E00 + i] = CAST_OP(0x6E01); - for(i = 0x0001; i <= 0x00FF; i += 0x0001) - JumpTable[0x6F00 + i] = CAST_OP(0x6F01); - JumpTable[0x6200] = CAST_OP(0x6200); - JumpTable[0x6300] = CAST_OP(0x6300); - JumpTable[0x6400] = CAST_OP(0x6400); - JumpTable[0x6500] = CAST_OP(0x6500); - JumpTable[0x6600] = CAST_OP(0x6600); - JumpTable[0x6700] = CAST_OP(0x6700); - JumpTable[0x6800] = CAST_OP(0x6800); - JumpTable[0x6900] = CAST_OP(0x6900); - JumpTable[0x6A00] = CAST_OP(0x6A00); - JumpTable[0x6B00] = CAST_OP(0x6B00); - JumpTable[0x6C00] = CAST_OP(0x6C00); - JumpTable[0x6D00] = CAST_OP(0x6D00); - JumpTable[0x6E00] = CAST_OP(0x6E00); - JumpTable[0x6F00] = CAST_OP(0x6F00); - for(i = 0x0001; i <= 0x00FF; i += 0x0001) - JumpTable[0x6000 + i] = CAST_OP(0x6001); - JumpTable[0x6000] = CAST_OP(0x6000); - for(i = 0x0001; i <= 0x00FF; i += 0x0001) - JumpTable[0x6100 + i] = CAST_OP(0x6101); - JumpTable[0x6100] = CAST_OP(0x6100); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - for(j = 0x0000; j <= 0x00FF; j += 0x0001) - JumpTable[0x7000 + i + j] = CAST_OP(0x7000); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x8000 + i + j] = CAST_OP(0x8000); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x8010 + i + j] = CAST_OP(0x8010); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x8018 + i + j] = CAST_OP(0x8018); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x8020 + i + j] = CAST_OP(0x8020); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x8028 + i + j] = CAST_OP(0x8028); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x8030 + i + j] = CAST_OP(0x8030); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x8038 + i] = CAST_OP(0x8038); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x8039 + i] = CAST_OP(0x8039); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x803A + i] = CAST_OP(0x803A); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x803B + i] = CAST_OP(0x803B); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x803C + i] = CAST_OP(0x803C); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x801F + i] = CAST_OP(0x801F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x8027 + i] = CAST_OP(0x8027); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x8040 + i + j] = CAST_OP(0x8040); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x8050 + i + j] = CAST_OP(0x8050); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x8058 + i + j] = CAST_OP(0x8058); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x8060 + i + j] = CAST_OP(0x8060); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x8068 + i + j] = CAST_OP(0x8068); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x8070 + i + j] = CAST_OP(0x8070); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x8078 + i] = CAST_OP(0x8078); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x8079 + i] = CAST_OP(0x8079); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x807A + i] = CAST_OP(0x807A); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x807B + i] = CAST_OP(0x807B); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x807C + i] = CAST_OP(0x807C); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x805F + i] = CAST_OP(0x805F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x8067 + i] = CAST_OP(0x8067); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x8080 + i + j] = CAST_OP(0x8080); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x8090 + i + j] = CAST_OP(0x8090); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x8098 + i + j] = CAST_OP(0x8098); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x80A0 + i + j] = CAST_OP(0x80A0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x80A8 + i + j] = CAST_OP(0x80A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x80B0 + i + j] = CAST_OP(0x80B0); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x80B8 + i] = CAST_OP(0x80B8); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x80B9 + i] = CAST_OP(0x80B9); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x80BA + i] = CAST_OP(0x80BA); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x80BB + i] = CAST_OP(0x80BB); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x80BC + i] = CAST_OP(0x80BC); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x809F + i] = CAST_OP(0x809F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x80A7 + i] = CAST_OP(0x80A7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x8110 + i + j] = CAST_OP(0x8110); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x8118 + i + j] = CAST_OP(0x8118); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x8120 + i + j] = CAST_OP(0x8120); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x8128 + i + j] = CAST_OP(0x8128); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x8130 + i + j] = CAST_OP(0x8130); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x8138 + i] = CAST_OP(0x8138); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x8139 + i] = CAST_OP(0x8139); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x811F + i] = CAST_OP(0x811F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x8127 + i] = CAST_OP(0x8127); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x8150 + i + j] = CAST_OP(0x8150); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x8158 + i + j] = CAST_OP(0x8158); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x8160 + i + j] = CAST_OP(0x8160); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x8168 + i + j] = CAST_OP(0x8168); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x8170 + i + j] = CAST_OP(0x8170); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x8178 + i] = CAST_OP(0x8178); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x8179 + i] = CAST_OP(0x8179); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x815F + i] = CAST_OP(0x815F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x8167 + i] = CAST_OP(0x8167); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x8190 + i + j] = CAST_OP(0x8190); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x8198 + i + j] = CAST_OP(0x8198); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x81A0 + i + j] = CAST_OP(0x81A0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x81A8 + i + j] = CAST_OP(0x81A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x81B0 + i + j] = CAST_OP(0x81B0); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x81B8 + i] = CAST_OP(0x81B8); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x81B9 + i] = CAST_OP(0x81B9); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x819F + i] = CAST_OP(0x819F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x81A7 + i] = CAST_OP(0x81A7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x8100 + i + j] = CAST_OP(0x8100); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x8108 + i + j] = CAST_OP(0x8108); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x810F + i] = CAST_OP(0x810F); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x8F08 + i] = CAST_OP(0x8F08); - JumpTable[0x8F0F] = CAST_OP(0x8F0F); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x80C0 + i + j] = CAST_OP(0x80C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x80D0 + i + j] = CAST_OP(0x80D0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x80D8 + i + j] = CAST_OP(0x80D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x80E0 + i + j] = CAST_OP(0x80E0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x80E8 + i + j] = CAST_OP(0x80E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x80F0 + i + j] = CAST_OP(0x80F0); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x80F8 + i] = CAST_OP(0x80F8); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x80F9 + i] = CAST_OP(0x80F9); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x80FA + i] = CAST_OP(0x80FA); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x80FB + i] = CAST_OP(0x80FB); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x80FC + i] = CAST_OP(0x80FC); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x80DF + i] = CAST_OP(0x80DF); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x80E7 + i] = CAST_OP(0x80E7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x81C0 + i + j] = CAST_OP(0x81C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x81D0 + i + j] = CAST_OP(0x81D0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x81D8 + i + j] = CAST_OP(0x81D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x81E0 + i + j] = CAST_OP(0x81E0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x81E8 + i + j] = CAST_OP(0x81E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x81F0 + i + j] = CAST_OP(0x81F0); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x81F8 + i] = CAST_OP(0x81F8); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x81F9 + i] = CAST_OP(0x81F9); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x81FA + i] = CAST_OP(0x81FA); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x81FB + i] = CAST_OP(0x81FB); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x81FC + i] = CAST_OP(0x81FC); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x81DF + i] = CAST_OP(0x81DF); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x81E7 + i] = CAST_OP(0x81E7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9000 + i + j] = CAST_OP(0x9000); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9008 + i + j] = CAST_OP(0x9008); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9010 + i + j] = CAST_OP(0x9010); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9018 + i + j] = CAST_OP(0x9018); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9020 + i + j] = CAST_OP(0x9020); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9028 + i + j] = CAST_OP(0x9028); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9030 + i + j] = CAST_OP(0x9030); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x9038 + i] = CAST_OP(0x9038); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x9039 + i] = CAST_OP(0x9039); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x903A + i] = CAST_OP(0x903A); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x903B + i] = CAST_OP(0x903B); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x903C + i] = CAST_OP(0x903C); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x901F + i] = CAST_OP(0x901F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x9027 + i] = CAST_OP(0x9027); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9040 + i + j] = CAST_OP(0x9040); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9048 + i + j] = CAST_OP(0x9048); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9050 + i + j] = CAST_OP(0x9050); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9058 + i + j] = CAST_OP(0x9058); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9060 + i + j] = CAST_OP(0x9060); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9068 + i + j] = CAST_OP(0x9068); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9070 + i + j] = CAST_OP(0x9070); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x9078 + i] = CAST_OP(0x9078); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x9079 + i] = CAST_OP(0x9079); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x907A + i] = CAST_OP(0x907A); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x907B + i] = CAST_OP(0x907B); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x907C + i] = CAST_OP(0x907C); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x905F + i] = CAST_OP(0x905F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x9067 + i] = CAST_OP(0x9067); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9080 + i + j] = CAST_OP(0x9080); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9088 + i + j] = CAST_OP(0x9088); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9090 + i + j] = CAST_OP(0x9090); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9098 + i + j] = CAST_OP(0x9098); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x90A0 + i + j] = CAST_OP(0x90A0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x90A8 + i + j] = CAST_OP(0x90A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x90B0 + i + j] = CAST_OP(0x90B0); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x90B8 + i] = CAST_OP(0x90B8); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x90B9 + i] = CAST_OP(0x90B9); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x90BA + i] = CAST_OP(0x90BA); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x90BB + i] = CAST_OP(0x90BB); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x90BC + i] = CAST_OP(0x90BC); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x909F + i] = CAST_OP(0x909F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x90A7 + i] = CAST_OP(0x90A7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9110 + i + j] = CAST_OP(0x9110); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9118 + i + j] = CAST_OP(0x9118); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9120 + i + j] = CAST_OP(0x9120); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9128 + i + j] = CAST_OP(0x9128); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9130 + i + j] = CAST_OP(0x9130); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x9138 + i] = CAST_OP(0x9138); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x9139 + i] = CAST_OP(0x9139); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x911F + i] = CAST_OP(0x911F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x9127 + i] = CAST_OP(0x9127); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9150 + i + j] = CAST_OP(0x9150); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9158 + i + j] = CAST_OP(0x9158); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9160 + i + j] = CAST_OP(0x9160); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9168 + i + j] = CAST_OP(0x9168); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9170 + i + j] = CAST_OP(0x9170); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x9178 + i] = CAST_OP(0x9178); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x9179 + i] = CAST_OP(0x9179); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x915F + i] = CAST_OP(0x915F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x9167 + i] = CAST_OP(0x9167); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9190 + i + j] = CAST_OP(0x9190); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9198 + i + j] = CAST_OP(0x9198); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x91A0 + i + j] = CAST_OP(0x91A0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x91A8 + i + j] = CAST_OP(0x91A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x91B0 + i + j] = CAST_OP(0x91B0); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x91B8 + i] = CAST_OP(0x91B8); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x91B9 + i] = CAST_OP(0x91B9); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x919F + i] = CAST_OP(0x919F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x91A7 + i] = CAST_OP(0x91A7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9100 + i + j] = CAST_OP(0x9100); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9140 + i + j] = CAST_OP(0x9140); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x9180 + i + j] = CAST_OP(0x9180); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x9108 + i + j] = CAST_OP(0x9108); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x9148 + i + j] = CAST_OP(0x9148); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0x9188 + i + j] = CAST_OP(0x9188); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x910F + i] = CAST_OP(0x910F); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x914F + i] = CAST_OP(0x914F); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0x918F + i] = CAST_OP(0x918F); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x9F08 + i] = CAST_OP(0x9F08); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x9F48 + i] = CAST_OP(0x9F48); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0x9F88 + i] = CAST_OP(0x9F88); - JumpTable[0x9F0F] = CAST_OP(0x9F0F); - JumpTable[0x9F4F] = CAST_OP(0x9F4F); - JumpTable[0x9F8F] = CAST_OP(0x9F8F); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x90C0 + i + j] = CAST_OP(0x90C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x90C8 + i + j] = CAST_OP(0x90C8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x90D0 + i + j] = CAST_OP(0x90D0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x90D8 + i + j] = CAST_OP(0x90D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x90E0 + i + j] = CAST_OP(0x90E0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x90E8 + i + j] = CAST_OP(0x90E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x90F0 + i + j] = CAST_OP(0x90F0); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x90F8 + i] = CAST_OP(0x90F8); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x90F9 + i] = CAST_OP(0x90F9); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x90FA + i] = CAST_OP(0x90FA); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x90FB + i] = CAST_OP(0x90FB); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x90FC + i] = CAST_OP(0x90FC); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x90DF + i] = CAST_OP(0x90DF); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x90E7 + i] = CAST_OP(0x90E7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x91C0 + i + j] = CAST_OP(0x91C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x91C8 + i + j] = CAST_OP(0x91C8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x91D0 + i + j] = CAST_OP(0x91D0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x91D8 + i + j] = CAST_OP(0x91D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x91E0 + i + j] = CAST_OP(0x91E0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x91E8 + i + j] = CAST_OP(0x91E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0x91F0 + i + j] = CAST_OP(0x91F0); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x91F8 + i] = CAST_OP(0x91F8); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x91F9 + i] = CAST_OP(0x91F9); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x91FA + i] = CAST_OP(0x91FA); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x91FB + i] = CAST_OP(0x91FB); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x91FC + i] = CAST_OP(0x91FC); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x91DF + i] = CAST_OP(0x91DF); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0x91E7 + i] = CAST_OP(0x91E7); - for(i = 0x0000; i <= 0x0FFF; i += 0x0001) - JumpTable[0xA000 + i] = CAST_OP(0xA000); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB000 + i + j] = CAST_OP(0xB000); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB008 + i + j] = CAST_OP(0xB008); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB010 + i + j] = CAST_OP(0xB010); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB018 + i + j] = CAST_OP(0xB018); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB020 + i + j] = CAST_OP(0xB020); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB028 + i + j] = CAST_OP(0xB028); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB030 + i + j] = CAST_OP(0xB030); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB038 + i] = CAST_OP(0xB038); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB039 + i] = CAST_OP(0xB039); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB03A + i] = CAST_OP(0xB03A); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB03B + i] = CAST_OP(0xB03B); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB03C + i] = CAST_OP(0xB03C); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB01F + i] = CAST_OP(0xB01F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB027 + i] = CAST_OP(0xB027); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB040 + i + j] = CAST_OP(0xB040); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB048 + i + j] = CAST_OP(0xB048); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB050 + i + j] = CAST_OP(0xB050); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB058 + i + j] = CAST_OP(0xB058); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB060 + i + j] = CAST_OP(0xB060); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB068 + i + j] = CAST_OP(0xB068); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB070 + i + j] = CAST_OP(0xB070); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB078 + i] = CAST_OP(0xB078); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB079 + i] = CAST_OP(0xB079); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB07A + i] = CAST_OP(0xB07A); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB07B + i] = CAST_OP(0xB07B); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB07C + i] = CAST_OP(0xB07C); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB05F + i] = CAST_OP(0xB05F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB067 + i] = CAST_OP(0xB067); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB080 + i + j] = CAST_OP(0xB080); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB088 + i + j] = CAST_OP(0xB088); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB090 + i + j] = CAST_OP(0xB090); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB098 + i + j] = CAST_OP(0xB098); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB0A0 + i + j] = CAST_OP(0xB0A0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB0A8 + i + j] = CAST_OP(0xB0A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB0B0 + i + j] = CAST_OP(0xB0B0); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB0B8 + i] = CAST_OP(0xB0B8); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB0B9 + i] = CAST_OP(0xB0B9); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB0BA + i] = CAST_OP(0xB0BA); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB0BB + i] = CAST_OP(0xB0BB); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB0BC + i] = CAST_OP(0xB0BC); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB09F + i] = CAST_OP(0xB09F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB0A7 + i] = CAST_OP(0xB0A7); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0xB108 + i + j] = CAST_OP(0xB108); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0xB148 + i + j] = CAST_OP(0xB148); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0xB188 + i + j] = CAST_OP(0xB188); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0xB10F + i] = CAST_OP(0xB10F); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0xB14F + i] = CAST_OP(0xB14F); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0xB18F + i] = CAST_OP(0xB18F); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0xBF08 + i] = CAST_OP(0xBF08); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0xBF48 + i] = CAST_OP(0xBF48); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0xBF88 + i] = CAST_OP(0xBF88); - JumpTable[0xBF0F] = CAST_OP(0xBF0F); - JumpTable[0xBF4F] = CAST_OP(0xBF4F); - JumpTable[0xBF8F] = CAST_OP(0xBF8F); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB100 + i + j] = CAST_OP(0xB100); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB110 + i + j] = CAST_OP(0xB110); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB118 + i + j] = CAST_OP(0xB118); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB120 + i + j] = CAST_OP(0xB120); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB128 + i + j] = CAST_OP(0xB128); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB130 + i + j] = CAST_OP(0xB130); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB138 + i] = CAST_OP(0xB138); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB139 + i] = CAST_OP(0xB139); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB11F + i] = CAST_OP(0xB11F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB127 + i] = CAST_OP(0xB127); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB140 + i + j] = CAST_OP(0xB140); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB150 + i + j] = CAST_OP(0xB150); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB158 + i + j] = CAST_OP(0xB158); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB160 + i + j] = CAST_OP(0xB160); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB168 + i + j] = CAST_OP(0xB168); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB170 + i + j] = CAST_OP(0xB170); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB178 + i] = CAST_OP(0xB178); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB179 + i] = CAST_OP(0xB179); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB15F + i] = CAST_OP(0xB15F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB167 + i] = CAST_OP(0xB167); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB180 + i + j] = CAST_OP(0xB180); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB190 + i + j] = CAST_OP(0xB190); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB198 + i + j] = CAST_OP(0xB198); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB1A0 + i + j] = CAST_OP(0xB1A0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB1A8 + i + j] = CAST_OP(0xB1A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB1B0 + i + j] = CAST_OP(0xB1B0); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB1B8 + i] = CAST_OP(0xB1B8); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB1B9 + i] = CAST_OP(0xB1B9); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB19F + i] = CAST_OP(0xB19F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB1A7 + i] = CAST_OP(0xB1A7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB0C0 + i + j] = CAST_OP(0xB0C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB0C8 + i + j] = CAST_OP(0xB0C8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB0D0 + i + j] = CAST_OP(0xB0D0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB0D8 + i + j] = CAST_OP(0xB0D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB0E0 + i + j] = CAST_OP(0xB0E0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB0E8 + i + j] = CAST_OP(0xB0E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB0F0 + i + j] = CAST_OP(0xB0F0); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB0F8 + i] = CAST_OP(0xB0F8); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB0F9 + i] = CAST_OP(0xB0F9); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB0FA + i] = CAST_OP(0xB0FA); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB0FB + i] = CAST_OP(0xB0FB); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB0FC + i] = CAST_OP(0xB0FC); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB0DF + i] = CAST_OP(0xB0DF); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB0E7 + i] = CAST_OP(0xB0E7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB1C0 + i + j] = CAST_OP(0xB1C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB1C8 + i + j] = CAST_OP(0xB1C8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB1D0 + i + j] = CAST_OP(0xB1D0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB1D8 + i + j] = CAST_OP(0xB1D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB1E0 + i + j] = CAST_OP(0xB1E0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB1E8 + i + j] = CAST_OP(0xB1E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xB1F0 + i + j] = CAST_OP(0xB1F0); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB1F8 + i] = CAST_OP(0xB1F8); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB1F9 + i] = CAST_OP(0xB1F9); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB1FA + i] = CAST_OP(0xB1FA); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB1FB + i] = CAST_OP(0xB1FB); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB1FC + i] = CAST_OP(0xB1FC); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB1DF + i] = CAST_OP(0xB1DF); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xB1E7 + i] = CAST_OP(0xB1E7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC000 + i + j] = CAST_OP(0xC000); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC010 + i + j] = CAST_OP(0xC010); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC018 + i + j] = CAST_OP(0xC018); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC020 + i + j] = CAST_OP(0xC020); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC028 + i + j] = CAST_OP(0xC028); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC030 + i + j] = CAST_OP(0xC030); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC038 + i] = CAST_OP(0xC038); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC039 + i] = CAST_OP(0xC039); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC03A + i] = CAST_OP(0xC03A); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC03B + i] = CAST_OP(0xC03B); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC03C + i] = CAST_OP(0xC03C); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC01F + i] = CAST_OP(0xC01F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC027 + i] = CAST_OP(0xC027); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC040 + i + j] = CAST_OP(0xC040); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC050 + i + j] = CAST_OP(0xC050); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC058 + i + j] = CAST_OP(0xC058); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC060 + i + j] = CAST_OP(0xC060); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC068 + i + j] = CAST_OP(0xC068); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC070 + i + j] = CAST_OP(0xC070); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC078 + i] = CAST_OP(0xC078); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC079 + i] = CAST_OP(0xC079); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC07A + i] = CAST_OP(0xC07A); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC07B + i] = CAST_OP(0xC07B); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC07C + i] = CAST_OP(0xC07C); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC05F + i] = CAST_OP(0xC05F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC067 + i] = CAST_OP(0xC067); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC080 + i + j] = CAST_OP(0xC080); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC090 + i + j] = CAST_OP(0xC090); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC098 + i + j] = CAST_OP(0xC098); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC0A0 + i + j] = CAST_OP(0xC0A0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC0A8 + i + j] = CAST_OP(0xC0A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC0B0 + i + j] = CAST_OP(0xC0B0); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC0B8 + i] = CAST_OP(0xC0B8); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC0B9 + i] = CAST_OP(0xC0B9); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC0BA + i] = CAST_OP(0xC0BA); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC0BB + i] = CAST_OP(0xC0BB); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC0BC + i] = CAST_OP(0xC0BC); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC09F + i] = CAST_OP(0xC09F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC0A7 + i] = CAST_OP(0xC0A7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC110 + i + j] = CAST_OP(0xC110); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC118 + i + j] = CAST_OP(0xC118); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC120 + i + j] = CAST_OP(0xC120); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC128 + i + j] = CAST_OP(0xC128); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC130 + i + j] = CAST_OP(0xC130); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC138 + i] = CAST_OP(0xC138); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC139 + i] = CAST_OP(0xC139); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC11F + i] = CAST_OP(0xC11F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC127 + i] = CAST_OP(0xC127); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC150 + i + j] = CAST_OP(0xC150); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC158 + i + j] = CAST_OP(0xC158); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC160 + i + j] = CAST_OP(0xC160); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC168 + i + j] = CAST_OP(0xC168); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC170 + i + j] = CAST_OP(0xC170); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC178 + i] = CAST_OP(0xC178); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC179 + i] = CAST_OP(0xC179); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC15F + i] = CAST_OP(0xC15F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC167 + i] = CAST_OP(0xC167); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC190 + i + j] = CAST_OP(0xC190); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC198 + i + j] = CAST_OP(0xC198); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC1A0 + i + j] = CAST_OP(0xC1A0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC1A8 + i + j] = CAST_OP(0xC1A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC1B0 + i + j] = CAST_OP(0xC1B0); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC1B8 + i] = CAST_OP(0xC1B8); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC1B9 + i] = CAST_OP(0xC1B9); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC19F + i] = CAST_OP(0xC19F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC1A7 + i] = CAST_OP(0xC1A7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC100 + i + j] = CAST_OP(0xC100); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0xC108 + i + j] = CAST_OP(0xC108); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0xC10F + i] = CAST_OP(0xC10F); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0xCF08 + i] = CAST_OP(0xCF08); - JumpTable[0xCF0F] = CAST_OP(0xCF0F); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC0C0 + i + j] = CAST_OP(0xC0C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC0D0 + i + j] = CAST_OP(0xC0D0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC0D8 + i + j] = CAST_OP(0xC0D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC0E0 + i + j] = CAST_OP(0xC0E0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC0E8 + i + j] = CAST_OP(0xC0E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC0F0 + i + j] = CAST_OP(0xC0F0); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC0F8 + i] = CAST_OP(0xC0F8); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC0F9 + i] = CAST_OP(0xC0F9); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC0FA + i] = CAST_OP(0xC0FA); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC0FB + i] = CAST_OP(0xC0FB); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC0FC + i] = CAST_OP(0xC0FC); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC0DF + i] = CAST_OP(0xC0DF); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC0E7 + i] = CAST_OP(0xC0E7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC1C0 + i + j] = CAST_OP(0xC1C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC1D0 + i + j] = CAST_OP(0xC1D0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC1D8 + i + j] = CAST_OP(0xC1D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC1E0 + i + j] = CAST_OP(0xC1E0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC1E8 + i + j] = CAST_OP(0xC1E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC1F0 + i + j] = CAST_OP(0xC1F0); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC1F8 + i] = CAST_OP(0xC1F8); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC1F9 + i] = CAST_OP(0xC1F9); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC1FA + i] = CAST_OP(0xC1FA); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC1FB + i] = CAST_OP(0xC1FB); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC1FC + i] = CAST_OP(0xC1FC); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC1DF + i] = CAST_OP(0xC1DF); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xC1E7 + i] = CAST_OP(0xC1E7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC140 + i + j] = CAST_OP(0xC140); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC148 + i + j] = CAST_OP(0xC148); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xC188 + i + j] = CAST_OP(0xC188); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD000 + i + j] = CAST_OP(0xD000); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD008 + i + j] = CAST_OP(0xD008); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD010 + i + j] = CAST_OP(0xD010); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD018 + i + j] = CAST_OP(0xD018); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD020 + i + j] = CAST_OP(0xD020); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD028 + i + j] = CAST_OP(0xD028); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD030 + i + j] = CAST_OP(0xD030); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD038 + i] = CAST_OP(0xD038); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD039 + i] = CAST_OP(0xD039); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD03A + i] = CAST_OP(0xD03A); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD03B + i] = CAST_OP(0xD03B); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD03C + i] = CAST_OP(0xD03C); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD01F + i] = CAST_OP(0xD01F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD027 + i] = CAST_OP(0xD027); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD040 + i + j] = CAST_OP(0xD040); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD048 + i + j] = CAST_OP(0xD048); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD050 + i + j] = CAST_OP(0xD050); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD058 + i + j] = CAST_OP(0xD058); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD060 + i + j] = CAST_OP(0xD060); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD068 + i + j] = CAST_OP(0xD068); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD070 + i + j] = CAST_OP(0xD070); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD078 + i] = CAST_OP(0xD078); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD079 + i] = CAST_OP(0xD079); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD07A + i] = CAST_OP(0xD07A); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD07B + i] = CAST_OP(0xD07B); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD07C + i] = CAST_OP(0xD07C); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD05F + i] = CAST_OP(0xD05F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD067 + i] = CAST_OP(0xD067); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD080 + i + j] = CAST_OP(0xD080); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD088 + i + j] = CAST_OP(0xD088); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD090 + i + j] = CAST_OP(0xD090); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD098 + i + j] = CAST_OP(0xD098); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD0A0 + i + j] = CAST_OP(0xD0A0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD0A8 + i + j] = CAST_OP(0xD0A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD0B0 + i + j] = CAST_OP(0xD0B0); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD0B8 + i] = CAST_OP(0xD0B8); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD0B9 + i] = CAST_OP(0xD0B9); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD0BA + i] = CAST_OP(0xD0BA); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD0BB + i] = CAST_OP(0xD0BB); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD0BC + i] = CAST_OP(0xD0BC); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD09F + i] = CAST_OP(0xD09F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD0A7 + i] = CAST_OP(0xD0A7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD110 + i + j] = CAST_OP(0xD110); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD118 + i + j] = CAST_OP(0xD118); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD120 + i + j] = CAST_OP(0xD120); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD128 + i + j] = CAST_OP(0xD128); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD130 + i + j] = CAST_OP(0xD130); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD138 + i] = CAST_OP(0xD138); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD139 + i] = CAST_OP(0xD139); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD11F + i] = CAST_OP(0xD11F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD127 + i] = CAST_OP(0xD127); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD150 + i + j] = CAST_OP(0xD150); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD158 + i + j] = CAST_OP(0xD158); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD160 + i + j] = CAST_OP(0xD160); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD168 + i + j] = CAST_OP(0xD168); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD170 + i + j] = CAST_OP(0xD170); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD178 + i] = CAST_OP(0xD178); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD179 + i] = CAST_OP(0xD179); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD15F + i] = CAST_OP(0xD15F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD167 + i] = CAST_OP(0xD167); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD190 + i + j] = CAST_OP(0xD190); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD198 + i + j] = CAST_OP(0xD198); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD1A0 + i + j] = CAST_OP(0xD1A0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD1A8 + i + j] = CAST_OP(0xD1A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD1B0 + i + j] = CAST_OP(0xD1B0); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD1B8 + i] = CAST_OP(0xD1B8); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD1B9 + i] = CAST_OP(0xD1B9); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD19F + i] = CAST_OP(0xD19F); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD1A7 + i] = CAST_OP(0xD1A7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD100 + i + j] = CAST_OP(0xD100); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD140 + i + j] = CAST_OP(0xD140); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD180 + i + j] = CAST_OP(0xD180); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0xD108 + i + j] = CAST_OP(0xD108); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0xD148 + i + j] = CAST_OP(0xD148); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0C00; j += 0x0200) - JumpTable[0xD188 + i + j] = CAST_OP(0xD188); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0xD10F + i] = CAST_OP(0xD10F); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0xD14F + i] = CAST_OP(0xD14F); - for(i = 0x0000; i <= 0x0C00; i += 0x0200) - JumpTable[0xD18F + i] = CAST_OP(0xD18F); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0xDF08 + i] = CAST_OP(0xDF08); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0xDF48 + i] = CAST_OP(0xDF48); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0xDF88 + i] = CAST_OP(0xDF88); - JumpTable[0xDF0F] = CAST_OP(0xDF0F); - JumpTable[0xDF4F] = CAST_OP(0xDF4F); - JumpTable[0xDF8F] = CAST_OP(0xDF8F); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD0C0 + i + j] = CAST_OP(0xD0C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD0C8 + i + j] = CAST_OP(0xD0C8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD0D0 + i + j] = CAST_OP(0xD0D0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD0D8 + i + j] = CAST_OP(0xD0D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD0E0 + i + j] = CAST_OP(0xD0E0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD0E8 + i + j] = CAST_OP(0xD0E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD0F0 + i + j] = CAST_OP(0xD0F0); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD0F8 + i] = CAST_OP(0xD0F8); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD0F9 + i] = CAST_OP(0xD0F9); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD0FA + i] = CAST_OP(0xD0FA); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD0FB + i] = CAST_OP(0xD0FB); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD0FC + i] = CAST_OP(0xD0FC); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD0DF + i] = CAST_OP(0xD0DF); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD0E7 + i] = CAST_OP(0xD0E7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD1C0 + i + j] = CAST_OP(0xD1C0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD1C8 + i + j] = CAST_OP(0xD1C8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD1D0 + i + j] = CAST_OP(0xD1D0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD1D8 + i + j] = CAST_OP(0xD1D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD1E0 + i + j] = CAST_OP(0xD1E0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD1E8 + i + j] = CAST_OP(0xD1E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xD1F0 + i + j] = CAST_OP(0xD1F0); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD1F8 + i] = CAST_OP(0xD1F8); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD1F9 + i] = CAST_OP(0xD1F9); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD1FA + i] = CAST_OP(0xD1FA); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD1FB + i] = CAST_OP(0xD1FB); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD1FC + i] = CAST_OP(0xD1FC); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD1DF + i] = CAST_OP(0xD1DF); - for(i = 0x0000; i <= 0x0E00; i += 0x0200) - JumpTable[0xD1E7 + i] = CAST_OP(0xD1E7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE000 + i + j] = CAST_OP(0xE000); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE040 + i + j] = CAST_OP(0xE040); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE080 + i + j] = CAST_OP(0xE080); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE008 + i + j] = CAST_OP(0xE008); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE048 + i + j] = CAST_OP(0xE048); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE088 + i + j] = CAST_OP(0xE088); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE010 + i + j] = CAST_OP(0xE010); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE050 + i + j] = CAST_OP(0xE050); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE090 + i + j] = CAST_OP(0xE090); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE018 + i + j] = CAST_OP(0xE018); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE058 + i + j] = CAST_OP(0xE058); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE098 + i + j] = CAST_OP(0xE098); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE100 + i + j] = CAST_OP(0xE100); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE140 + i + j] = CAST_OP(0xE140); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE180 + i + j] = CAST_OP(0xE180); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE108 + i + j] = CAST_OP(0xE108); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE148 + i + j] = CAST_OP(0xE148); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE188 + i + j] = CAST_OP(0xE188); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE110 + i + j] = CAST_OP(0xE110); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE150 + i + j] = CAST_OP(0xE150); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE190 + i + j] = CAST_OP(0xE190); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE118 + i + j] = CAST_OP(0xE118); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE158 + i + j] = CAST_OP(0xE158); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE198 + i + j] = CAST_OP(0xE198); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE020 + i + j] = CAST_OP(0xE020); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE060 + i + j] = CAST_OP(0xE060); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE0A0 + i + j] = CAST_OP(0xE0A0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE028 + i + j] = CAST_OP(0xE028); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE068 + i + j] = CAST_OP(0xE068); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE0A8 + i + j] = CAST_OP(0xE0A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE030 + i + j] = CAST_OP(0xE030); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE070 + i + j] = CAST_OP(0xE070); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE0B0 + i + j] = CAST_OP(0xE0B0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE038 + i + j] = CAST_OP(0xE038); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE078 + i + j] = CAST_OP(0xE078); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE0B8 + i + j] = CAST_OP(0xE0B8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE120 + i + j] = CAST_OP(0xE120); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE160 + i + j] = CAST_OP(0xE160); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE1A0 + i + j] = CAST_OP(0xE1A0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE128 + i + j] = CAST_OP(0xE128); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE168 + i + j] = CAST_OP(0xE168); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE1A8 + i + j] = CAST_OP(0xE1A8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE130 + i + j] = CAST_OP(0xE130); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE170 + i + j] = CAST_OP(0xE170); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE1B0 + i + j] = CAST_OP(0xE1B0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE138 + i + j] = CAST_OP(0xE138); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE178 + i + j] = CAST_OP(0xE178); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - for(j = 0x0000; j <= 0x0E00; j += 0x0200) - JumpTable[0xE1B8 + i + j] = CAST_OP(0xE1B8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0xE0D0 + i] = CAST_OP(0xE0D0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0xE0D8 + i] = CAST_OP(0xE0D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0xE0E0 + i] =CAST_OP(0xE0E0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0xE0E8 + i] = CAST_OP(0xE0E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0xE0F0 + i] = CAST_OP(0xE0F0); - JumpTable[0xE0F8] = CAST_OP(0xE0F8); - JumpTable[0xE0F9] = CAST_OP(0xE0F9); - JumpTable[0xE0DF] = CAST_OP(0xE0DF); - JumpTable[0xE0E7] = CAST_OP(0xE0E7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0xE2D0 + i] = CAST_OP(0xE2D0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0xE2D8 + i] = CAST_OP(0xE2D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0xE2E0 + i] = CAST_OP(0xE2E0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0xE2E8 + i] = CAST_OP(0xE2E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0xE2F0 + i] = CAST_OP(0xE2F0); - JumpTable[0xE2F8] = CAST_OP(0xE2F8); - JumpTable[0xE2F9] = CAST_OP(0xE2F9); - JumpTable[0xE2DF] = CAST_OP(0xE2DF); - JumpTable[0xE2E7] = CAST_OP(0xE2E7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0xE4D0 + i] = CAST_OP(0xE4D0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0xE4D8 + i] = CAST_OP(0xE4D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0xE4E0 + i] = CAST_OP(0xE4E0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0xE4E8 + i] = CAST_OP(0xE4E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0xE4F0 + i] = CAST_OP(0xE4F0); - JumpTable[0xE4F8] = CAST_OP(0xE4F8); - JumpTable[0xE4F9] = CAST_OP(0xE4F9); - JumpTable[0xE4DF] = CAST_OP(0xE4DF); - JumpTable[0xE4E7] = CAST_OP(0xE4E7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0xE6D0 + i] = CAST_OP(0xE6D0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0xE6D8 + i] = CAST_OP(0xE6D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0xE6E0 + i] = CAST_OP(0xE6E0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0xE6E8 + i] = CAST_OP(0xE6E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0xE6F0 + i] = CAST_OP(0xE6F0); - JumpTable[0xE6F8] = CAST_OP(0xE6F8); - JumpTable[0xE6F9] = CAST_OP(0xE6F9); - JumpTable[0xE6DF] = CAST_OP(0xE6DF); - JumpTable[0xE6E7] = CAST_OP(0xE6E7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0xE1D0 + i] = CAST_OP(0xE1D0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0xE1D8 + i] = CAST_OP(0xE1D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0xE1E0 + i] = CAST_OP(0xE1E0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0xE1E8 + i] = CAST_OP(0xE1E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0xE1F0 + i] = CAST_OP(0xE1F0); - JumpTable[0xE1F8] = CAST_OP(0xE1F8); - JumpTable[0xE1F9] = CAST_OP(0xE1F9); - JumpTable[0xE1DF] = CAST_OP(0xE1DF); - JumpTable[0xE1E7] = CAST_OP(0xE1E7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0xE3D0 + i] = CAST_OP(0xE3D0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0xE3D8 + i] = CAST_OP(0xE3D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0xE3E0 + i] = CAST_OP(0xE3E0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0xE3E8 + i] = CAST_OP(0xE3E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0xE3F0 + i] = CAST_OP(0xE3F0); - JumpTable[0xE3F8] = CAST_OP(0xE3F8); - JumpTable[0xE3F9] = CAST_OP(0xE3F9); - JumpTable[0xE3DF] = CAST_OP(0xE3DF); - JumpTable[0xE3E7] = CAST_OP(0xE3E7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0xE5D0 + i] = CAST_OP(0xE5D0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0xE5D8 + i] = CAST_OP(0xE5D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0xE5E0 + i] = CAST_OP(0xE5E0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0xE5E8 + i] = CAST_OP(0xE5E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0xE5F0 + i] = CAST_OP(0xE5F0); - JumpTable[0xE5F8] = CAST_OP(0xE5F8); - JumpTable[0xE5F9] = CAST_OP(0xE5F9); - JumpTable[0xE5DF] = CAST_OP(0xE5DF); - JumpTable[0xE5E7] = CAST_OP(0xE5E7); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0xE7D0 + i] = CAST_OP(0xE7D0); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0xE7D8 + i] = CAST_OP(0xE7D8); - for(i = 0x0000; i <= 0x0006; i += 0x0001) - JumpTable[0xE7E0 + i] = CAST_OP(0xE7E0); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0xE7E8 + i] = CAST_OP(0xE7E8); - for(i = 0x0000; i <= 0x0007; i += 0x0001) - JumpTable[0xE7F0 + i] = CAST_OP(0xE7F0); - JumpTable[0xE7F8] = CAST_OP(0xE7F8); - JumpTable[0xE7F9] = CAST_OP(0xE7F9); - JumpTable[0xE7DF] = CAST_OP(0xE7DF); - JumpTable[0xE7E7] = CAST_OP(0xE7E7); - for(i = 0x0000; i <= 0x0FFF; i += 0x0001) - JumpTable[0xF000 + i] = CAST_OP(0xF000); - - initialised = 1; - } - return 0; -} +// main exec function +////////////////////// -#endif \ No newline at end of file +/***************************************************************************/ +/* m68k_emulate() */ +/* Parametros: Numero de ciclos a ejecutar */ +/* Retorno: Exito de la operaciÛn */ +/* 0 La operacion se ha realizado satisfactoriamente */ +/* -1 La CPU esta detenida debido a un ERROR DE BUS DOBLE (linea) */ +/* El PC ha salido de los limites (bucle no en linea) */ +/***************************************************************************/ +u32 m68k_emulate(s32 cycles) +{ + M68K_CONTEXT *pm68kcontext = &m68kcontext; + +#if 0 + /* Comprobar si la CPU esta detenida debido a un doble error de bus */ + if (m68kcontext.execinfo & M68K_FAULTED) return (u32)-1; +#endif + + /* Poner la CPU en estado de ejecucion */ + pm68kcontext->execinfo |= M68K_RUNNING; + + // Cache SR + SET_SR(pm68kcontext->sr) + + // Cache PPL + flag_I = M68K_PPL; + + // Fijar PC + SET_PC(pm68kcontext->pc) + + /* guardar ciclos de ejecucion solicitados */ + pm68kcontext->io_cycle_counter = cycles << mainMenu_CPU_speed; + pm68kcontext->more_cycles_to_do = 0; + pm68kcontext->cycles_not_done = 0; + + // Check for new pending interrupts + s32 line = interrupt_chk__(*pm68kcontext); + + if (pm68kcontext->execinfo & M68K_HALTED && line <= 0) + { + // CPU is HALTED -> no cycles to emulate + finish_emulate(cycles); + return M68K_OK; + } + + if(line > 0) + { + /* Different behavior for 68000 and 68020. + * First requires interrupts to be handled after the first + * emulated instruction (Cruise for a Corpse, 68000), + * second requires handling them before (All New World of Lemmings, 68020). + * TomB (2014-01-10): All New World of Lemmings owrks also if IRQ is handled after first instruction... + * Alien Breed 3D requires IRQ handling after first emulated instruction. + */ + // if(prefs_cpu_model >= M68020) + // { + // interrupt_attend(line); + // } + // else + // { + pm68kcontext->more_cycles_to_do = pm68kcontext->io_cycle_counter; + pm68kcontext->io_cycle_counter = 0; + // } + } + + do + { + do + { + u32 Opcode; + FETCH_WORD(Opcode); + if(flag_T) // This flag may be changed in execution of opcode, so we have to check first + { + int op_cycles = JumpTable[Opcode](Opcode, *pm68kcontext); + pm68kcontext->io_cycle_counter = pm68kcontext->io_cycle_counter - op_cycles; + execute_exception(M68K_TRACE_EX); + } + else + { + int op_cycles = JumpTable[Opcode](Opcode, *pm68kcontext); + pm68kcontext->io_cycle_counter = pm68kcontext->io_cycle_counter - op_cycles; + } + } while (pm68kcontext->io_cycle_counter > 0); + + if(pm68kcontext->more_cycles_to_do > 0) + { + pm68kcontext->io_cycle_counter += pm68kcontext->more_cycles_to_do; + pm68kcontext->more_cycles_to_do = 0; + line = interrupt_chk__(*pm68kcontext); + if (line > 0) + { + // New IRQ with higher priority as current state + interrupt_attend(line); + } + } + } while (pm68kcontext->io_cycle_counter > 0); + + finish_emulate(cycles - pm68kcontext->cycles_not_done - (pm68kcontext->io_cycle_counter >> mainMenu_CPU_speed)); + + return M68K_OK; +} \ No newline at end of file diff --git a/uae4all_gp2x_0.7.2a/src/m68k/fame/famec.h b/uae4all_gp2x_0.7.2a/src/m68k/fame/famec.h new file mode 100644 index 0000000..b3317c5 --- /dev/null +++ b/uae4all_gp2x_0.7.2a/src/m68k/fame/famec.h @@ -0,0 +1,14 @@ +// +// famec.h +// iUAE +// +// Created by Urs on 30.09.14. +// +// + +#ifndef __iUAE__famec__ +#define __iUAE__famec__ + +#include + +#endif /* defined(__iUAE__famec__) */ diff --git a/uae4all_gp2x_0.7.2a/src/m68k/fame/famec_jumptable.h b/uae4all_gp2x_0.7.2a/src/m68k/fame/famec_jumptable.h new file mode 100644 index 0000000..aafd433 --- /dev/null +++ b/uae4all_gp2x_0.7.2a/src/m68k/fame/famec_jumptable.h @@ -0,0 +1,4401 @@ +static void JUMPTABLE(int force_table) +{ + if(!initialised || force_table) + { + if(!initialised) + m68kcontext.io_cycle_counter = 0; + + u32 i, j; + + for(i = 0x0000; i <= 0xFFFF; i += 0x0001) + JumpTable[0x0000 + i] = CAST_OP(0x4AFC); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0000 + i] = CAST_OP(0x0000); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0010 + i] = CAST_OP(0x0010); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0018 + i] = CAST_OP(0x0018); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0020 + i] = CAST_OP(0x0020); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0028 + i] = CAST_OP(0x0028); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0030 + i] = CAST_OP(0x0030); + JumpTable[0x0038] = CAST_OP(0x0038); + JumpTable[0x0039] = CAST_OP(0x0039); + JumpTable[0x001F] = CAST_OP(0x001F); + JumpTable[0x0027] = CAST_OP(0x0027); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0040 + i] = CAST_OP(0x0040); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0050 + i] = CAST_OP(0x0050); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0058 + i] = CAST_OP(0x0058); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0060 + i] = CAST_OP(0x0060); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0068 + i] = CAST_OP(0x0068); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0070 + i] = CAST_OP(0x0070); + JumpTable[0x0078] = CAST_OP(0x0078); + JumpTable[0x0079] = CAST_OP(0x0079); + JumpTable[0x005F] = CAST_OP(0x005F); + JumpTable[0x0067] = CAST_OP(0x0067); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0080 + i] = CAST_OP(0x0080); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0090 + i] = CAST_OP(0x0090); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0098 + i] = CAST_OP(0x0098); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x00A0 + i] = CAST_OP(0x00A0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x00A8 + i] = CAST_OP(0x00A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x00B0 + i] = CAST_OP(0x00B0); + JumpTable[0x00B8] = CAST_OP(0x00B8); + JumpTable[0x00B9] = CAST_OP(0x00B9); + JumpTable[0x009F] = CAST_OP(0x009F); + JumpTable[0x00A7] = CAST_OP(0x00A7); + JumpTable[0x003C] = CAST_OP(0x003C); + JumpTable[0x007C] = CAST_OP(0x007C); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0200 + i] = CAST_OP(0x0200); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0210 + i] = CAST_OP(0x0210); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0218 + i] = CAST_OP(0x0218); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0220 + i] = CAST_OP(0x0220); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0228 + i] = CAST_OP(0x0228); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0230 + i] = CAST_OP(0x0230); + JumpTable[0x0238] = CAST_OP(0x0238); + JumpTable[0x0239] = CAST_OP(0x0239); + JumpTable[0x021F] = CAST_OP(0x021F); + JumpTable[0x0227] = CAST_OP(0x0227); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0240 + i] = CAST_OP(0x0240); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0250 + i] = CAST_OP(0x0250); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0258 + i] = CAST_OP(0x0258); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0260 + i] = CAST_OP(0x0260); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0268 + i] = CAST_OP(0x0268); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0270 + i] = CAST_OP(0x0270); + JumpTable[0x0278] = CAST_OP(0x0278); + JumpTable[0x0279] = CAST_OP(0x0279); + JumpTable[0x025F] = CAST_OP(0x025F); + JumpTable[0x0267] = CAST_OP(0x0267); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0280 + i] = CAST_OP(0x0280); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0290 + i] = CAST_OP(0x0290); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0298 + i] = CAST_OP(0x0298); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x02A0 + i] = CAST_OP(0x02A0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x02A8 + i] = CAST_OP(0x02A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x02B0 + i] = CAST_OP(0x02B0); + JumpTable[0x02B8] = CAST_OP(0x02B8); + JumpTable[0x02B9] = CAST_OP(0x02B9); + JumpTable[0x029F] = CAST_OP(0x029F); + JumpTable[0x02A7] = CAST_OP(0x02A7); + JumpTable[0x023C] = CAST_OP(0x023C); + JumpTable[0x027C] = CAST_OP(0x027C); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0A00 + i] = CAST_OP(0x0A00); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0A10 + i] = CAST_OP(0x0A10); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0A18 + i] = CAST_OP(0x0A18); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0A20 + i] = CAST_OP(0x0A20); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0A28 + i] = CAST_OP(0x0A28); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0A30 + i] = CAST_OP(0x0A30); + JumpTable[0x0A38] = CAST_OP(0x0A38); + JumpTable[0x0A39] = CAST_OP(0x0A39); + JumpTable[0x0A1F] = CAST_OP(0x0A1F); + JumpTable[0x0A27] = CAST_OP(0x0A27); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0A40 + i] = CAST_OP(0x0A40); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0A50 + i] = CAST_OP(0x0A50); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0A58 + i] = CAST_OP(0x0A58); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0A60 + i] = CAST_OP(0x0A60); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0A68 + i] = CAST_OP(0x0A68); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0A70 + i] = CAST_OP(0x0A70); + JumpTable[0x0A78] = CAST_OP(0x0A78); + JumpTable[0x0A79] = CAST_OP(0x0A79); + JumpTable[0x0A5F] = CAST_OP(0x0A5F); + JumpTable[0x0A67] = CAST_OP(0x0A67); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0A80 + i] = CAST_OP(0x0A80); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0A90 + i] = CAST_OP(0x0A90); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0A98 + i] = CAST_OP(0x0A98); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0AA0 + i] = CAST_OP(0x0AA0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0AA8 + i] = CAST_OP(0x0AA8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0AB0 + i] = CAST_OP(0x0AB0); + JumpTable[0x0AB8] = CAST_OP(0x0AB8); + JumpTable[0x0AB9] = CAST_OP(0x0AB9); + JumpTable[0x0A9F] = CAST_OP(0x0A9F); + JumpTable[0x0AA7] = CAST_OP(0x0AA7); + JumpTable[0x0A3C] = CAST_OP(0x0A3C); + JumpTable[0x0A7C] = CAST_OP(0x0A7C); +#ifdef OPCODES_M68020 + /* CAS - 68020+ */ + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0AD0 + i] = CAST_OP(0x0AD0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0AD8 + i] = CAST_OP(0x0AD8); + JumpTable[0x0ADF] = CAST_OP(0x0ADF); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0AE0 + i] = CAST_OP(0x0AE0); + JumpTable[0x0AE7] = CAST_OP(0x0AE7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0AE8 + i] = CAST_OP(0x0AE8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0AF0 + i] = CAST_OP(0x0AF0); + JumpTable[0x0AF8] = CAST_OP(0x0AF8); + JumpTable[0x0AF9] = CAST_OP(0x0AF9); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0CD0 + i] = CAST_OP(0x0CD0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0CD8 + i] = CAST_OP(0x0CD8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0CE0 + i] = CAST_OP(0x0CE0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0CE8 + i] = CAST_OP(0x0CE8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0CF0 + i] = CAST_OP(0x0CF0); + JumpTable[0x0CF8] = CAST_OP(0x0CF8); + JumpTable[0x0CF9] = CAST_OP(0x0CF9); + /* CAS2 - 68020+ */ + JumpTable[0x0CFC] = CAST_OP(0x0CFC); + JumpTable[0x0EFC] = CAST_OP(0x0EFC); + /* End of CAS2 */ + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0ED0 + i] = CAST_OP(0x0ED0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0ED8 + i] = CAST_OP(0x0ED8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0EE0 + i] = CAST_OP(0x0EE0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0EE8 + i] = CAST_OP(0x0EE8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0EF0 + i] = CAST_OP(0x0EF0); + JumpTable[0x0EF8] = CAST_OP(0x0EF8); + JumpTable[0x0EF9] = CAST_OP(0x0EF9); + /* End of CAS */ +#endif + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0400 + i] = CAST_OP(0x0400); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0410 + i] = CAST_OP(0x0410); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0418 + i] = CAST_OP(0x0418); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0420 + i] = CAST_OP(0x0420); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0428 + i] = CAST_OP(0x0428); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0430 + i] = CAST_OP(0x0430); + JumpTable[0x0438] = CAST_OP(0x0438); + JumpTable[0x0439] = CAST_OP(0x0439); + JumpTable[0x041F] = CAST_OP(0x041F); + JumpTable[0x0427] = CAST_OP(0x0427); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0440 + i] = CAST_OP(0x0440); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0450 + i] = CAST_OP(0x0450); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0458 + i] = CAST_OP(0x0458); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0460 + i] = CAST_OP(0x0460); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0468 + i] = CAST_OP(0x0468); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0470 + i] = CAST_OP(0x0470); + JumpTable[0x0478] = CAST_OP(0x0478); + JumpTable[0x0479] = CAST_OP(0x0479); + JumpTable[0x045F] = CAST_OP(0x045F); + JumpTable[0x0467] = CAST_OP(0x0467); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0480 + i] = CAST_OP(0x0480); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0490 + i] = CAST_OP(0x0490); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0498 + i] = CAST_OP(0x0498); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x04A0 + i] = CAST_OP(0x04A0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x04A8 + i] = CAST_OP(0x04A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x04B0 + i] = CAST_OP(0x04B0); + JumpTable[0x04B8] = CAST_OP(0x04B8); + JumpTable[0x04B9] = CAST_OP(0x04B9); + JumpTable[0x049F] = CAST_OP(0x049F); + JumpTable[0x04A7] = CAST_OP(0x04A7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0600 + i] = CAST_OP(0x0600); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0610 + i] = CAST_OP(0x0610); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0618 + i] = CAST_OP(0x0618); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0620 + i] = CAST_OP(0x0620); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0628 + i] = CAST_OP(0x0628); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0630 + i] = CAST_OP(0x0630); + JumpTable[0x0638] = CAST_OP(0x0638); + JumpTable[0x0639] = CAST_OP(0x0639); + JumpTable[0x061F] = CAST_OP(0x061F); + JumpTable[0x0627] = CAST_OP(0x0627); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0640 + i] = CAST_OP(0x0640); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0650 + i] = CAST_OP(0x0650); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0658 + i] = CAST_OP(0x0658); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0660 + i] = CAST_OP(0x0660); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0668 + i] = CAST_OP(0x0668); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0670 + i] = CAST_OP(0x0670); + JumpTable[0x0678] = CAST_OP(0x0678); + JumpTable[0x0679] = CAST_OP(0x0679); + JumpTable[0x065F] = CAST_OP(0x065F); + JumpTable[0x0667] = CAST_OP(0x0667); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0680 + i] = CAST_OP(0x0680); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0690 + i] = CAST_OP(0x0690); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0698 + i] = CAST_OP(0x0698); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x06A0 + i] = CAST_OP(0x06A0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x06A8 + i] = CAST_OP(0x06A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x06B0 + i] = CAST_OP(0x06B0); + JumpTable[0x06B8] = CAST_OP(0x06B8); + JumpTable[0x06B9] = CAST_OP(0x06B9); + JumpTable[0x069F] = CAST_OP(0x069F); + JumpTable[0x06A7] = CAST_OP(0x06A7); +#ifdef OPCODES_M68020 + /* RTM - 68020+ */ + JumpTable[0x06C0] = CAST_OP(0x06C0); + JumpTable[0x06C8] = CAST_OP(0x06C8); + /* End of RTM */ + /* CALLM - 68020+ */ + JumpTable[0x06D0] = CAST_OP(0x06D0); + JumpTable[0x06E8] = CAST_OP(0x06E8); + JumpTable[0x06F0] = CAST_OP(0x06F0); + JumpTable[0x06F8] = CAST_OP(0x06F8); + JumpTable[0x06F9] = CAST_OP(0x06F9); + JumpTable[0x06FA] = CAST_OP(0x06FA); + JumpTable[0x06FB] = CAST_OP(0x06FB); + /* End of CALLM */ +#endif + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0C00 + i] = CAST_OP(0x0C00); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0C10 + i] = CAST_OP(0x0C10); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0C18 + i] = CAST_OP(0x0C18); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0C20 + i] = CAST_OP(0x0C20); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0C28 + i] = CAST_OP(0x0C28); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0C30 + i] = CAST_OP(0x0C30); + JumpTable[0x0C38] = CAST_OP(0x0C38); + JumpTable[0x0C39] = CAST_OP(0x0C39); +#ifdef OPCODES_M68020 + JumpTable[0x0C3A] = CAST_OP(0x0C3A); // CMP - 68020+ + JumpTable[0x0C3B] = CAST_OP(0x0C3B); // CMP - 68020+ +#endif + JumpTable[0x0C1F] = CAST_OP(0x0C1F); + JumpTable[0x0C27] = CAST_OP(0x0C27); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0C40 + i] = CAST_OP(0x0C40); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0C50 + i] = CAST_OP(0x0C50); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0C58 + i] = CAST_OP(0x0C58); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0C60 + i] = CAST_OP(0x0C60); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0C68 + i] = CAST_OP(0x0C68); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0C70 + i] = CAST_OP(0x0C70); + JumpTable[0x0C78] = CAST_OP(0x0C78); + JumpTable[0x0C79] = CAST_OP(0x0C79); +#ifdef OPCODES_M68020 + JumpTable[0x0C7A] = CAST_OP(0x0C7A); // CMP - 68020+ + JumpTable[0x0C7B] = CAST_OP(0x0C7B); // CMP - 68020+ +#endif + JumpTable[0x0C5F] = CAST_OP(0x0C5F); + JumpTable[0x0C67] = CAST_OP(0x0C67); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0C80 + i] = CAST_OP(0x0C80); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0C90 + i] = CAST_OP(0x0C90); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0C98 + i] = CAST_OP(0x0C98); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0CA0 + i] = CAST_OP(0x0CA0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0CA8 + i] = CAST_OP(0x0CA8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0CB0 + i] = CAST_OP(0x0CB0); + JumpTable[0x0CB8] = CAST_OP(0x0CB8); + JumpTable[0x0CB9] = CAST_OP(0x0CB9); +#ifdef OPCODES_M68020 + JumpTable[0x0CBA] = CAST_OP(0x0CBA); // CMP - 68020+ + JumpTable[0x0CBB] = CAST_OP(0x0CBB); // CMP - 68020+ +#endif + JumpTable[0x0C9F] = CAST_OP(0x0C9F); + JumpTable[0x0CA7] = CAST_OP(0x0CA7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0800 + i] = CAST_OP(0x0800); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0810 + i] = CAST_OP(0x0810); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0818 + i] = CAST_OP(0x0818); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0820 + i] = CAST_OP(0x0820); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0828 + i] = CAST_OP(0x0828); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0830 + i] = CAST_OP(0x0830); + JumpTable[0x0838] = CAST_OP(0x0838); + JumpTable[0x0839] = CAST_OP(0x0839); + JumpTable[0x083A] = CAST_OP(0x083A); + JumpTable[0x083B] = CAST_OP(0x083B); + JumpTable[0x081F] = CAST_OP(0x081F); + JumpTable[0x0827] = CAST_OP(0x0827); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0840 + i] = CAST_OP(0x0840); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0850 + i] = CAST_OP(0x0850); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0858 + i] = CAST_OP(0x0858); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0860 + i] = CAST_OP(0x0860); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0868 + i] = CAST_OP(0x0868); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0870 + i] = CAST_OP(0x0870); + JumpTable[0x0878] = CAST_OP(0x0878); + JumpTable[0x0879] = CAST_OP(0x0879); + JumpTable[0x085F] = CAST_OP(0x085F); + JumpTable[0x0867] = CAST_OP(0x0867); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0880 + i] = CAST_OP(0x0880); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x0890 + i] = CAST_OP(0x0890); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x0898 + i] = CAST_OP(0x0898); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x08A0 + i] = CAST_OP(0x08A0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x08A8 + i] = CAST_OP(0x08A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x08B0 + i] = CAST_OP(0x08B0); + JumpTable[0x08B8] = CAST_OP(0x08B8); + JumpTable[0x08B9] = CAST_OP(0x08B9); + JumpTable[0x089F] = CAST_OP(0x089F); + JumpTable[0x08A7] = CAST_OP(0x08A7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x08C0 + i] = CAST_OP(0x08C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x08D0 + i] = CAST_OP(0x08D0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x08D8 + i] = CAST_OP(0x08D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x08E0 + i] = CAST_OP(0x08E0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x08E8 + i] = CAST_OP(0x08E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x08F0 + i] = CAST_OP(0x08F0); + JumpTable[0x08F8] = CAST_OP(0x08F8); + JumpTable[0x08F9] = CAST_OP(0x08F9); + JumpTable[0x08DF] = CAST_OP(0x08DF); + JumpTable[0x08E7] = CAST_OP(0x08E7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x0100 + i + j] = CAST_OP(0x0100); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x0110 + i + j] = CAST_OP(0x0110); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x0118 + i + j] = CAST_OP(0x0118); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x0120 + i + j] = CAST_OP(0x0120); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x0128 + i + j] = CAST_OP(0x0128); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x0130 + i + j] = CAST_OP(0x0130); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x0138 + i] = CAST_OP(0x0138); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x0139 + i] = CAST_OP(0x0139); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x013A + i] = CAST_OP(0x013A); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x013B + i] = CAST_OP(0x013B); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x013C + i] = CAST_OP(0x013C); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x011F + i] = CAST_OP(0x011F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x0127 + i] = CAST_OP(0x0127); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x0140 + i + j] = CAST_OP(0x0140); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x0150 + i + j] = CAST_OP(0x0150); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x0158 + i + j] = CAST_OP(0x0158); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x0160 + i + j] = CAST_OP(0x0160); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x0168 + i + j] = CAST_OP(0x0168); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x0170 + i + j] = CAST_OP(0x0170); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x0178 + i] = CAST_OP(0x0178); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x0179 + i] = CAST_OP(0x0179); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x015F + i] = CAST_OP(0x015F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x0167 + i] = CAST_OP(0x0167); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x0180 + i + j] = CAST_OP(0x0180); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x0190 + i + j] = CAST_OP(0x0190); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x0198 + i + j] = CAST_OP(0x0198); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x01A0 + i + j] = CAST_OP(0x01A0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x01A8 + i + j] = CAST_OP(0x01A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x01B0 + i + j] = CAST_OP(0x01B0); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x01B8 + i] = CAST_OP(0x01B8); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x01B9 + i] = CAST_OP(0x01B9); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x019F + i] = CAST_OP(0x019F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x01A7 + i] = CAST_OP(0x01A7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x01C0 + i + j] = CAST_OP(0x01C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x01D0 + i + j] = CAST_OP(0x01D0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x01D8 + i + j] = CAST_OP(0x01D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x01E0 + i + j] = CAST_OP(0x01E0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x01E8 + i + j] = CAST_OP(0x01E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x01F0 + i + j] = CAST_OP(0x01F0); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x01F8 + i] = CAST_OP(0x01F8); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x01F9 + i] = CAST_OP(0x01F9); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x01DF + i] = CAST_OP(0x01DF); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x01E7 + i] = CAST_OP(0x01E7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x0108 + i + j] = CAST_OP(0x0108); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x0148 + i + j] = CAST_OP(0x0148); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x0188 + i + j] = CAST_OP(0x0188); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x01C8 + i + j] = CAST_OP(0x01C8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x1000 + i + j] = CAST_OP(0x1000); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x1080 + i + j] = CAST_OP(0x1080); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x10C0 + i + j] = CAST_OP(0x10C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x1100 + i + j] = CAST_OP(0x1100); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x1140 + i + j] = CAST_OP(0x1140); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x1180 + i + j] = CAST_OP(0x1180); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x11C0 + i] = CAST_OP(0x11C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x13C0 + i] = CAST_OP(0x13C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x1EC0 + i] = CAST_OP(0x1EC0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x1F00 + i] = CAST_OP(0x1F00); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x1008 + i + j] = CAST_OP(0x1008); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x1088 + i + j] = CAST_OP(0x1088); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x10C8 + i + j] = CAST_OP(0x10C8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x1108 + i + j] = CAST_OP(0x1108); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x1148 + i + j] = CAST_OP(0x1148); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x1188 + i + j] = CAST_OP(0x1188); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x11C8 + i] = CAST_OP(0x11C8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x13C8 + i] = CAST_OP(0x13C8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x1EC8 + i] = CAST_OP(0x1EC8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x1F08 + i] = CAST_OP(0x1F08); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x1010 + i + j] = CAST_OP(0x1010); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x1090 + i + j] = CAST_OP(0x1090); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x10D0 + i + j] = CAST_OP(0x10D0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x1110 + i + j] = CAST_OP(0x1110); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x1150 + i + j] = CAST_OP(0x1150); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x1190 + i + j] = CAST_OP(0x1190); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x11D0 + i] = CAST_OP(0x11D0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x13D0 + i] = CAST_OP(0x13D0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x1ED0 + i] = CAST_OP(0x1ED0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x1F10 + i] = CAST_OP(0x1F10); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x1018 + i + j] = CAST_OP(0x1018); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x1098 + i + j] = CAST_OP(0x1098); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x10D8 + i + j] = CAST_OP(0x10D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x1118 + i + j] = CAST_OP(0x1118); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x1158 + i + j] = CAST_OP(0x1158); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x1198 + i + j] = CAST_OP(0x1198); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x11D8 + i] = CAST_OP(0x11D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x13D8 + i] = CAST_OP(0x13D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x1ED8 + i] = CAST_OP(0x1ED8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x1F18 + i] = CAST_OP(0x1F18); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x1020 + i + j] = CAST_OP(0x1020); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x10A0 + i + j] = CAST_OP(0x10A0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x10E0 + i + j] = CAST_OP(0x10E0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x1120 + i + j] = CAST_OP(0x1120); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x1160 + i + j] = CAST_OP(0x1160); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x11A0 + i + j] = CAST_OP(0x11A0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x11E0 + i] = CAST_OP(0x11E0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x13E0 + i] = CAST_OP(0x13E0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x1EE0 + i] = CAST_OP(0x1EE0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x1F20 + i] = CAST_OP(0x1F20); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x1028 + i + j] = CAST_OP(0x1028); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x10A8 + i + j] = CAST_OP(0x10A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x10E8 + i + j] = CAST_OP(0x10E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x1128 + i + j] = CAST_OP(0x1128); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x1168 + i + j] = CAST_OP(0x1168); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x11A8 + i + j] = CAST_OP(0x11A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x11E8 + i] = CAST_OP(0x11E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x13E8 + i] = CAST_OP(0x13E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x1EE8 + i] = CAST_OP(0x1EE8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x1F28 + i] = CAST_OP(0x1F28); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x1030 + i + j] = CAST_OP(0x1030); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x10B0 + i + j] = CAST_OP(0x10B0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x10F0 + i + j] = CAST_OP(0x10F0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x1130 + i + j] = CAST_OP(0x1130); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x1170 + i + j] = CAST_OP(0x1170); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x11B0 + i + j] = CAST_OP(0x11B0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x11F0 + i] = CAST_OP(0x11F0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x13F0 + i] = CAST_OP(0x13F0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x1EF0 + i] = CAST_OP(0x1EF0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x1F30 + i] = CAST_OP(0x1F30); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x1038 + i] = CAST_OP(0x1038); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x10B8 + i] = CAST_OP(0x10B8); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x10F8 + i] = CAST_OP(0x10F8); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x1138 + i] = CAST_OP(0x1138); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x1178 + i] = CAST_OP(0x1178); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x11B8 + i] = CAST_OP(0x11B8); + JumpTable[0x11F8] = CAST_OP(0x11F8); + JumpTable[0x13F8] = CAST_OP(0x13F8); + JumpTable[0x1EF8] = CAST_OP(0x1EF8); + JumpTable[0x1F38] = CAST_OP(0x1F38); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x1039 + i] = CAST_OP(0x1039); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x10B9 + i] = CAST_OP(0x10B9); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x10F9 + i] = CAST_OP(0x10F9); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x1139 + i] = CAST_OP(0x1139); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x1179 + i] = CAST_OP(0x1179); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x11B9 + i] = CAST_OP(0x11B9); + JumpTable[0x11F9] = CAST_OP(0x11F9); + JumpTable[0x13F9] = CAST_OP(0x13F9); + JumpTable[0x1EF9] = CAST_OP(0x1EF9); + JumpTable[0x1F39] = CAST_OP(0x1F39); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x103A + i] = CAST_OP(0x103A); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x10BA + i] = CAST_OP(0x10BA); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x10FA + i] = CAST_OP(0x10FA); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x113A + i] = CAST_OP(0x113A); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x117A + i] = CAST_OP(0x117A); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x11BA + i] = CAST_OP(0x11BA); + JumpTable[0x11FA] = CAST_OP(0x11FA); + JumpTable[0x13FA] = CAST_OP(0x13FA); + JumpTable[0x1EFA] = CAST_OP(0x1EFA); + JumpTable[0x1F3A] = CAST_OP(0x1F3A); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x103B + i] = CAST_OP(0x103B); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x10BB + i] = CAST_OP(0x10BB); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x10FB + i] = CAST_OP(0x10FB); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x113B + i] = CAST_OP(0x113B); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x117B + i] = CAST_OP(0x117B); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x11BB + i] = CAST_OP(0x11BB); + JumpTable[0x11FB] = CAST_OP(0x11FB); + JumpTable[0x13FB] = CAST_OP(0x13FB); + JumpTable[0x1EFB] = CAST_OP(0x1EFB); + JumpTable[0x1F3B] = CAST_OP(0x1F3B); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x103C + i] = CAST_OP(0x103C); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x10BC + i] = CAST_OP(0x10BC); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x10FC + i] = CAST_OP(0x10FC); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x113C + i] = CAST_OP(0x113C); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x117C + i] = CAST_OP(0x117C); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x11BC + i] = CAST_OP(0x11BC); + JumpTable[0x11FC] = CAST_OP(0x11FC); + JumpTable[0x13FC] = CAST_OP(0x13FC); + JumpTable[0x1EFC] = CAST_OP(0x1EFC); + JumpTable[0x1F3C] = CAST_OP(0x1F3C); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x101F + i] = CAST_OP(0x101F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x109F + i] = CAST_OP(0x109F); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x10DF + i] = CAST_OP(0x10DF); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x111F + i] = CAST_OP(0x111F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x115F + i] = CAST_OP(0x115F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x119F + i] = CAST_OP(0x119F); + JumpTable[0x11DF] = CAST_OP(0x11DF); + JumpTable[0x13DF] = CAST_OP(0x13DF); + JumpTable[0x1EDF] = CAST_OP(0x1EDF); + JumpTable[0x1F1F] = CAST_OP(0x1F1F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x1027 + i] = CAST_OP(0x1027); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x10A7 + i] = CAST_OP(0x10A7); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x10E7 + i] = CAST_OP(0x10E7); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x1127 + i] = CAST_OP(0x1127); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x1167 + i] = CAST_OP(0x1167); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x11A7 + i] = CAST_OP(0x11A7); + JumpTable[0x11E7] = CAST_OP(0x11E7); + JumpTable[0x13E7] = CAST_OP(0x13E7); + JumpTable[0x1EE7] = CAST_OP(0x1EE7); + JumpTable[0x1F27] = CAST_OP(0x1F27); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x2000 + i + j] = CAST_OP(0x2000); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x2080 + i + j] = CAST_OP(0x2080); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x20C0 + i + j] = CAST_OP(0x20C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x2100 + i + j] = CAST_OP(0x2100); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x2140 + i + j] = CAST_OP(0x2140); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x2180 + i + j] = CAST_OP(0x2180); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x21C0 + i] = CAST_OP(0x21C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x23C0 + i] = CAST_OP(0x23C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x2EC0 + i] = CAST_OP(0x2EC0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x2F00 + i] = CAST_OP(0x2F00); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x2008 + i + j] = CAST_OP(0x2008); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x2088 + i + j] = CAST_OP(0x2088); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x20C8 + i + j] = CAST_OP(0x20C8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x2108 + i + j] = CAST_OP(0x2108); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x2148 + i + j] = CAST_OP(0x2148); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x2188 + i + j] = CAST_OP(0x2188); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x21C8 + i] = CAST_OP(0x21C8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x23C8 + i] = CAST_OP(0x23C8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x2EC8 + i] = CAST_OP(0x2EC8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x2F08 + i] = CAST_OP(0x2F08); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x2010 + i + j] = CAST_OP(0x2010); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x2090 + i + j] = CAST_OP(0x2090); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x20D0 + i + j] = CAST_OP(0x20D0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x2110 + i + j] = CAST_OP(0x2110); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x2150 + i + j] = CAST_OP(0x2150); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x2190 + i + j] = CAST_OP(0x2190); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x21D0 + i] = CAST_OP(0x21D0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x23D0 + i] = CAST_OP(0x23D0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x2ED0 + i] = CAST_OP(0x2ED0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x2F10 + i] = CAST_OP(0x2F10); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x2018 + i + j] = CAST_OP(0x2018); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x2098 + i + j] = CAST_OP(0x2098); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x20D8 + i + j] = CAST_OP(0x20D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x2118 + i + j] = CAST_OP(0x2118); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x2158 + i + j] = CAST_OP(0x2158); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x2198 + i + j] = CAST_OP(0x2198); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x21D8 + i] = CAST_OP(0x21D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x23D8 + i] = CAST_OP(0x23D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x2ED8 + i] = CAST_OP(0x2ED8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x2F18 + i] = CAST_OP(0x2F18); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x2020 + i + j] = CAST_OP(0x2020); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x20A0 + i + j] = CAST_OP(0x20A0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x20E0 + i + j] = CAST_OP(0x20E0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x2120 + i + j] = CAST_OP(0x2120); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x2160 + i + j] = CAST_OP(0x2160); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x21A0 + i + j] = CAST_OP(0x21A0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x21E0 + i] = CAST_OP(0x21E0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x23E0 + i] = CAST_OP(0x23E0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x2EE0 + i] = CAST_OP(0x2EE0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x2F20 + i] = CAST_OP(0x2F20); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x2028 + i + j] = CAST_OP(0x2028); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x20A8 + i + j] = CAST_OP(0x20A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x20E8 + i + j] = CAST_OP(0x20E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x2128 + i + j] = CAST_OP(0x2128); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x2168 + i + j] = CAST_OP(0x2168); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x21A8 + i + j] = CAST_OP(0x21A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x21E8 + i] = CAST_OP(0x21E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x23E8 + i] = CAST_OP(0x23E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x2EE8 + i] = CAST_OP(0x2EE8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x2F28 + i] = CAST_OP(0x2F28); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x2030 + i + j] = CAST_OP(0x2030); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x20B0 + i + j] = CAST_OP(0x20B0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x20F0 + i + j] = CAST_OP(0x20F0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x2130 + i + j] = CAST_OP(0x2130); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x2170 + i + j] = CAST_OP(0x2170); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x21B0 + i + j] = CAST_OP(0x21B0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x21F0 + i] = CAST_OP(0x21F0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x23F0 + i] = CAST_OP(0x23F0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x2EF0 + i] = CAST_OP(0x2EF0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x2F30 + i] = CAST_OP(0x2F30); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x2038 + i] = CAST_OP(0x2038); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x20B8 + i] = CAST_OP(0x20B8); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x20F8 + i] = CAST_OP(0x20F8); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x2138 + i] = CAST_OP(0x2138); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x2178 + i] = CAST_OP(0x2178); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x21B8 + i] = CAST_OP(0x21B8); + JumpTable[0x21F8] = CAST_OP(0x21F8); + JumpTable[0x23F8] = CAST_OP(0x23F8); + JumpTable[0x2EF8] = CAST_OP(0x2EF8); + JumpTable[0x2F38] = CAST_OP(0x2F38); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x2039 + i] = CAST_OP(0x2039); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x20B9 + i] = CAST_OP(0x20B9); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x20F9 + i] = CAST_OP(0x20F9); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x2139 + i] = CAST_OP(0x2139); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x2179 + i] = CAST_OP(0x2179); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x21B9 + i] = CAST_OP(0x21B9); + JumpTable[0x21F9] = CAST_OP(0x21F9); + JumpTable[0x23F9] = CAST_OP(0x23F9); + JumpTable[0x2EF9] = CAST_OP(0x2EF9); + JumpTable[0x2F39] = CAST_OP(0x2F39); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x203A + i] = CAST_OP(0x203A); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x20BA + i] = CAST_OP(0x20BA); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x20FA + i] = CAST_OP(0x20FA); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x213A + i] = CAST_OP(0x213A); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x217A + i] = CAST_OP(0x217A); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x21BA + i] = CAST_OP(0x21BA); + JumpTable[0x21FA] = CAST_OP(0x21FA); + JumpTable[0x23FA] = CAST_OP(0x23FA); + JumpTable[0x2EFA] = CAST_OP(0x2EFA); + JumpTable[0x2F3A] = CAST_OP(0x2F3A); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x203B + i] = CAST_OP(0x203B); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x20BB + i] = CAST_OP(0x20BB); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x20FB + i] = CAST_OP(0x20FB); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x213B + i] = CAST_OP(0x213B); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x217B + i] = CAST_OP(0x217B); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x21BB + i] = CAST_OP(0x21BB); + JumpTable[0x21FB] = CAST_OP(0x21FB); + JumpTable[0x23FB] = CAST_OP(0x23FB); + JumpTable[0x2EFB] = CAST_OP(0x2EFB); + JumpTable[0x2F3B] = CAST_OP(0x2F3B); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x203C + i] = CAST_OP(0x203C); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x20BC + i] = CAST_OP(0x20BC); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x20FC + i] = CAST_OP(0x20FC); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x213C + i] = CAST_OP(0x213C); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x217C + i] = CAST_OP(0x217C); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x21BC + i] = CAST_OP(0x21BC); + JumpTable[0x21FC] = CAST_OP(0x21FC); + JumpTable[0x23FC] = CAST_OP(0x23FC); + JumpTable[0x2EFC] = CAST_OP(0x2EFC); + JumpTable[0x2F3C] = CAST_OP(0x2F3C); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x201F + i] = CAST_OP(0x201F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x209F + i] = CAST_OP(0x209F); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x20DF + i] = CAST_OP(0x20DF); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x211F + i] = CAST_OP(0x211F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x215F + i] = CAST_OP(0x215F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x219F + i] = CAST_OP(0x219F); + JumpTable[0x21DF] = CAST_OP(0x21DF); + JumpTable[0x23DF] = CAST_OP(0x23DF); + JumpTable[0x2EDF] = CAST_OP(0x2EDF); + JumpTable[0x2F1F] = CAST_OP(0x2F1F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x2027 + i] = CAST_OP(0x2027); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x20A7 + i] = CAST_OP(0x20A7); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x20E7 + i] = CAST_OP(0x20E7); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x2127 + i] = CAST_OP(0x2127); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x2167 + i] = CAST_OP(0x2167); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x21A7 + i] = CAST_OP(0x21A7); + JumpTable[0x21E7] = CAST_OP(0x21E7); + JumpTable[0x23E7] = CAST_OP(0x23E7); + JumpTable[0x2EE7] = CAST_OP(0x2EE7); + JumpTable[0x2F27] = CAST_OP(0x2F27); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x3000 + i + j] = CAST_OP(0x3000); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x3080 + i + j] = CAST_OP(0x3080); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x30C0 + i + j] = CAST_OP(0x30C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x3100 + i + j] = CAST_OP(0x3100); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x3140 + i + j] = CAST_OP(0x3140); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x3180 + i + j] = CAST_OP(0x3180); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x31C0 + i] = CAST_OP(0x31C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x33C0 + i] = CAST_OP(0x33C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x3EC0 + i] = CAST_OP(0x3EC0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x3F00 + i] = CAST_OP(0x3F00); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x3008 + i + j] = CAST_OP(0x3008); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x3088 + i + j] = CAST_OP(0x3088); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x30C8 + i + j] = CAST_OP(0x30C8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x3108 + i + j] = CAST_OP(0x3108); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x3148 + i + j] = CAST_OP(0x3148); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x3188 + i + j] = CAST_OP(0x3188); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x31C8 + i] = CAST_OP(0x31C8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x33C8 + i] = CAST_OP(0x33C8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x3EC8 + i] = CAST_OP(0x3EC8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x3F08 + i] = CAST_OP(0x3F08); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x3010 + i + j] = CAST_OP(0x3010); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x3090 + i + j] = CAST_OP(0x3090); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x30D0 + i + j] = CAST_OP(0x30D0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x3110 + i + j] = CAST_OP(0x3110); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x3150 + i + j] = CAST_OP(0x3150); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x3190 + i + j] = CAST_OP(0x3190); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x31D0 + i] = CAST_OP(0x31D0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x33D0 + i] = CAST_OP(0x33D0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x3ED0 + i] = CAST_OP(0x3ED0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x3F10 + i] = CAST_OP(0x3F10); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x3018 + i + j] = CAST_OP(0x3018); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x3098 + i + j] = CAST_OP(0x3098); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x30D8 + i + j] = CAST_OP(0x30D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x3118 + i + j] = CAST_OP(0x3118); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x3158 + i + j] = CAST_OP(0x3158); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x3198 + i + j] = CAST_OP(0x3198); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x31D8 + i] = CAST_OP(0x31D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x33D8 + i] = CAST_OP(0x33D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x3ED8 + i] = CAST_OP(0x3ED8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x3F18 + i] = CAST_OP(0x3F18); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x3020 + i + j] = CAST_OP(0x3020); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x30A0 + i + j] = CAST_OP(0x30A0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x30E0 + i + j] = CAST_OP(0x30E0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x3120 + i + j] = CAST_OP(0x3120); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x3160 + i + j] = CAST_OP(0x3160); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x31A0 + i + j] = CAST_OP(0x31A0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x31E0 + i] = CAST_OP(0x31E0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x33E0 + i] = CAST_OP(0x33E0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x3EE0 + i] = CAST_OP(0x3EE0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x3F20 + i] = CAST_OP(0x3F20); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x3028 + i + j] = CAST_OP(0x3028); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x30A8 + i + j] = CAST_OP(0x30A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x30E8 + i + j] = CAST_OP(0x30E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x3128 + i + j] = CAST_OP(0x3128); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x3168 + i + j] = CAST_OP(0x3168); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x31A8 + i + j] = CAST_OP(0x31A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x31E8 + i] = CAST_OP(0x31E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x33E8 + i] = CAST_OP(0x33E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x3EE8 + i] = CAST_OP(0x3EE8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x3F28 + i] = CAST_OP(0x3F28); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x3030 + i + j] = CAST_OP(0x3030); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x30B0 + i + j] = CAST_OP(0x30B0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x30F0 + i + j] = CAST_OP(0x30F0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x3130 + i + j] = CAST_OP(0x3130); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x3170 + i + j] = CAST_OP(0x3170); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x31B0 + i + j] = CAST_OP(0x31B0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x31F0 + i] = CAST_OP(0x31F0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x33F0 + i] = CAST_OP(0x33F0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x3EF0 + i] = CAST_OP(0x3EF0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x3F30 + i] = CAST_OP(0x3F30); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x3038 + i] = CAST_OP(0x3038); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x30B8 + i] = CAST_OP(0x30B8); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x30F8 + i] = CAST_OP(0x30F8); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x3138 + i] = CAST_OP(0x3138); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x3178 + i] = CAST_OP(0x3178); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x31B8 + i] = CAST_OP(0x31B8); + JumpTable[0x31F8] = CAST_OP(0x31F8); + JumpTable[0x33F8] = CAST_OP(0x33F8); + JumpTable[0x3EF8] = CAST_OP(0x3EF8); + JumpTable[0x3F38] = CAST_OP(0x3F38); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x3039 + i] = CAST_OP(0x3039); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x30B9 + i] = CAST_OP(0x30B9); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x30F9 + i] = CAST_OP(0x30F9); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x3139 + i] = CAST_OP(0x3139); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x3179 + i] = CAST_OP(0x3179); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x31B9 + i] = CAST_OP(0x31B9); + JumpTable[0x31F9] = CAST_OP(0x31F9); + JumpTable[0x33F9] = CAST_OP(0x33F9); + JumpTable[0x3EF9] = CAST_OP(0x3EF9); + JumpTable[0x3F39] = CAST_OP(0x3F39); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x303A + i] = CAST_OP(0x303A); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x30BA + i] = CAST_OP(0x30BA); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x30FA + i] = CAST_OP(0x30FA); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x313A + i] = CAST_OP(0x313A); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x317A + i] = CAST_OP(0x317A); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x31BA + i] = CAST_OP(0x31BA); + JumpTable[0x31FA] = CAST_OP(0x31FA); + JumpTable[0x33FA] = CAST_OP(0x33FA); + JumpTable[0x3EFA] = CAST_OP(0x3EFA); + JumpTable[0x3F3A] = CAST_OP(0x3F3A); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x303B + i] = CAST_OP(0x303B); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x30BB + i] = CAST_OP(0x30BB); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x30FB + i] = CAST_OP(0x30FB); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x313B + i] = CAST_OP(0x313B); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x317B + i] = CAST_OP(0x317B); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x31BB + i] = CAST_OP(0x31BB); + JumpTable[0x31FB] = CAST_OP(0x31FB); + JumpTable[0x33FB] = CAST_OP(0x33FB); + JumpTable[0x3EFB] = CAST_OP(0x3EFB); + JumpTable[0x3F3B] = CAST_OP(0x3F3B); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x303C + i] = CAST_OP(0x303C); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x30BC + i] = CAST_OP(0x30BC); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x30FC + i] = CAST_OP(0x30FC); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x313C + i] = CAST_OP(0x313C); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x317C + i] = CAST_OP(0x317C); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x31BC + i] = CAST_OP(0x31BC); + JumpTable[0x31FC] = CAST_OP(0x31FC); + JumpTable[0x33FC] = CAST_OP(0x33FC); + JumpTable[0x3EFC] = CAST_OP(0x3EFC); + JumpTable[0x3F3C] = CAST_OP(0x3F3C); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x301F + i] = CAST_OP(0x301F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x309F + i] = CAST_OP(0x309F); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x30DF + i] = CAST_OP(0x30DF); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x311F + i] = CAST_OP(0x311F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x315F + i] = CAST_OP(0x315F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x319F + i] = CAST_OP(0x319F); + JumpTable[0x31DF] = CAST_OP(0x31DF); + JumpTable[0x33DF] = CAST_OP(0x33DF); + JumpTable[0x3EDF] = CAST_OP(0x3EDF); + JumpTable[0x3F1F] = CAST_OP(0x3F1F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x3027 + i] = CAST_OP(0x3027); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x30A7 + i] = CAST_OP(0x30A7); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x30E7 + i] = CAST_OP(0x30E7); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x3127 + i] = CAST_OP(0x3127); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x3167 + i] = CAST_OP(0x3167); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x31A7 + i] = CAST_OP(0x31A7); + JumpTable[0x31E7] = CAST_OP(0x31E7); + JumpTable[0x33E7] = CAST_OP(0x33E7); + JumpTable[0x3EE7] = CAST_OP(0x3EE7); + JumpTable[0x3F27] = CAST_OP(0x3F27); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x2040 + i + j] = CAST_OP(0x2040); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x2048 + i + j] = CAST_OP(0x2048); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x2050 + i + j] = CAST_OP(0x2050); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x2058 + i + j] = CAST_OP(0x2058); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x2060 + i + j] = CAST_OP(0x2060); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x2068 + i + j] = CAST_OP(0x2068); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x2070 + i + j] = CAST_OP(0x2070); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x2078 + i] = CAST_OP(0x2078); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x2079 + i] = CAST_OP(0x2079); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x207A + i] = CAST_OP(0x207A); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x207B + i] = CAST_OP(0x207B); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x207C + i] = CAST_OP(0x207C); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x205F + i] = CAST_OP(0x205F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x2067 + i] = CAST_OP(0x2067); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x3040 + i + j] = CAST_OP(0x3040); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x3048 + i + j] = CAST_OP(0x3048); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x3050 + i + j] = CAST_OP(0x3050); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x3058 + i + j] = CAST_OP(0x3058); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x3060 + i + j] = CAST_OP(0x3060); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x3068 + i + j] = CAST_OP(0x3068); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x3070 + i + j] = CAST_OP(0x3070); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x3078 + i] = CAST_OP(0x3078); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x3079 + i] = CAST_OP(0x3079); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x307A + i] = CAST_OP(0x307A); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x307B + i] = CAST_OP(0x307B); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x307C + i] = CAST_OP(0x307C); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x305F + i] = CAST_OP(0x305F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x3067 + i] = CAST_OP(0x3067); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4000 + i] = CAST_OP(0x4000); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4010 + i] = CAST_OP(0x4010); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4018 + i] = CAST_OP(0x4018); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4020 + i] = CAST_OP(0x4020); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4028 + i] = CAST_OP(0x4028); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4030 + i] = CAST_OP(0x4030); + JumpTable[0x4038] = CAST_OP(0x4038); + JumpTable[0x4039] = CAST_OP(0x4039); + JumpTable[0x401F] = CAST_OP(0x401F); + JumpTable[0x4027] = CAST_OP(0x4027); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4040 + i] = CAST_OP(0x4040); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4050 + i] = CAST_OP(0x4050); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4058 + i] = CAST_OP(0x4058); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4060 + i] = CAST_OP(0x4060); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4068 + i] = CAST_OP(0x4068); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4070 + i] = CAST_OP(0x4070); + JumpTable[0x4078] = CAST_OP(0x4078); + JumpTable[0x4079] = CAST_OP(0x4079); + JumpTable[0x405F] = CAST_OP(0x405F); + JumpTable[0x4067] = CAST_OP(0x4067); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4080 + i] = CAST_OP(0x4080); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4090 + i] = CAST_OP(0x4090); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4098 + i] = CAST_OP(0x4098); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x40A0 + i] = CAST_OP(0x40A0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x40A8 + i] = CAST_OP(0x40A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x40B0 + i] = CAST_OP(0x40B0); + JumpTable[0x40B8] = CAST_OP(0x40B8); + JumpTable[0x40B9] = CAST_OP(0x40B9); + JumpTable[0x409F] = CAST_OP(0x409F); + JumpTable[0x40A7] = CAST_OP(0x40A7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4200 + i] = CAST_OP(0x4200); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4210 + i] = CAST_OP(0x4210); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4218 + i] = CAST_OP(0x4218); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4220 + i] = CAST_OP(0x4220); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4228 + i] = CAST_OP(0x4228); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4230 + i] = CAST_OP(0x4230); + JumpTable[0x4238] = CAST_OP(0x4238); + JumpTable[0x4239] = CAST_OP(0x4239); + JumpTable[0x421F] = CAST_OP(0x421F); + JumpTable[0x4227] = CAST_OP(0x4227); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4240 + i] = CAST_OP(0x4240); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4250 + i] = CAST_OP(0x4250); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4258 + i] = CAST_OP(0x4258); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4260 + i] = CAST_OP(0x4260); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4268 + i] = CAST_OP(0x4268); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4270 + i] = CAST_OP(0x4270); + JumpTable[0x4278] = CAST_OP(0x4278); + JumpTable[0x4279] = CAST_OP(0x4279); + JumpTable[0x425F] = CAST_OP(0x425F); + JumpTable[0x4267] = CAST_OP(0x4267); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4280 + i] = CAST_OP(0x4280); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4290 + i] = CAST_OP(0x4290); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4298 + i] = CAST_OP(0x4298); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x42A0 + i] = CAST_OP(0x42A0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x42A8 + i] = CAST_OP(0x42A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x42B0 + i] = CAST_OP(0x42B0); + JumpTable[0x42B8] = CAST_OP(0x42B8); + JumpTable[0x42B9] = CAST_OP(0x42B9); + JumpTable[0x429F] = CAST_OP(0x429F); + JumpTable[0x42A7] = CAST_OP(0x42A7); +#ifdef OPCODES_M68020 + /* MOVE CCR */ + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x42C0 + i] = CAST_OP(0x42C0); // MOVE CCR - 68020+ + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x42D0 + i] = CAST_OP(0x42D0); // MOVE CCR - 68020+ + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x42D8 + i] = CAST_OP(0x42D8); // MOVE CCR - 68020+ + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x42E0 + i] = CAST_OP(0x42E0); // MOVE CCR - 68020+ + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x42E8 + i] = CAST_OP(0x42E8); // MOVE CCR - 68020+ + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x42F0 + i] = CAST_OP(0x42F0); // MOVE CCR - 68020+ + JumpTable[0x42F8] = CAST_OP(0x42F8); // MOVE CCR - 68020+ + JumpTable[0x42F9] = CAST_OP(0x42F9); // MOVE CCR - 68020+ + /* End of MOVE CCR */ +#endif + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4400 + i] = CAST_OP(0x4400); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4410 + i] = CAST_OP(0x4410); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4418 + i] = CAST_OP(0x4418); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4420 + i] = CAST_OP(0x4420); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4428 + i] = CAST_OP(0x4428); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4430 + i] = CAST_OP(0x4430); + JumpTable[0x4438] = CAST_OP(0x4438); + JumpTable[0x4439] = CAST_OP(0x4439); + JumpTable[0x441F] = CAST_OP(0x441F); + JumpTable[0x4427] = CAST_OP(0x4427); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4440 + i] = CAST_OP(0x4440); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4450 + i] = CAST_OP(0x4450); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4458 + i] = CAST_OP(0x4458); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4460 + i] = CAST_OP(0x4460); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4468 + i] = CAST_OP(0x4468); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4470 + i] = CAST_OP(0x4470); + JumpTable[0x4478] = CAST_OP(0x4478); + JumpTable[0x4479] = CAST_OP(0x4479); + JumpTable[0x445F] = CAST_OP(0x445F); + JumpTable[0x4467] = CAST_OP(0x4467); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4480 + i] = CAST_OP(0x4480); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4490 + i] = CAST_OP(0x4490); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4498 + i] = CAST_OP(0x4498); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x44A0 + i] = CAST_OP(0x44A0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x44A8 + i] = CAST_OP(0x44A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x44B0 + i] = CAST_OP(0x44B0); + JumpTable[0x44B8] = CAST_OP(0x44B8); + JumpTable[0x44B9] = CAST_OP(0x44B9); + JumpTable[0x449F] = CAST_OP(0x449F); + JumpTable[0x44A7] = CAST_OP(0x44A7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4600 + i] = CAST_OP(0x4600); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4610 + i] = CAST_OP(0x4610); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4618 + i] = CAST_OP(0x4618); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4620 + i] = CAST_OP(0x4620); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4628 + i] = CAST_OP(0x4628); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4630 + i] = CAST_OP(0x4630); + JumpTable[0x4638] = CAST_OP(0x4638); + JumpTable[0x4639] = CAST_OP(0x4639); + JumpTable[0x461F] = CAST_OP(0x461F); + JumpTable[0x4627] = CAST_OP(0x4627); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4640 + i] = CAST_OP(0x4640); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4650 + i] = CAST_OP(0x4650); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4658 + i] = CAST_OP(0x4658); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4660 + i] = CAST_OP(0x4660); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4668 + i] = CAST_OP(0x4668); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4670 + i] = CAST_OP(0x4670); + JumpTable[0x4678] = CAST_OP(0x4678); + JumpTable[0x4679] = CAST_OP(0x4679); + JumpTable[0x465F] = CAST_OP(0x465F); + JumpTable[0x4667] = CAST_OP(0x4667); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4680 + i] = CAST_OP(0x4680); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4690 + i] = CAST_OP(0x4690); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4698 + i] = CAST_OP(0x4698); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x46A0 + i] = CAST_OP(0x46A0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x46A8 + i] = CAST_OP(0x46A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x46B0 + i] = CAST_OP(0x46B0); + JumpTable[0x46B8] = CAST_OP(0x46B8); + JumpTable[0x46B9] = CAST_OP(0x46B9); + JumpTable[0x469F] = CAST_OP(0x469F); + JumpTable[0x46A7] = CAST_OP(0x46A7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x40C0 + i] = CAST_OP(0x40C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x40D0 + i] = CAST_OP(0x40D0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x40D8 + i] = CAST_OP(0x40D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x40E0 + i] = CAST_OP(0x40E0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x40E8 + i] = CAST_OP(0x40E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x40F0 + i] = CAST_OP(0x40F0); + JumpTable[0x40F8] = CAST_OP(0x40F8); + JumpTable[0x40F9] = CAST_OP(0x40F9); + JumpTable[0x40DF] = CAST_OP(0x40DF); + JumpTable[0x40E7] = CAST_OP(0x40E7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x44C0 + i] = CAST_OP(0x44C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x44D0 + i] = CAST_OP(0x44D0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x44D8 + i] = CAST_OP(0x44D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x44E0 + i] = CAST_OP(0x44E0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x44E8 + i] = CAST_OP(0x44E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x44F0 + i] = CAST_OP(0x44F0); + JumpTable[0x44F8] = CAST_OP(0x44F8); + JumpTable[0x44F9] = CAST_OP(0x44F9); + JumpTable[0x44FA] = CAST_OP(0x44FA); + JumpTable[0x44FB] = CAST_OP(0x44FB); + JumpTable[0x44FC] = CAST_OP(0x44FC); + JumpTable[0x44DF] = CAST_OP(0x44DF); + JumpTable[0x44E7] = CAST_OP(0x44E7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x46C0 + i] = CAST_OP(0x46C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x46D0 + i] = CAST_OP(0x46D0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x46D8 + i] = CAST_OP(0x46D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x46E0 + i] = CAST_OP(0x46E0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x46E8 + i] = CAST_OP(0x46E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x46F0 + i] = CAST_OP(0x46F0); + JumpTable[0x46F8] = CAST_OP(0x46F8); + JumpTable[0x46F9] = CAST_OP(0x46F9); + JumpTable[0x46FA] = CAST_OP(0x46FA); + JumpTable[0x46FB] = CAST_OP(0x46FB); + JumpTable[0x46FC] = CAST_OP(0x46FC); + JumpTable[0x46DF] = CAST_OP(0x46DF); + JumpTable[0x46E7] = CAST_OP(0x46E7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4800 + i] = CAST_OP(0x4800); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4810 + i] = CAST_OP(0x4810); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4818 + i] = CAST_OP(0x4818); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4820 + i] = CAST_OP(0x4820); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4828 + i] = CAST_OP(0x4828); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4830 + i] = CAST_OP(0x4830); + JumpTable[0x4838] = CAST_OP(0x4838); + JumpTable[0x4839] = CAST_OP(0x4839); + JumpTable[0x481F] = CAST_OP(0x481F); + JumpTable[0x4827] = CAST_OP(0x4827); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4850 + i] = CAST_OP(0x4850); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4868 + i] = CAST_OP(0x4868); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4870 + i] = CAST_OP(0x4870); + JumpTable[0x4878] = CAST_OP(0x4878); + JumpTable[0x4879] = CAST_OP(0x4879); + JumpTable[0x487A] = CAST_OP(0x487A); + JumpTable[0x487B] = CAST_OP(0x487B); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4840 + i] = CAST_OP(0x4840); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4890 + i] = CAST_OP(0x4890); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x48A0 + i] = CAST_OP(0x48A0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x48A8 + i] = CAST_OP(0x48A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x48B0 + i] = CAST_OP(0x48B0); + JumpTable[0x48B8] = CAST_OP(0x48B8); + JumpTable[0x48B9] = CAST_OP(0x48B9); + JumpTable[0x48A7] = CAST_OP(0x48A7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x48D0 + i] = CAST_OP(0x48D0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x48E0 + i] = CAST_OP(0x48E0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x48E8 + i] = CAST_OP(0x48E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x48F0 + i] = CAST_OP(0x48F0); + JumpTable[0x48F8] = CAST_OP(0x48F8); + JumpTable[0x48F9] = CAST_OP(0x48F9); + JumpTable[0x48E7] = CAST_OP(0x48E7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4880 + i] = CAST_OP(0x4880); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x48C0 + i] = CAST_OP(0x48C0); +#ifdef OPCODES_M68020 + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x49C0 + i] = CAST_OP(0x49C0); // EXT.B - 68020+ +#endif + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4A00 + i] = CAST_OP(0x4A00); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4A10 + i] = CAST_OP(0x4A10); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4A18 + i] = CAST_OP(0x4A18); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4A20 + i] = CAST_OP(0x4A20); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4A28 + i] = CAST_OP(0x4A28); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4A30 + i] = CAST_OP(0x4A30); + JumpTable[0x4A38] = CAST_OP(0x4A38); + JumpTable[0x4A39] = CAST_OP(0x4A39); +#ifdef OPCODES_M68020 + JumpTable[0x4A3A] = CAST_OP(0x4A3A); // TST - 68020+ + JumpTable[0x4A3B] = CAST_OP(0x4A3B); // TST - 68020+ + JumpTable[0x4A3C] = CAST_OP(0x4A3C); // TST - 68020+ +#endif + JumpTable[0x4A1F] = CAST_OP(0x4A1F); + JumpTable[0x4A27] = CAST_OP(0x4A27); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4A40 + i] = CAST_OP(0x4A40); +#ifdef OPCODES_M68020 + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4A48 + i] = CAST_OP(0x4A48); // TST - 68020+ +#endif + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4A50 + i] = CAST_OP(0x4A50); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4A58 + i] = CAST_OP(0x4A58); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4A60 + i] = CAST_OP(0x4A60); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4A68 + i] = CAST_OP(0x4A68); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4A70 + i] = CAST_OP(0x4A70); + JumpTable[0x4A78] = CAST_OP(0x4A78); + JumpTable[0x4A79] = CAST_OP(0x4A79); +#ifdef OPCODES_M68020 + JumpTable[0x4A7A] = CAST_OP(0x4A7A); // TST - 68020+ + JumpTable[0x4A7B] = CAST_OP(0x4A7B); // TST - 68020+ + JumpTable[0x4A7C] = CAST_OP(0x4A7C); // TST - 68020+ +#endif + JumpTable[0x4A5F] = CAST_OP(0x4A5F); + JumpTable[0x4A67] = CAST_OP(0x4A67); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4A80 + i] = CAST_OP(0x4A80); +#ifdef OPCODES_M68020 + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4A88 + i] = CAST_OP(0x4A88); // TST - 68020+ +#endif + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4A90 + i] = CAST_OP(0x4A90); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4A98 + i] = CAST_OP(0x4A98); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4AA0 + i] = CAST_OP(0x4AA0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4AA8 + i] = CAST_OP(0x4AA8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4AB0 + i] = CAST_OP(0x4AB0); + JumpTable[0x4AB8] = CAST_OP(0x4AB8); + JumpTable[0x4AB9] = CAST_OP(0x4AB9); +#ifdef OPCODES_M68020 + JumpTable[0x4ABA] = CAST_OP(0x4ABA); // TST - 68020+ + JumpTable[0x4ABB] = CAST_OP(0x4ABB); // TST - 68020+ + JumpTable[0x4ABC] = CAST_OP(0x4ABC); // TST - 68020+ +#endif + JumpTable[0x4A9F] = CAST_OP(0x4A9F); + JumpTable[0x4AA7] = CAST_OP(0x4AA7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4AC0 + i] = CAST_OP(0x4AC0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4AD0 + i] = CAST_OP(0x4AD0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4AD8 + i] = CAST_OP(0x4AD8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4AE0 + i] = CAST_OP(0x4AE0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4AE8 + i] = CAST_OP(0x4AE8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4AF0 + i] = CAST_OP(0x4AF0); + JumpTable[0x4AF8] = CAST_OP(0x4AF8); + JumpTable[0x4AF9] = CAST_OP(0x4AF9); + JumpTable[0x4ADF] = CAST_OP(0x4ADF); + JumpTable[0x4AE7] = CAST_OP(0x4AE7); + JumpTable[0x4AFC] = CAST_OP(0x4AFC); +#ifdef OPCODES_M68020 + /* MULS/MULU.L, 68020+ */ + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4C00 + i] = CAST_OP(0x4C00); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4C10 + i] = CAST_OP(0x4C10); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4C18 + i] = CAST_OP(0x4C18); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4C20 + i] = CAST_OP(0x4C20); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4C28 + i] = CAST_OP(0x4C28); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4C30 + i] = CAST_OP(0x4C30); + JumpTable[0x4C38] = CAST_OP(0x4C38); + JumpTable[0x4C39] = CAST_OP(0x4C39); + JumpTable[0x4C3A] = CAST_OP(0x4C3A); + JumpTable[0x4C3B] = CAST_OP(0x4C3B); + JumpTable[0x4C3C] = CAST_OP(0x4C3C); + /* End of MULS/MULU.L */ + /* DIVS/DIVL.L, 68020+ */ + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4C40 + i] = CAST_OP(0x4C40); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4C50 + i] = CAST_OP(0x4C50); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4C58 + i] = CAST_OP(0x4C58); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4C60 + i] = CAST_OP(0x4C60); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4C68 + i] = CAST_OP(0x4C68); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4C70 + i] = CAST_OP(0x4C70); + JumpTable[0x4C78] = CAST_OP(0x4C78); + JumpTable[0x4C79] = CAST_OP(0x4C79); + JumpTable[0x4C7A] = CAST_OP(0x4C7A); + JumpTable[0x4C7B] = CAST_OP(0x4C7B); + JumpTable[0x4C7C] = CAST_OP(0x4C7C); + /* End of DIVS/DIVL.L */ +#endif + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4C90 + i] = CAST_OP(0x4C90); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4C98 + i] = CAST_OP(0x4C98); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4CA8 + i] = CAST_OP(0x4CA8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4CB0 + i] = CAST_OP(0x4CB0); + JumpTable[0x4CB8] = CAST_OP(0x4CB8); + JumpTable[0x4CB9] = CAST_OP(0x4CB9); + JumpTable[0x4CBA] = CAST_OP(0x4CBA); + JumpTable[0x4CBB] = CAST_OP(0x4CBB); + JumpTable[0x4C9F] = CAST_OP(0x4C9F); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4CD0 + i] = CAST_OP(0x4CD0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4CD8 + i] = CAST_OP(0x4CD8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4CE8 + i] = CAST_OP(0x4CE8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4CF0 + i] = CAST_OP(0x4CF0); + JumpTable[0x4CF8] = CAST_OP(0x4CF8); + JumpTable[0x4CF9] = CAST_OP(0x4CF9); + JumpTable[0x4CFA] = CAST_OP(0x4CFA); + JumpTable[0x4CFB] = CAST_OP(0x4CFB); + JumpTable[0x4CDF] = CAST_OP(0x4CDF); + for(i = 0x0000; i <= 0x000F; i += 0x0001) + JumpTable[0x4E40 + i] = CAST_OP(0x4E40); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4E50 + i] = CAST_OP(0x4E50); + JumpTable[0x4E57] = CAST_OP(0x4E57); +#ifdef OPCODES_M68020 + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x4808 + i] = CAST_OP(0x4808); // LINK32 - 68020+ + JumpTable[0x480F] = CAST_OP(0x480F); // LINK32 - 68020+ +#endif + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4E58 + i] = CAST_OP(0x4E58); + JumpTable[0x4E5F] = CAST_OP(0x4E5F); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4E60 + i] = CAST_OP(0x4E60); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4E68 + i] = CAST_OP(0x4E68); + JumpTable[0x4E70] = CAST_OP(0x4E70); + JumpTable[0x4E71] = CAST_OP(0x4E71); + JumpTable[0x4E72] = CAST_OP(0x4E72); + JumpTable[0x4E73] = CAST_OP(0x4E73); // RTE - different for 68010+ +#ifdef OPCODES_M68020 + JumpTable[0x4E74] = CAST_OP(0x4E74); // RTD - 68010+ +#endif + JumpTable[0x4E75] = CAST_OP(0x4E75); + JumpTable[0x4E76] = CAST_OP(0x4E76); + JumpTable[0x4E77] = CAST_OP(0x4E77); +#ifdef OPCODES_M68020 + JumpTable[0x4E7A] = CAST_OP(0x4E7A); // MOVEC Rc, Xn - 68020+ + JumpTable[0x4E7B] = CAST_OP(0x4E7B); // MOVEC Xn, Rc - 68020+ +#endif + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4E90 + i] = CAST_OP(0x4E90); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4EA8 + i] = CAST_OP(0x4EA8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4EB0 + i] = CAST_OP(0x4EB0); + JumpTable[0x4EB8] = CAST_OP(0x4EB8); + JumpTable[0x4EB9] = CAST_OP(0x4EB9); + JumpTable[0x4EBA] = CAST_OP(0x4EBA); + JumpTable[0x4EBB] = CAST_OP(0x4EBB); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4ED0 + i] = CAST_OP(0x4ED0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4EE8 + i] = CAST_OP(0x4EE8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x4EF0 + i] = CAST_OP(0x4EF0); + JumpTable[0x4EF8] = CAST_OP(0x4EF8); + JumpTable[0x4EF9] = CAST_OP(0x4EF9); + JumpTable[0x4EFA] = CAST_OP(0x4EFA); + JumpTable[0x4EFB] = CAST_OP(0x4EFB); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x4180 + i + j] = CAST_OP(0x4180); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x4190 + i + j] = CAST_OP(0x4190); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x4198 + i + j] = CAST_OP(0x4198); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x41A0 + i + j] = CAST_OP(0x41A0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x41A8 + i + j] = CAST_OP(0x41A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x41B0 + i + j] = CAST_OP(0x41B0); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x41B8 + i] = CAST_OP(0x41B8); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x41B9 + i] = CAST_OP(0x41B9); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x41BA + i] = CAST_OP(0x41BA); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x41BB + i] = CAST_OP(0x41BB); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x41BC + i] = CAST_OP(0x41BC); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x419F + i] = CAST_OP(0x419F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x41A7 + i] = CAST_OP(0x41A7); +#ifdef OPCODES_M68020 + /* CHK.L - 68020+ */ + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x4100 + i + j] = CAST_OP(0x4100); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x4110 + i + j] = CAST_OP(0x4110); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x4118 + i + j] = CAST_OP(0x4118); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x4120 + i + j] = CAST_OP(0x4120); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x4128 + i + j] = CAST_OP(0x4128); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x4130 + i + j] = CAST_OP(0x4130); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x4138 + i] = CAST_OP(0x4138); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x4139 + i] = CAST_OP(0x4139); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x413A + i] = CAST_OP(0x413A); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x413B + i] = CAST_OP(0x413B); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x413C + i] = CAST_OP(0x413C); + /* End of CHK.L */ + /* CMP2/CHK2 - 68020 + */ + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x00D0 + i] = CAST_OP(0x00D0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x00E8 + i] = CAST_OP(0x00E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x00F0 + i] = CAST_OP(0x00F0); + JumpTable[0x00F8] = CAST_OP(0x00F8); + JumpTable[0x00F9] = CAST_OP(0x00F9); + JumpTable[0x00FA] = CAST_OP(0x00FA); + JumpTable[0x00FB] = CAST_OP(0x00FB); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x02D0 + i] = CAST_OP(0x02D0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x02E8 + i] = CAST_OP(0x02E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x02F0 + i] = CAST_OP(0x02F0); + JumpTable[0x02F8] = CAST_OP(0x02F8); + JumpTable[0x02F9] = CAST_OP(0x02F9); + JumpTable[0x02FA] = CAST_OP(0x02FA); + JumpTable[0x02FB] = CAST_OP(0x02FB); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x04D0 + i] = CAST_OP(0x04D0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x04E8 + i] = CAST_OP(0x04E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x04F0 + i] = CAST_OP(0x04F0); + JumpTable[0x04F8] = CAST_OP(0x04F8); + JumpTable[0x04F9] = CAST_OP(0x04F9); + JumpTable[0x04FA] = CAST_OP(0x04FA); + JumpTable[0x04FB] = CAST_OP(0x04FB); + /* End of CMP2/CHK2 */ +#endif + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x41D0 + i + j] = CAST_OP(0x41D0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x41E8 + i + j] = CAST_OP(0x41E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x41F0 + i + j] = CAST_OP(0x41F0); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x41F8 + i] = CAST_OP(0x41F8); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x41F9 + i] = CAST_OP(0x41F9); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x41FA + i] = CAST_OP(0x41FA); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x41FB + i] = CAST_OP(0x41FB); +#ifdef OPCODES_M68020 + for(i = 0x0000; i <= 0x0F00; i+= 0x0100) + JumpTable[0x50FA + i] = CAST_OP(0x50FA); // TRAPcc - 68020+ + for(i = 0x0000; i <= 0x0F00; i+= 0x0100) + JumpTable[0x50FB + i] = CAST_OP(0x50FB); // TRAPcc - 68020+ + for(i = 0x0000; i <= 0x0F00; i+= 0x0100) + JumpTable[0x50FC + i] = CAST_OP(0x50FC); // TRAPcc - 68020+ +#endif + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x50C0 + i] = CAST_OP(0x50C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x51C0 + i] = CAST_OP(0x51C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x52C0 + i] = CAST_OP(0x52C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x53C0 + i] = CAST_OP(0x53C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x54C0 + i] = CAST_OP(0x54C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x55C0 + i] = CAST_OP(0x55C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x56C0 + i] = CAST_OP(0x56C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x57C0 + i] = CAST_OP(0x57C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x58C0 + i] = CAST_OP(0x58C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x59C0 + i] = CAST_OP(0x59C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x5AC0 + i] = CAST_OP(0x5AC0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x5BC0 + i] = CAST_OP(0x5BC0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x5CC0 + i] = CAST_OP(0x5CC0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x5DC0 + i] = CAST_OP(0x5DC0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x5EC0 + i] = CAST_OP(0x5EC0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x5FC0 + i] = CAST_OP(0x5FC0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x50D0 + i] = CAST_OP(0x50D0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x51D0 + i] = CAST_OP(0x51D0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x52D0 + i] = CAST_OP(0x52D0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x53D0 + i] = CAST_OP(0x53D0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x54D0 + i] = CAST_OP(0x54D0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x55D0 + i] = CAST_OP(0x55D0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x56D0 + i] = CAST_OP(0x56D0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x57D0 + i] = CAST_OP(0x57D0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x58D0 + i] = CAST_OP(0x58D0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x59D0 + i] = CAST_OP(0x59D0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x5AD0 + i] = CAST_OP(0x5AD0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x5BD0 + i] = CAST_OP(0x5BD0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x5CD0 + i] = CAST_OP(0x5CD0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x5DD0 + i] = CAST_OP(0x5DD0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x5ED0 + i] = CAST_OP(0x5ED0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x5FD0 + i] = CAST_OP(0x5FD0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x50D8 + i] = CAST_OP(0x50D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x51D8 + i] = CAST_OP(0x51D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x52D8 + i] = CAST_OP(0x52D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x53D8 + i] = CAST_OP(0x53D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x54D8 + i] = CAST_OP(0x54D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x55D8 + i] = CAST_OP(0x55D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x56D8 + i] = CAST_OP(0x56D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x57D8 + i] = CAST_OP(0x57D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x58D8 + i] = CAST_OP(0x58D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x59D8 + i] = CAST_OP(0x59D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x5AD8 + i] = CAST_OP(0x5AD8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x5BD8 + i] = CAST_OP(0x5BD8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x5CD8 + i] = CAST_OP(0x5CD8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x5DD8 + i] = CAST_OP(0x5DD8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x5ED8 + i] = CAST_OP(0x5ED8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x5FD8 + i] = CAST_OP(0x5FD8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x50E0 + i] = CAST_OP(0x50E0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x51E0 + i] = CAST_OP(0x51E0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x52E0 + i] = CAST_OP(0x52E0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x53E0 + i] = CAST_OP(0x53E0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x54E0 + i] = CAST_OP(0x54E0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x55E0 + i] = CAST_OP(0x55E0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x56E0 + i] = CAST_OP(0x56E0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x57E0 + i] = CAST_OP(0x57E0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x58E0 + i] = CAST_OP(0x58E0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x59E0 + i] = CAST_OP(0x59E0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x5AE0 + i] = CAST_OP(0x5AE0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x5BE0 + i] = CAST_OP(0x5BE0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x5CE0 + i] = CAST_OP(0x5CE0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x5DE0 + i] = CAST_OP(0x5DE0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x5EE0 + i] = CAST_OP(0x5EE0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x5FE0 + i] = CAST_OP(0x5FE0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x50E8 + i] = CAST_OP(0x50E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x51E8 + i] = CAST_OP(0x51E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x52E8 + i] = CAST_OP(0x52E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x53E8 + i] = CAST_OP(0x53E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x54E8 + i] = CAST_OP(0x54E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x55E8 + i] = CAST_OP(0x55E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x56E8 + i] = CAST_OP(0x56E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x57E8 + i] = CAST_OP(0x57E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x58E8 + i] = CAST_OP(0x58E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x59E8 + i] = CAST_OP(0x59E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x5AE8 + i] = CAST_OP(0x5AE8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x5BE8 + i] = CAST_OP(0x5BE8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x5CE8 + i] = CAST_OP(0x5CE8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x5DE8 + i] = CAST_OP(0x5DE8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x5EE8 + i] = CAST_OP(0x5EE8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x5FE8 + i] = CAST_OP(0x5FE8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x50F0 + i] = CAST_OP(0x50F0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x51F0 + i] = CAST_OP(0x51F0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x52F0 + i] = CAST_OP(0x52F0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x53F0 + i] = CAST_OP(0x53F0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x54F0 + i] = CAST_OP(0x54F0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x55F0 + i] = CAST_OP(0x55F0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x56F0 + i] = CAST_OP(0x56F0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x57F0 + i] = CAST_OP(0x57F0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x58F0 + i] = CAST_OP(0x58F0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x59F0 + i] = CAST_OP(0x59F0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x5AF0 + i] = CAST_OP(0x5AF0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x5BF0 + i] = CAST_OP(0x5BF0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x5CF0 + i] = CAST_OP(0x5CF0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x5DF0 + i] = CAST_OP(0x5DF0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x5EF0 + i] = CAST_OP(0x5EF0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x5FF0 + i] = CAST_OP(0x5FF0); + JumpTable[0x50F8] = CAST_OP(0x50F8); + JumpTable[0x51F8] = CAST_OP(0x51F8); + JumpTable[0x52F8] = CAST_OP(0x52F8); + JumpTable[0x53F8] = CAST_OP(0x53F8); + JumpTable[0x54F8] = CAST_OP(0x54F8); + JumpTable[0x55F8] = CAST_OP(0x55F8); + JumpTable[0x56F8] = CAST_OP(0x56F8); + JumpTable[0x57F8] = CAST_OP(0x57F8); + JumpTable[0x58F8] = CAST_OP(0x58F8); + JumpTable[0x59F8] = CAST_OP(0x59F8); + JumpTable[0x5AF8] = CAST_OP(0x5AF8); + JumpTable[0x5BF8] = CAST_OP(0x5BF8); + JumpTable[0x5CF8] = CAST_OP(0x5CF8); + JumpTable[0x5DF8] = CAST_OP(0x5DF8); + JumpTable[0x5EF8] = CAST_OP(0x5EF8); + JumpTable[0x5FF8] = CAST_OP(0x5FF8); + JumpTable[0x50F9] = CAST_OP(0x50F9); + JumpTable[0x51F9] = CAST_OP(0x51F9); + JumpTable[0x52F9] = CAST_OP(0x52F9); + JumpTable[0x53F9] = CAST_OP(0x53F9); + JumpTable[0x54F9] = CAST_OP(0x54F9); + JumpTable[0x55F9] = CAST_OP(0x55F9); + JumpTable[0x56F9] = CAST_OP(0x56F9); + JumpTable[0x57F9] = CAST_OP(0x57F9); + JumpTable[0x58F9] = CAST_OP(0x58F9); + JumpTable[0x59F9] = CAST_OP(0x59F9); + JumpTable[0x5AF9] = CAST_OP(0x5AF9); + JumpTable[0x5BF9] = CAST_OP(0x5BF9); + JumpTable[0x5CF9] = CAST_OP(0x5CF9); + JumpTable[0x5DF9] = CAST_OP(0x5DF9); + JumpTable[0x5EF9] = CAST_OP(0x5EF9); + JumpTable[0x5FF9] = CAST_OP(0x5FF9); + JumpTable[0x50DF] = CAST_OP(0x50DF); + JumpTable[0x51DF] = CAST_OP(0x51DF); + JumpTable[0x52DF] = CAST_OP(0x52DF); + JumpTable[0x53DF] = CAST_OP(0x53DF); + JumpTable[0x54DF] = CAST_OP(0x54DF); + JumpTable[0x55DF] = CAST_OP(0x55DF); + JumpTable[0x56DF] = CAST_OP(0x56DF); + JumpTable[0x57DF] = CAST_OP(0x57DF); + JumpTable[0x58DF] = CAST_OP(0x58DF); + JumpTable[0x59DF] = CAST_OP(0x59DF); + JumpTable[0x5ADF] = CAST_OP(0x5ADF); + JumpTable[0x5BDF] = CAST_OP(0x5BDF); + JumpTable[0x5CDF] = CAST_OP(0x5CDF); + JumpTable[0x5DDF] = CAST_OP(0x5DDF); + JumpTable[0x5EDF] = CAST_OP(0x5EDF); + JumpTable[0x5FDF] = CAST_OP(0x5FDF); + JumpTable[0x50E7] = CAST_OP(0x50E7); + JumpTable[0x51E7] = CAST_OP(0x51E7); + JumpTable[0x52E7] = CAST_OP(0x52E7); + JumpTable[0x53E7] = CAST_OP(0x53E7); + JumpTable[0x54E7] = CAST_OP(0x54E7); + JumpTable[0x55E7] = CAST_OP(0x55E7); + JumpTable[0x56E7] = CAST_OP(0x56E7); + JumpTable[0x57E7] = CAST_OP(0x57E7); + JumpTable[0x58E7] = CAST_OP(0x58E7); + JumpTable[0x59E7] = CAST_OP(0x59E7); + JumpTable[0x5AE7] = CAST_OP(0x5AE7); + JumpTable[0x5BE7] = CAST_OP(0x5BE7); + JumpTable[0x5CE7] = CAST_OP(0x5CE7); + JumpTable[0x5DE7] = CAST_OP(0x5DE7); + JumpTable[0x5EE7] = CAST_OP(0x5EE7); + JumpTable[0x5FE7] = CAST_OP(0x5FE7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x50C8 + i] = CAST_OP(0x50C8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x51C8 + i] = CAST_OP(0x51C8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x52C8 + i] = CAST_OP(0x52C8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x53C8 + i] = CAST_OP(0x53C8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x54C8 + i] = CAST_OP(0x54C8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x55C8 + i] = CAST_OP(0x55C8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x56C8 + i] = CAST_OP(0x56C8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x57C8 + i] = CAST_OP(0x57C8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x58C8 + i] = CAST_OP(0x58C8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x59C8 + i] = CAST_OP(0x59C8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x5AC8 + i] = CAST_OP(0x5AC8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x5BC8 + i] = CAST_OP(0x5BC8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x5CC8 + i] = CAST_OP(0x5CC8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x5DC8 + i] = CAST_OP(0x5DC8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x5EC8 + i] = CAST_OP(0x5EC8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0x5FC8 + i] = CAST_OP(0x5FC8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5000 + i + j] = CAST_OP(0x5000); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5010 + i + j] = CAST_OP(0x5010); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5018 + i + j] = CAST_OP(0x5018); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5020 + i + j] = CAST_OP(0x5020); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5028 + i + j] = CAST_OP(0x5028); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5030 + i + j] = CAST_OP(0x5030); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x5038 + i] = CAST_OP(0x5038); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x5039 + i] = CAST_OP(0x5039); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x501F + i] = CAST_OP(0x501F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x5027 + i] = CAST_OP(0x5027); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5040 + i + j] = CAST_OP(0x5040); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5048 + i + j] = CAST_OP(0x5048); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5050 + i + j] = CAST_OP(0x5050); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5058 + i + j] = CAST_OP(0x5058); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5060 + i + j] = CAST_OP(0x5060); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5068 + i + j] = CAST_OP(0x5068); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5070 + i + j] = CAST_OP(0x5070); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x5078 + i] = CAST_OP(0x5078); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x5079 + i] = CAST_OP(0x5079); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x505F + i] = CAST_OP(0x505F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x5067 + i] = CAST_OP(0x5067); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5080 + i + j] = CAST_OP(0x5080); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5088 + i + j] = CAST_OP(0x5088); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5090 + i + j] = CAST_OP(0x5090); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5098 + i + j] = CAST_OP(0x5098); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x50A0 + i + j] = CAST_OP(0x50A0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x50A8 + i + j] = CAST_OP(0x50A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x50B0 + i + j] = CAST_OP(0x50B0); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x50B8 + i] = CAST_OP(0x50B8); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x50B9 + i] = CAST_OP(0x50B9); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x509F + i] = CAST_OP(0x509F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x50A7 + i] = CAST_OP(0x50A7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5100 + i + j] = CAST_OP(0x5100); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5110 + i + j] = CAST_OP(0x5110); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5118 + i + j] = CAST_OP(0x5118); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5120 + i + j] = CAST_OP(0x5120); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5128 + i + j] = CAST_OP(0x5128); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5130 + i + j] = CAST_OP(0x5130); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x5138 + i] = CAST_OP(0x5138); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x5139 + i] = CAST_OP(0x5139); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x511F + i] = CAST_OP(0x511F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x5127 + i] = CAST_OP(0x5127); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5140 + i + j] = CAST_OP(0x5140); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5148 + i + j] = CAST_OP(0x5148); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5150 + i + j] = CAST_OP(0x5150); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5158 + i + j] = CAST_OP(0x5158); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5160 + i + j] = CAST_OP(0x5160); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5168 + i + j] = CAST_OP(0x5168); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5170 + i + j] = CAST_OP(0x5170); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x5178 + i] = CAST_OP(0x5178); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x5179 + i] = CAST_OP(0x5179); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x515F + i] = CAST_OP(0x515F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x5167 + i] = CAST_OP(0x5167); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5180 + i + j] = CAST_OP(0x5180); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5188 + i + j] = CAST_OP(0x5188); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5190 + i + j] = CAST_OP(0x5190); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x5198 + i + j] = CAST_OP(0x5198); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x51A0 + i + j] = CAST_OP(0x51A0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x51A8 + i + j] = CAST_OP(0x51A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x51B0 + i + j] = CAST_OP(0x51B0); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x51B8 + i] = CAST_OP(0x51B8); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x51B9 + i] = CAST_OP(0x51B9); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x519F + i] = CAST_OP(0x519F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x51A7 + i] = CAST_OP(0x51A7); + for(i = 0x0001; i <= 0x00FF; i += 0x0001) + JumpTable[0x6200 + i] = CAST_OP(0x6201); + for(i = 0x0001; i <= 0x00FF; i += 0x0001) + JumpTable[0x6300 + i] = CAST_OP(0x6301); + for(i = 0x0001; i <= 0x00FF; i += 0x0001) + JumpTable[0x6400 + i] = CAST_OP(0x6401); + for(i = 0x0001; i <= 0x00FF; i += 0x0001) + JumpTable[0x6500 + i] = CAST_OP(0x6501); + for(i = 0x0001; i <= 0x00FF; i += 0x0001) + JumpTable[0x6600 + i] = CAST_OP(0x6601); + for(i = 0x0001; i <= 0x00FF; i += 0x0001) + JumpTable[0x6700 + i] = CAST_OP(0x6701); + for(i = 0x0001; i <= 0x00FF; i += 0x0001) + JumpTable[0x6800 + i] = CAST_OP(0x6801); + for(i = 0x0001; i <= 0x00FF; i += 0x0001) + JumpTable[0x6900 + i] = CAST_OP(0x6901); + for(i = 0x0001; i <= 0x00FF; i += 0x0001) + JumpTable[0x6A00 + i] = CAST_OP(0x6A01); + for(i = 0x0001; i <= 0x00FF; i += 0x0001) + JumpTable[0x6B00 + i] = CAST_OP(0x6B01); + for(i = 0x0001; i <= 0x00FF; i += 0x0001) + JumpTable[0x6C00 + i] = CAST_OP(0x6C01); + for(i = 0x0001; i <= 0x00FF; i += 0x0001) + JumpTable[0x6D00 + i] = CAST_OP(0x6D01); + for(i = 0x0001; i <= 0x00FF; i += 0x0001) + JumpTable[0x6E00 + i] = CAST_OP(0x6E01); + for(i = 0x0001; i <= 0x00FF; i += 0x0001) + JumpTable[0x6F00 + i] = CAST_OP(0x6F01); + JumpTable[0x6200] = CAST_OP(0x6200); + JumpTable[0x6300] = CAST_OP(0x6300); + JumpTable[0x6400] = CAST_OP(0x6400); + JumpTable[0x6500] = CAST_OP(0x6500); + JumpTable[0x6600] = CAST_OP(0x6600); + JumpTable[0x6700] = CAST_OP(0x6700); + JumpTable[0x6800] = CAST_OP(0x6800); + JumpTable[0x6900] = CAST_OP(0x6900); + JumpTable[0x6A00] = CAST_OP(0x6A00); + JumpTable[0x6B00] = CAST_OP(0x6B00); + JumpTable[0x6C00] = CAST_OP(0x6C00); + JumpTable[0x6D00] = CAST_OP(0x6D00); + JumpTable[0x6E00] = CAST_OP(0x6E00); + JumpTable[0x6F00] = CAST_OP(0x6F00); +#ifdef OPCODES_M68020 + /* BCC32 - 68020+ */ + JumpTable[0x62FF] = CAST_OP(0x62FF); + JumpTable[0x63FF] = CAST_OP(0x63FF); + JumpTable[0x64FF] = CAST_OP(0x64FF); + JumpTable[0x65FF] = CAST_OP(0x65FF); + JumpTable[0x66FF] = CAST_OP(0x66FF); + JumpTable[0x67FF] = CAST_OP(0x67FF); + JumpTable[0x68FF] = CAST_OP(0x68FF); + JumpTable[0x69FF] = CAST_OP(0x69FF); + JumpTable[0x6AFF] = CAST_OP(0x6AFF); + JumpTable[0x6BFF] = CAST_OP(0x6BFF); + JumpTable[0x6CFF] = CAST_OP(0x6CFF); + JumpTable[0x6DFF] = CAST_OP(0x6DFF); + JumpTable[0x6EFF] = CAST_OP(0x6EFF); + JumpTable[0x6FFF] = CAST_OP(0x6FFF); + /* End of BCC32 */ +#endif + for(i = 0x0001; i <= 0x00FF; i += 0x0001) + JumpTable[0x6000 + i] = CAST_OP(0x6001); + JumpTable[0x6000] = CAST_OP(0x6000); +#ifdef OPCODES_M68020 + JumpTable[0x60FF] = CAST_OP(0x60FF); // BRA32 - 68020+ +#endif + for(i = 0x0001; i <= 0x00FF; i += 0x0001) + JumpTable[0x6100 + i] = CAST_OP(0x6101); + JumpTable[0x6100] = CAST_OP(0x6100); +#ifdef OPCODES_M68020 + JumpTable[0x61FF] = CAST_OP(0x61FF); // BSR32 - 68020+ +#endif + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + for(j = 0x0000; j <= 0x00FF; j += 0x0001) + JumpTable[0x7000 + i + j] = CAST_OP(0x7000); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x8000 + i + j] = CAST_OP(0x8000); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x8010 + i + j] = CAST_OP(0x8010); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x8018 + i + j] = CAST_OP(0x8018); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x8020 + i + j] = CAST_OP(0x8020); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x8028 + i + j] = CAST_OP(0x8028); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x8030 + i + j] = CAST_OP(0x8030); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x8038 + i] = CAST_OP(0x8038); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x8039 + i] = CAST_OP(0x8039); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x803A + i] = CAST_OP(0x803A); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x803B + i] = CAST_OP(0x803B); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x803C + i] = CAST_OP(0x803C); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x801F + i] = CAST_OP(0x801F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x8027 + i] = CAST_OP(0x8027); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x8040 + i + j] = CAST_OP(0x8040); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x8050 + i + j] = CAST_OP(0x8050); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x8058 + i + j] = CAST_OP(0x8058); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x8060 + i + j] = CAST_OP(0x8060); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x8068 + i + j] = CAST_OP(0x8068); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x8070 + i + j] = CAST_OP(0x8070); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x8078 + i] = CAST_OP(0x8078); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x8079 + i] = CAST_OP(0x8079); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x807A + i] = CAST_OP(0x807A); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x807B + i] = CAST_OP(0x807B); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x807C + i] = CAST_OP(0x807C); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x805F + i] = CAST_OP(0x805F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x8067 + i] = CAST_OP(0x8067); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x8080 + i + j] = CAST_OP(0x8080); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x8090 + i + j] = CAST_OP(0x8090); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x8098 + i + j] = CAST_OP(0x8098); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x80A0 + i + j] = CAST_OP(0x80A0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x80A8 + i + j] = CAST_OP(0x80A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x80B0 + i + j] = CAST_OP(0x80B0); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x80B8 + i] = CAST_OP(0x80B8); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x80B9 + i] = CAST_OP(0x80B9); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x80BA + i] = CAST_OP(0x80BA); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x80BB + i] = CAST_OP(0x80BB); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x80BC + i] = CAST_OP(0x80BC); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x809F + i] = CAST_OP(0x809F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x80A7 + i] = CAST_OP(0x80A7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x8110 + i + j] = CAST_OP(0x8110); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x8118 + i + j] = CAST_OP(0x8118); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x8120 + i + j] = CAST_OP(0x8120); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x8128 + i + j] = CAST_OP(0x8128); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x8130 + i + j] = CAST_OP(0x8130); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x8138 + i] = CAST_OP(0x8138); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x8139 + i] = CAST_OP(0x8139); +#ifdef OPCODES_M68020 + /* PACK - 68020+ */ + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x8140 + i + j] = CAST_OP(0x8140); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x8148 + i + j] = CAST_OP(0x8148); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x8F48 + i] = CAST_OP(0x8F48); + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x814F + j] = CAST_OP(0x814F); + JumpTable[0x8F4F] = CAST_OP(0x8F4F); + /* End of PACK */ + /* UNPK - 68020+ */ + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x8180 + i + j] = CAST_OP(0x8180); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x8188 + i + j] = CAST_OP(0x8188); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x8F88 + i] = CAST_OP(0x8F88); + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x818F + j] = CAST_OP(0x818F); + JumpTable[0x8F8F] = CAST_OP(0x8F8F); + /* End of UNPK */ +#endif + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x811F + i] = CAST_OP(0x811F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x8127 + i] = CAST_OP(0x8127); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x8150 + i + j] = CAST_OP(0x8150); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x8158 + i + j] = CAST_OP(0x8158); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x8160 + i + j] = CAST_OP(0x8160); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x8168 + i + j] = CAST_OP(0x8168); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x8170 + i + j] = CAST_OP(0x8170); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x8178 + i] = CAST_OP(0x8178); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x8179 + i] = CAST_OP(0x8179); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x815F + i] = CAST_OP(0x815F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x8167 + i] = CAST_OP(0x8167); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x8190 + i + j] = CAST_OP(0x8190); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x8198 + i + j] = CAST_OP(0x8198); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x81A0 + i + j] = CAST_OP(0x81A0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x81A8 + i + j] = CAST_OP(0x81A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x81B0 + i + j] = CAST_OP(0x81B0); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x81B8 + i] = CAST_OP(0x81B8); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x81B9 + i] = CAST_OP(0x81B9); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x819F + i] = CAST_OP(0x819F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x81A7 + i] = CAST_OP(0x81A7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x8100 + i + j] = CAST_OP(0x8100); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x8108 + i + j] = CAST_OP(0x8108); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x810F + i] = CAST_OP(0x810F); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x8F08 + i] = CAST_OP(0x8F08); + JumpTable[0x8F0F] = CAST_OP(0x8F0F); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x80C0 + i + j] = CAST_OP(0x80C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x80D0 + i + j] = CAST_OP(0x80D0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x80D8 + i + j] = CAST_OP(0x80D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x80E0 + i + j] = CAST_OP(0x80E0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x80E8 + i + j] = CAST_OP(0x80E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x80F0 + i + j] = CAST_OP(0x80F0); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x80F8 + i] = CAST_OP(0x80F8); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x80F9 + i] = CAST_OP(0x80F9); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x80FA + i] = CAST_OP(0x80FA); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x80FB + i] = CAST_OP(0x80FB); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x80FC + i] = CAST_OP(0x80FC); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x80DF + i] = CAST_OP(0x80DF); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x80E7 + i] = CAST_OP(0x80E7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x81C0 + i + j] = CAST_OP(0x81C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x81D0 + i + j] = CAST_OP(0x81D0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x81D8 + i + j] = CAST_OP(0x81D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x81E0 + i + j] = CAST_OP(0x81E0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x81E8 + i + j] = CAST_OP(0x81E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x81F0 + i + j] = CAST_OP(0x81F0); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x81F8 + i] = CAST_OP(0x81F8); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x81F9 + i] = CAST_OP(0x81F9); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x81FA + i] = CAST_OP(0x81FA); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x81FB + i] = CAST_OP(0x81FB); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x81FC + i] = CAST_OP(0x81FC); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x81DF + i] = CAST_OP(0x81DF); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x81E7 + i] = CAST_OP(0x81E7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9000 + i + j] = CAST_OP(0x9000); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9008 + i + j] = CAST_OP(0x9008); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9010 + i + j] = CAST_OP(0x9010); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9018 + i + j] = CAST_OP(0x9018); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9020 + i + j] = CAST_OP(0x9020); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9028 + i + j] = CAST_OP(0x9028); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9030 + i + j] = CAST_OP(0x9030); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x9038 + i] = CAST_OP(0x9038); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x9039 + i] = CAST_OP(0x9039); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x903A + i] = CAST_OP(0x903A); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x903B + i] = CAST_OP(0x903B); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x903C + i] = CAST_OP(0x903C); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x901F + i] = CAST_OP(0x901F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x9027 + i] = CAST_OP(0x9027); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9040 + i + j] = CAST_OP(0x9040); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9048 + i + j] = CAST_OP(0x9048); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9050 + i + j] = CAST_OP(0x9050); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9058 + i + j] = CAST_OP(0x9058); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9060 + i + j] = CAST_OP(0x9060); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9068 + i + j] = CAST_OP(0x9068); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9070 + i + j] = CAST_OP(0x9070); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x9078 + i] = CAST_OP(0x9078); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x9079 + i] = CAST_OP(0x9079); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x907A + i] = CAST_OP(0x907A); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x907B + i] = CAST_OP(0x907B); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x907C + i] = CAST_OP(0x907C); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x905F + i] = CAST_OP(0x905F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x9067 + i] = CAST_OP(0x9067); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9080 + i + j] = CAST_OP(0x9080); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9088 + i + j] = CAST_OP(0x9088); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9090 + i + j] = CAST_OP(0x9090); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9098 + i + j] = CAST_OP(0x9098); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x90A0 + i + j] = CAST_OP(0x90A0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x90A8 + i + j] = CAST_OP(0x90A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x90B0 + i + j] = CAST_OP(0x90B0); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x90B8 + i] = CAST_OP(0x90B8); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x90B9 + i] = CAST_OP(0x90B9); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x90BA + i] = CAST_OP(0x90BA); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x90BB + i] = CAST_OP(0x90BB); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x90BC + i] = CAST_OP(0x90BC); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x909F + i] = CAST_OP(0x909F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x90A7 + i] = CAST_OP(0x90A7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9110 + i + j] = CAST_OP(0x9110); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9118 + i + j] = CAST_OP(0x9118); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9120 + i + j] = CAST_OP(0x9120); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9128 + i + j] = CAST_OP(0x9128); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9130 + i + j] = CAST_OP(0x9130); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x9138 + i] = CAST_OP(0x9138); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x9139 + i] = CAST_OP(0x9139); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x911F + i] = CAST_OP(0x911F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x9127 + i] = CAST_OP(0x9127); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9150 + i + j] = CAST_OP(0x9150); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9158 + i + j] = CAST_OP(0x9158); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9160 + i + j] = CAST_OP(0x9160); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9168 + i + j] = CAST_OP(0x9168); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9170 + i + j] = CAST_OP(0x9170); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x9178 + i] = CAST_OP(0x9178); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x9179 + i] = CAST_OP(0x9179); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x915F + i] = CAST_OP(0x915F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x9167 + i] = CAST_OP(0x9167); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9190 + i + j] = CAST_OP(0x9190); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9198 + i + j] = CAST_OP(0x9198); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x91A0 + i + j] = CAST_OP(0x91A0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x91A8 + i + j] = CAST_OP(0x91A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x91B0 + i + j] = CAST_OP(0x91B0); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x91B8 + i] = CAST_OP(0x91B8); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x91B9 + i] = CAST_OP(0x91B9); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x919F + i] = CAST_OP(0x919F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x91A7 + i] = CAST_OP(0x91A7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9100 + i + j] = CAST_OP(0x9100); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9140 + i + j] = CAST_OP(0x9140); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x9180 + i + j] = CAST_OP(0x9180); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x9108 + i + j] = CAST_OP(0x9108); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x9148 + i + j] = CAST_OP(0x9148); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0x9188 + i + j] = CAST_OP(0x9188); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x910F + i] = CAST_OP(0x910F); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x914F + i] = CAST_OP(0x914F); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0x918F + i] = CAST_OP(0x918F); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x9F08 + i] = CAST_OP(0x9F08); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x9F48 + i] = CAST_OP(0x9F48); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0x9F88 + i] = CAST_OP(0x9F88); + JumpTable[0x9F0F] = CAST_OP(0x9F0F); + JumpTable[0x9F4F] = CAST_OP(0x9F4F); + JumpTable[0x9F8F] = CAST_OP(0x9F8F); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x90C0 + i + j] = CAST_OP(0x90C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x90C8 + i + j] = CAST_OP(0x90C8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x90D0 + i + j] = CAST_OP(0x90D0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x90D8 + i + j] = CAST_OP(0x90D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x90E0 + i + j] = CAST_OP(0x90E0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x90E8 + i + j] = CAST_OP(0x90E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x90F0 + i + j] = CAST_OP(0x90F0); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x90F8 + i] = CAST_OP(0x90F8); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x90F9 + i] = CAST_OP(0x90F9); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x90FA + i] = CAST_OP(0x90FA); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x90FB + i] = CAST_OP(0x90FB); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x90FC + i] = CAST_OP(0x90FC); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x90DF + i] = CAST_OP(0x90DF); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x90E7 + i] = CAST_OP(0x90E7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x91C0 + i + j] = CAST_OP(0x91C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x91C8 + i + j] = CAST_OP(0x91C8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x91D0 + i + j] = CAST_OP(0x91D0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x91D8 + i + j] = CAST_OP(0x91D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x91E0 + i + j] = CAST_OP(0x91E0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x91E8 + i + j] = CAST_OP(0x91E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0x91F0 + i + j] = CAST_OP(0x91F0); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x91F8 + i] = CAST_OP(0x91F8); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x91F9 + i] = CAST_OP(0x91F9); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x91FA + i] = CAST_OP(0x91FA); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x91FB + i] = CAST_OP(0x91FB); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x91FC + i] = CAST_OP(0x91FC); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x91DF + i] = CAST_OP(0x91DF); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0x91E7 + i] = CAST_OP(0x91E7); + for(i = 0x0000; i <= 0x0FFF; i += 0x0001) + JumpTable[0xA000 + i] = CAST_OP(0xA000); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB000 + i + j] = CAST_OP(0xB000); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB008 + i + j] = CAST_OP(0xB008); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB010 + i + j] = CAST_OP(0xB010); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB018 + i + j] = CAST_OP(0xB018); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB020 + i + j] = CAST_OP(0xB020); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB028 + i + j] = CAST_OP(0xB028); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB030 + i + j] = CAST_OP(0xB030); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB038 + i] = CAST_OP(0xB038); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB039 + i] = CAST_OP(0xB039); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB03A + i] = CAST_OP(0xB03A); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB03B + i] = CAST_OP(0xB03B); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB03C + i] = CAST_OP(0xB03C); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB01F + i] = CAST_OP(0xB01F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB027 + i] = CAST_OP(0xB027); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB040 + i + j] = CAST_OP(0xB040); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB048 + i + j] = CAST_OP(0xB048); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB050 + i + j] = CAST_OP(0xB050); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB058 + i + j] = CAST_OP(0xB058); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB060 + i + j] = CAST_OP(0xB060); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB068 + i + j] = CAST_OP(0xB068); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB070 + i + j] = CAST_OP(0xB070); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB078 + i] = CAST_OP(0xB078); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB079 + i] = CAST_OP(0xB079); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB07A + i] = CAST_OP(0xB07A); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB07B + i] = CAST_OP(0xB07B); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB07C + i] = CAST_OP(0xB07C); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB05F + i] = CAST_OP(0xB05F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB067 + i] = CAST_OP(0xB067); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB080 + i + j] = CAST_OP(0xB080); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB088 + i + j] = CAST_OP(0xB088); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB090 + i + j] = CAST_OP(0xB090); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB098 + i + j] = CAST_OP(0xB098); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB0A0 + i + j] = CAST_OP(0xB0A0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB0A8 + i + j] = CAST_OP(0xB0A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB0B0 + i + j] = CAST_OP(0xB0B0); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB0B8 + i] = CAST_OP(0xB0B8); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB0B9 + i] = CAST_OP(0xB0B9); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB0BA + i] = CAST_OP(0xB0BA); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB0BB + i] = CAST_OP(0xB0BB); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB0BC + i] = CAST_OP(0xB0BC); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB09F + i] = CAST_OP(0xB09F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB0A7 + i] = CAST_OP(0xB0A7); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0xB108 + i + j] = CAST_OP(0xB108); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0xB148 + i + j] = CAST_OP(0xB148); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0xB188 + i + j] = CAST_OP(0xB188); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0xB10F + i] = CAST_OP(0xB10F); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0xB14F + i] = CAST_OP(0xB14F); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0xB18F + i] = CAST_OP(0xB18F); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0xBF08 + i] = CAST_OP(0xBF08); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0xBF48 + i] = CAST_OP(0xBF48); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0xBF88 + i] = CAST_OP(0xBF88); + JumpTable[0xBF0F] = CAST_OP(0xBF0F); + JumpTable[0xBF4F] = CAST_OP(0xBF4F); + JumpTable[0xBF8F] = CAST_OP(0xBF8F); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB100 + i + j] = CAST_OP(0xB100); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB110 + i + j] = CAST_OP(0xB110); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB118 + i + j] = CAST_OP(0xB118); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB120 + i + j] = CAST_OP(0xB120); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB128 + i + j] = CAST_OP(0xB128); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB130 + i + j] = CAST_OP(0xB130); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB138 + i] = CAST_OP(0xB138); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB139 + i] = CAST_OP(0xB139); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB11F + i] = CAST_OP(0xB11F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB127 + i] = CAST_OP(0xB127); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB140 + i + j] = CAST_OP(0xB140); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB150 + i + j] = CAST_OP(0xB150); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB158 + i + j] = CAST_OP(0xB158); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB160 + i + j] = CAST_OP(0xB160); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB168 + i + j] = CAST_OP(0xB168); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB170 + i + j] = CAST_OP(0xB170); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB178 + i] = CAST_OP(0xB178); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB179 + i] = CAST_OP(0xB179); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB15F + i] = CAST_OP(0xB15F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB167 + i] = CAST_OP(0xB167); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB180 + i + j] = CAST_OP(0xB180); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB190 + i + j] = CAST_OP(0xB190); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB198 + i + j] = CAST_OP(0xB198); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB1A0 + i + j] = CAST_OP(0xB1A0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB1A8 + i + j] = CAST_OP(0xB1A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB1B0 + i + j] = CAST_OP(0xB1B0); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB1B8 + i] = CAST_OP(0xB1B8); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB1B9 + i] = CAST_OP(0xB1B9); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB19F + i] = CAST_OP(0xB19F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB1A7 + i] = CAST_OP(0xB1A7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB0C0 + i + j] = CAST_OP(0xB0C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB0C8 + i + j] = CAST_OP(0xB0C8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB0D0 + i + j] = CAST_OP(0xB0D0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB0D8 + i + j] = CAST_OP(0xB0D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB0E0 + i + j] = CAST_OP(0xB0E0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB0E8 + i + j] = CAST_OP(0xB0E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB0F0 + i + j] = CAST_OP(0xB0F0); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB0F8 + i] = CAST_OP(0xB0F8); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB0F9 + i] = CAST_OP(0xB0F9); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB0FA + i] = CAST_OP(0xB0FA); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB0FB + i] = CAST_OP(0xB0FB); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB0FC + i] = CAST_OP(0xB0FC); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB0DF + i] = CAST_OP(0xB0DF); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB0E7 + i] = CAST_OP(0xB0E7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB1C0 + i + j] = CAST_OP(0xB1C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB1C8 + i + j] = CAST_OP(0xB1C8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB1D0 + i + j] = CAST_OP(0xB1D0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB1D8 + i + j] = CAST_OP(0xB1D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB1E0 + i + j] = CAST_OP(0xB1E0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB1E8 + i + j] = CAST_OP(0xB1E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xB1F0 + i + j] = CAST_OP(0xB1F0); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB1F8 + i] = CAST_OP(0xB1F8); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB1F9 + i] = CAST_OP(0xB1F9); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB1FA + i] = CAST_OP(0xB1FA); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB1FB + i] = CAST_OP(0xB1FB); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB1FC + i] = CAST_OP(0xB1FC); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB1DF + i] = CAST_OP(0xB1DF); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xB1E7 + i] = CAST_OP(0xB1E7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC000 + i + j] = CAST_OP(0xC000); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC010 + i + j] = CAST_OP(0xC010); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC018 + i + j] = CAST_OP(0xC018); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC020 + i + j] = CAST_OP(0xC020); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC028 + i + j] = CAST_OP(0xC028); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC030 + i + j] = CAST_OP(0xC030); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC038 + i] = CAST_OP(0xC038); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC039 + i] = CAST_OP(0xC039); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC03A + i] = CAST_OP(0xC03A); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC03B + i] = CAST_OP(0xC03B); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC03C + i] = CAST_OP(0xC03C); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC01F + i] = CAST_OP(0xC01F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC027 + i] = CAST_OP(0xC027); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC040 + i + j] = CAST_OP(0xC040); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC050 + i + j] = CAST_OP(0xC050); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC058 + i + j] = CAST_OP(0xC058); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC060 + i + j] = CAST_OP(0xC060); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC068 + i + j] = CAST_OP(0xC068); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC070 + i + j] = CAST_OP(0xC070); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC078 + i] = CAST_OP(0xC078); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC079 + i] = CAST_OP(0xC079); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC07A + i] = CAST_OP(0xC07A); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC07B + i] = CAST_OP(0xC07B); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC07C + i] = CAST_OP(0xC07C); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC05F + i] = CAST_OP(0xC05F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC067 + i] = CAST_OP(0xC067); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC080 + i + j] = CAST_OP(0xC080); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC090 + i + j] = CAST_OP(0xC090); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC098 + i + j] = CAST_OP(0xC098); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC0A0 + i + j] = CAST_OP(0xC0A0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC0A8 + i + j] = CAST_OP(0xC0A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC0B0 + i + j] = CAST_OP(0xC0B0); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC0B8 + i] = CAST_OP(0xC0B8); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC0B9 + i] = CAST_OP(0xC0B9); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC0BA + i] = CAST_OP(0xC0BA); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC0BB + i] = CAST_OP(0xC0BB); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC0BC + i] = CAST_OP(0xC0BC); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC09F + i] = CAST_OP(0xC09F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC0A7 + i] = CAST_OP(0xC0A7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC110 + i + j] = CAST_OP(0xC110); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC118 + i + j] = CAST_OP(0xC118); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC120 + i + j] = CAST_OP(0xC120); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC128 + i + j] = CAST_OP(0xC128); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC130 + i + j] = CAST_OP(0xC130); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC138 + i] = CAST_OP(0xC138); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC139 + i] = CAST_OP(0xC139); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC11F + i] = CAST_OP(0xC11F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC127 + i] = CAST_OP(0xC127); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC150 + i + j] = CAST_OP(0xC150); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC158 + i + j] = CAST_OP(0xC158); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC160 + i + j] = CAST_OP(0xC160); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC168 + i + j] = CAST_OP(0xC168); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC170 + i + j] = CAST_OP(0xC170); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC178 + i] = CAST_OP(0xC178); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC179 + i] = CAST_OP(0xC179); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC15F + i] = CAST_OP(0xC15F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC167 + i] = CAST_OP(0xC167); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC190 + i + j] = CAST_OP(0xC190); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC198 + i + j] = CAST_OP(0xC198); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC1A0 + i + j] = CAST_OP(0xC1A0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC1A8 + i + j] = CAST_OP(0xC1A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC1B0 + i + j] = CAST_OP(0xC1B0); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC1B8 + i] = CAST_OP(0xC1B8); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC1B9 + i] = CAST_OP(0xC1B9); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC19F + i] = CAST_OP(0xC19F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC1A7 + i] = CAST_OP(0xC1A7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC100 + i + j] = CAST_OP(0xC100); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0xC108 + i + j] = CAST_OP(0xC108); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0xC10F + i] = CAST_OP(0xC10F); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0xCF08 + i] = CAST_OP(0xCF08); + JumpTable[0xCF0F] = CAST_OP(0xCF0F); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC0C0 + i + j] = CAST_OP(0xC0C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC0D0 + i + j] = CAST_OP(0xC0D0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC0D8 + i + j] = CAST_OP(0xC0D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC0E0 + i + j] = CAST_OP(0xC0E0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC0E8 + i + j] = CAST_OP(0xC0E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC0F0 + i + j] = CAST_OP(0xC0F0); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC0F8 + i] = CAST_OP(0xC0F8); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC0F9 + i] = CAST_OP(0xC0F9); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC0FA + i] = CAST_OP(0xC0FA); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC0FB + i] = CAST_OP(0xC0FB); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC0FC + i] = CAST_OP(0xC0FC); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC0DF + i] = CAST_OP(0xC0DF); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC0E7 + i] = CAST_OP(0xC0E7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC1C0 + i + j] = CAST_OP(0xC1C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC1D0 + i + j] = CAST_OP(0xC1D0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC1D8 + i + j] = CAST_OP(0xC1D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC1E0 + i + j] = CAST_OP(0xC1E0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC1E8 + i + j] = CAST_OP(0xC1E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC1F0 + i + j] = CAST_OP(0xC1F0); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC1F8 + i] = CAST_OP(0xC1F8); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC1F9 + i] = CAST_OP(0xC1F9); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC1FA + i] = CAST_OP(0xC1FA); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC1FB + i] = CAST_OP(0xC1FB); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC1FC + i] = CAST_OP(0xC1FC); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC1DF + i] = CAST_OP(0xC1DF); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xC1E7 + i] = CAST_OP(0xC1E7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC140 + i + j] = CAST_OP(0xC140); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC148 + i + j] = CAST_OP(0xC148); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xC188 + i + j] = CAST_OP(0xC188); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD000 + i + j] = CAST_OP(0xD000); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD008 + i + j] = CAST_OP(0xD008); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD010 + i + j] = CAST_OP(0xD010); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD018 + i + j] = CAST_OP(0xD018); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD020 + i + j] = CAST_OP(0xD020); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD028 + i + j] = CAST_OP(0xD028); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD030 + i + j] = CAST_OP(0xD030); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD038 + i] = CAST_OP(0xD038); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD039 + i] = CAST_OP(0xD039); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD03A + i] = CAST_OP(0xD03A); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD03B + i] = CAST_OP(0xD03B); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD03C + i] = CAST_OP(0xD03C); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD01F + i] = CAST_OP(0xD01F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD027 + i] = CAST_OP(0xD027); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD040 + i + j] = CAST_OP(0xD040); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD048 + i + j] = CAST_OP(0xD048); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD050 + i + j] = CAST_OP(0xD050); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD058 + i + j] = CAST_OP(0xD058); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD060 + i + j] = CAST_OP(0xD060); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD068 + i + j] = CAST_OP(0xD068); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD070 + i + j] = CAST_OP(0xD070); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD078 + i] = CAST_OP(0xD078); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD079 + i] = CAST_OP(0xD079); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD07A + i] = CAST_OP(0xD07A); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD07B + i] = CAST_OP(0xD07B); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD07C + i] = CAST_OP(0xD07C); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD05F + i] = CAST_OP(0xD05F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD067 + i] = CAST_OP(0xD067); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD080 + i + j] = CAST_OP(0xD080); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD088 + i + j] = CAST_OP(0xD088); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD090 + i + j] = CAST_OP(0xD090); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD098 + i + j] = CAST_OP(0xD098); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD0A0 + i + j] = CAST_OP(0xD0A0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD0A8 + i + j] = CAST_OP(0xD0A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD0B0 + i + j] = CAST_OP(0xD0B0); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD0B8 + i] = CAST_OP(0xD0B8); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD0B9 + i] = CAST_OP(0xD0B9); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD0BA + i] = CAST_OP(0xD0BA); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD0BB + i] = CAST_OP(0xD0BB); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD0BC + i] = CAST_OP(0xD0BC); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD09F + i] = CAST_OP(0xD09F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD0A7 + i] = CAST_OP(0xD0A7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD110 + i + j] = CAST_OP(0xD110); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD118 + i + j] = CAST_OP(0xD118); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD120 + i + j] = CAST_OP(0xD120); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD128 + i + j] = CAST_OP(0xD128); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD130 + i + j] = CAST_OP(0xD130); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD138 + i] = CAST_OP(0xD138); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD139 + i] = CAST_OP(0xD139); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD11F + i] = CAST_OP(0xD11F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD127 + i] = CAST_OP(0xD127); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD150 + i + j] = CAST_OP(0xD150); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD158 + i + j] = CAST_OP(0xD158); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD160 + i + j] = CAST_OP(0xD160); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD168 + i + j] = CAST_OP(0xD168); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD170 + i + j] = CAST_OP(0xD170); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD178 + i] = CAST_OP(0xD178); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD179 + i] = CAST_OP(0xD179); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD15F + i] = CAST_OP(0xD15F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD167 + i] = CAST_OP(0xD167); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD190 + i + j] = CAST_OP(0xD190); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD198 + i + j] = CAST_OP(0xD198); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD1A0 + i + j] = CAST_OP(0xD1A0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD1A8 + i + j] = CAST_OP(0xD1A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD1B0 + i + j] = CAST_OP(0xD1B0); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD1B8 + i] = CAST_OP(0xD1B8); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD1B9 + i] = CAST_OP(0xD1B9); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD19F + i] = CAST_OP(0xD19F); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD1A7 + i] = CAST_OP(0xD1A7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD100 + i + j] = CAST_OP(0xD100); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD140 + i + j] = CAST_OP(0xD140); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD180 + i + j] = CAST_OP(0xD180); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0xD108 + i + j] = CAST_OP(0xD108); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0xD148 + i + j] = CAST_OP(0xD148); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0C00; j += 0x0200) + JumpTable[0xD188 + i + j] = CAST_OP(0xD188); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0xD10F + i] = CAST_OP(0xD10F); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0xD14F + i] = CAST_OP(0xD14F); + for(i = 0x0000; i <= 0x0C00; i += 0x0200) + JumpTable[0xD18F + i] = CAST_OP(0xD18F); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0xDF08 + i] = CAST_OP(0xDF08); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0xDF48 + i] = CAST_OP(0xDF48); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0xDF88 + i] = CAST_OP(0xDF88); + JumpTable[0xDF0F] = CAST_OP(0xDF0F); + JumpTable[0xDF4F] = CAST_OP(0xDF4F); + JumpTable[0xDF8F] = CAST_OP(0xDF8F); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD0C0 + i + j] = CAST_OP(0xD0C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD0C8 + i + j] = CAST_OP(0xD0C8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD0D0 + i + j] = CAST_OP(0xD0D0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD0D8 + i + j] = CAST_OP(0xD0D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD0E0 + i + j] = CAST_OP(0xD0E0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD0E8 + i + j] = CAST_OP(0xD0E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD0F0 + i + j] = CAST_OP(0xD0F0); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD0F8 + i] = CAST_OP(0xD0F8); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD0F9 + i] = CAST_OP(0xD0F9); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD0FA + i] = CAST_OP(0xD0FA); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD0FB + i] = CAST_OP(0xD0FB); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD0FC + i] = CAST_OP(0xD0FC); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD0DF + i] = CAST_OP(0xD0DF); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD0E7 + i] = CAST_OP(0xD0E7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD1C0 + i + j] = CAST_OP(0xD1C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD1C8 + i + j] = CAST_OP(0xD1C8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD1D0 + i + j] = CAST_OP(0xD1D0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD1D8 + i + j] = CAST_OP(0xD1D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD1E0 + i + j] = CAST_OP(0xD1E0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD1E8 + i + j] = CAST_OP(0xD1E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xD1F0 + i + j] = CAST_OP(0xD1F0); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD1F8 + i] = CAST_OP(0xD1F8); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD1F9 + i] = CAST_OP(0xD1F9); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD1FA + i] = CAST_OP(0xD1FA); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD1FB + i] = CAST_OP(0xD1FB); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD1FC + i] = CAST_OP(0xD1FC); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD1DF + i] = CAST_OP(0xD1DF); + for(i = 0x0000; i <= 0x0E00; i += 0x0200) + JumpTable[0xD1E7 + i] = CAST_OP(0xD1E7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE000 + i + j] = CAST_OP(0xE000); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE040 + i + j] = CAST_OP(0xE040); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE080 + i + j] = CAST_OP(0xE080); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE008 + i + j] = CAST_OP(0xE008); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE048 + i + j] = CAST_OP(0xE048); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE088 + i + j] = CAST_OP(0xE088); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE010 + i + j] = CAST_OP(0xE010); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE050 + i + j] = CAST_OP(0xE050); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE090 + i + j] = CAST_OP(0xE090); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE018 + i + j] = CAST_OP(0xE018); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE058 + i + j] = CAST_OP(0xE058); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE098 + i + j] = CAST_OP(0xE098); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE100 + i + j] = CAST_OP(0xE100); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE140 + i + j] = CAST_OP(0xE140); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE180 + i + j] = CAST_OP(0xE180); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE108 + i + j] = CAST_OP(0xE108); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE148 + i + j] = CAST_OP(0xE148); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE188 + i + j] = CAST_OP(0xE188); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE110 + i + j] = CAST_OP(0xE110); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE150 + i + j] = CAST_OP(0xE150); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE190 + i + j] = CAST_OP(0xE190); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE118 + i + j] = CAST_OP(0xE118); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE158 + i + j] = CAST_OP(0xE158); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE198 + i + j] = CAST_OP(0xE198); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE020 + i + j] = CAST_OP(0xE020); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE060 + i + j] = CAST_OP(0xE060); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE0A0 + i + j] = CAST_OP(0xE0A0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE028 + i + j] = CAST_OP(0xE028); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE068 + i + j] = CAST_OP(0xE068); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE0A8 + i + j] = CAST_OP(0xE0A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE030 + i + j] = CAST_OP(0xE030); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE070 + i + j] = CAST_OP(0xE070); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE0B0 + i + j] = CAST_OP(0xE0B0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE038 + i + j] = CAST_OP(0xE038); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE078 + i + j] = CAST_OP(0xE078); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE0B8 + i + j] = CAST_OP(0xE0B8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE120 + i + j] = CAST_OP(0xE120); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE160 + i + j] = CAST_OP(0xE160); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE1A0 + i + j] = CAST_OP(0xE1A0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE128 + i + j] = CAST_OP(0xE128); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE168 + i + j] = CAST_OP(0xE168); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE1A8 + i + j] = CAST_OP(0xE1A8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE130 + i + j] = CAST_OP(0xE130); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE170 + i + j] = CAST_OP(0xE170); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE1B0 + i + j] = CAST_OP(0xE1B0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE138 + i + j] = CAST_OP(0xE138); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE178 + i + j] = CAST_OP(0xE178); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + for(j = 0x0000; j <= 0x0E00; j += 0x0200) + JumpTable[0xE1B8 + i + j] = CAST_OP(0xE1B8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE0D0 + i] = CAST_OP(0xE0D0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0xE0D8 + i] = CAST_OP(0xE0D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0xE0E0 + i] =CAST_OP(0xE0E0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE0E8 + i] = CAST_OP(0xE0E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE0F0 + i] = CAST_OP(0xE0F0); + JumpTable[0xE0F8] = CAST_OP(0xE0F8); + JumpTable[0xE0F9] = CAST_OP(0xE0F9); + JumpTable[0xE0DF] = CAST_OP(0xE0DF); + JumpTable[0xE0E7] = CAST_OP(0xE0E7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE2D0 + i] = CAST_OP(0xE2D0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0xE2D8 + i] = CAST_OP(0xE2D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0xE2E0 + i] = CAST_OP(0xE2E0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE2E8 + i] = CAST_OP(0xE2E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE2F0 + i] = CAST_OP(0xE2F0); + JumpTable[0xE2F8] = CAST_OP(0xE2F8); + JumpTable[0xE2F9] = CAST_OP(0xE2F9); + JumpTable[0xE2DF] = CAST_OP(0xE2DF); + JumpTable[0xE2E7] = CAST_OP(0xE2E7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE4D0 + i] = CAST_OP(0xE4D0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0xE4D8 + i] = CAST_OP(0xE4D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0xE4E0 + i] = CAST_OP(0xE4E0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE4E8 + i] = CAST_OP(0xE4E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE4F0 + i] = CAST_OP(0xE4F0); + JumpTable[0xE4F8] = CAST_OP(0xE4F8); + JumpTable[0xE4F9] = CAST_OP(0xE4F9); + JumpTable[0xE4DF] = CAST_OP(0xE4DF); + JumpTable[0xE4E7] = CAST_OP(0xE4E7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE6D0 + i] = CAST_OP(0xE6D0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0xE6D8 + i] = CAST_OP(0xE6D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0xE6E0 + i] = CAST_OP(0xE6E0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE6E8 + i] = CAST_OP(0xE6E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE6F0 + i] = CAST_OP(0xE6F0); + JumpTable[0xE6F8] = CAST_OP(0xE6F8); + JumpTable[0xE6F9] = CAST_OP(0xE6F9); + JumpTable[0xE6DF] = CAST_OP(0xE6DF); + JumpTable[0xE6E7] = CAST_OP(0xE6E7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE1D0 + i] = CAST_OP(0xE1D0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0xE1D8 + i] = CAST_OP(0xE1D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0xE1E0 + i] = CAST_OP(0xE1E0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE1E8 + i] = CAST_OP(0xE1E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE1F0 + i] = CAST_OP(0xE1F0); + JumpTable[0xE1F8] = CAST_OP(0xE1F8); + JumpTable[0xE1F9] = CAST_OP(0xE1F9); + JumpTable[0xE1DF] = CAST_OP(0xE1DF); + JumpTable[0xE1E7] = CAST_OP(0xE1E7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE3D0 + i] = CAST_OP(0xE3D0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0xE3D8 + i] = CAST_OP(0xE3D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0xE3E0 + i] = CAST_OP(0xE3E0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE3E8 + i] = CAST_OP(0xE3E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE3F0 + i] = CAST_OP(0xE3F0); + JumpTable[0xE3F8] = CAST_OP(0xE3F8); + JumpTable[0xE3F9] = CAST_OP(0xE3F9); + JumpTable[0xE3DF] = CAST_OP(0xE3DF); + JumpTable[0xE3E7] = CAST_OP(0xE3E7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE5D0 + i] = CAST_OP(0xE5D0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0xE5D8 + i] = CAST_OP(0xE5D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0xE5E0 + i] = CAST_OP(0xE5E0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE5E8 + i] = CAST_OP(0xE5E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE5F0 + i] = CAST_OP(0xE5F0); + JumpTable[0xE5F8] = CAST_OP(0xE5F8); + JumpTable[0xE5F9] = CAST_OP(0xE5F9); + JumpTable[0xE5DF] = CAST_OP(0xE5DF); + JumpTable[0xE5E7] = CAST_OP(0xE5E7); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE7D0 + i] = CAST_OP(0xE7D0); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0xE7D8 + i] = CAST_OP(0xE7D8); + for(i = 0x0000; i <= 0x0006; i += 0x0001) + JumpTable[0xE7E0 + i] = CAST_OP(0xE7E0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE7E8 + i] = CAST_OP(0xE7E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE7F0 + i] = CAST_OP(0xE7F0); + JumpTable[0xE7F8] = CAST_OP(0xE7F8); + JumpTable[0xE7F9] = CAST_OP(0xE7F9); + JumpTable[0xE7DF] = CAST_OP(0xE7DF); + JumpTable[0xE7E7] = CAST_OP(0xE7E7); +#ifdef OPCODES_M68020 + /* Bit Field Instructions - 68020+ */ + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE8C0 + i] = CAST_OP(0xE8C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE8D0 + i] = CAST_OP(0xE8D0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE8E8 + i] = CAST_OP(0xE8E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE8F0 + i] = CAST_OP(0xE8F0); + JumpTable[0xE8F8] = CAST_OP(0xE8F8); + JumpTable[0xE8F9] = CAST_OP(0xE8F9); + JumpTable[0xE8FA] = CAST_OP(0xE8FA); + JumpTable[0xE8FB] = CAST_OP(0xE8FB); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE9C0 + i] = CAST_OP(0xE9C0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE9D0 + i] = CAST_OP(0xE9D0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE9E8 + i] = CAST_OP(0xE9E8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xE9F0 + i] = CAST_OP(0xE9F0); + JumpTable[0xE9F8] = CAST_OP(0xE9F8); + JumpTable[0xE9F9] = CAST_OP(0xE9F9); + JumpTable[0xE9FA] = CAST_OP(0xE9FA); + JumpTable[0xE9FB] = CAST_OP(0xE9FB); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xEAC0 + i] = CAST_OP(0xEAC0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xEAD0 + i] = CAST_OP(0xEAD0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xEAE8 + i] = CAST_OP(0xEAE8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xEAF0 + i] = CAST_OP(0xEAF0); + JumpTable[0xEAF8] = CAST_OP(0xEAF8); + JumpTable[0xEAF9] = CAST_OP(0xEAF9); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xEBC0 + i] = CAST_OP(0xEBC0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xEBD0 + i] = CAST_OP(0xEBD0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xEBE8 + i] = CAST_OP(0xEBE8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xEBF0 + i] = CAST_OP(0xEBF0); + JumpTable[0xEBF8] = CAST_OP(0xEBF8); + JumpTable[0xEBF9] = CAST_OP(0xEBF9); + JumpTable[0xEBFA] = CAST_OP(0xEBFA); + JumpTable[0xEBFB] = CAST_OP(0xEBFB); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xECC0 + i] = CAST_OP(0xECC0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xECD0 + i] = CAST_OP(0xECD0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xECE8 + i] = CAST_OP(0xECE8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xECF0 + i] = CAST_OP(0xECF0); + JumpTable[0xECF8] = CAST_OP(0xECF8); + JumpTable[0xECF9] = CAST_OP(0xECF9); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xEDC0 + i] = CAST_OP(0xEDC0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xEDD0 + i] = CAST_OP(0xEDD0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xEDE8 + i] = CAST_OP(0xEDE8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xEDF0 + i] = CAST_OP(0xEDF0); + JumpTable[0xEDF8] = CAST_OP(0xEDF8); + JumpTable[0xEDF9] = CAST_OP(0xEDF9); + JumpTable[0xEDFA] = CAST_OP(0xEDFA); + JumpTable[0xEDFB] = CAST_OP(0xEDFB); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xEEC0 + i] = CAST_OP(0xEEC0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xEED0 + i] = CAST_OP(0xEED0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xEEE8 + i] = CAST_OP(0xEEE8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xEEF0 + i] = CAST_OP(0xEEF0); + JumpTable[0xEEF8] = CAST_OP(0xEEF8); + JumpTable[0xEEF9] = CAST_OP(0xEEF9); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xEFC0 + i] = CAST_OP(0xEFC0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xEFD0 + i] = CAST_OP(0xEFD0); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xEFE8 + i] = CAST_OP(0xEFE8); + for(i = 0x0000; i <= 0x0007; i += 0x0001) + JumpTable[0xEFF0 + i] = CAST_OP(0xEFF0); + JumpTable[0xEFF8] = CAST_OP(0xEFF8); + JumpTable[0xEFF9] = CAST_OP(0xEFF9); + /* End of Bit Field Instructions */ +#endif + for(i = 0x0000; i <= 0x0FFF; i += 0x0001) + JumpTable[0xF000 + i] = CAST_OP(0xF000); + + initialised = 1; + } +} diff --git a/uae4all_gp2x_0.7.2a/src/m68k/fame/famec_opcodes.h b/uae4all_gp2x_0.7.2a/src/m68k/fame/famec_opcodes.h index 83fcd6d..d5b682f 100644 --- a/uae4all_gp2x_0.7.2a/src/m68k/fame/famec_opcodes.h +++ b/uae4all_gp2x_0.7.2a/src/m68k/fame/famec_opcodes.h @@ -1,30 +1,40 @@ +#define EXECUTE_EXCEPTION(EX,CYCLES) \ +{ \ +u32 oldPC=GET_PC; \ +SET_PC(oldPC-2) \ +execute_exception(EX); \ +RET(CYCLES) \ +} // ORI OPCODE(0x0000) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; + FETCH_BYTE(src); - res = DREGu8((Opcode >> 0) & 7); + res = DREGu8((Opcode /*>> 0*/) & 7); res |= src; flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; - DREGu8((Opcode >> 0) & 7) = res; -RET(8) + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // ORI OPCODE(0x0010) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) res |= src; flag_C = 0; @@ -32,20 +42,22 @@ OPCODE(0x0010) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // ORI OPCODE(0x0018) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, res) res |= src; flag_C = 0; @@ -53,20 +65,22 @@ OPCODE(0x0018) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // ORI OPCODE(0x0020) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, res) res |= src; flag_C = 0; @@ -74,20 +88,22 @@ OPCODE(0x0020) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // ORI OPCODE(0x0028) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) res |= src; flag_C = 0; @@ -95,20 +111,22 @@ OPCODE(0x0028) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(15) +#endif } // ORI OPCODE(0x0030) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) res |= src; flag_C = 0; @@ -116,19 +134,21 @@ OPCODE(0x0030) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(13) +#endif } // ORI OPCODE(0x0038) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, res) res |= src; flag_C = 0; @@ -136,19 +156,21 @@ OPCODE(0x0038) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // ORI OPCODE(0x0039) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, res) res |= src; flag_C = 0; @@ -156,20 +178,22 @@ OPCODE(0x0039) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(11) +#endif } // ORI OPCODE(0x001F) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, res) res |= src; flag_C = 0; @@ -177,20 +201,22 @@ OPCODE(0x001F) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // ORI OPCODE(0x0027) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, res) res |= src; flag_C = 0; @@ -198,36 +224,42 @@ OPCODE(0x0027) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // ORI OPCODE(0x0040) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; + FETCH_WORD(src); - res = DREGu16((Opcode >> 0) & 7); + res = DREGu16((Opcode /*>> 0*/) & 7); res |= src; flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; - DREGu16((Opcode >> 0) & 7) = res; -RET(8) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // ORI OPCODE(0x0050) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_WORD(src); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) res |= src; flag_C = 0; @@ -235,20 +267,22 @@ OPCODE(0x0050) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // ORI OPCODE(0x0058) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_WORD(src); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, res) res |= src; flag_C = 0; @@ -256,20 +290,22 @@ OPCODE(0x0058) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // ORI OPCODE(0x0060) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_WORD(src); - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, res) res |= src; flag_C = 0; @@ -277,20 +313,22 @@ OPCODE(0x0060) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // ORI OPCODE(0x0068) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_WORD(src); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) res |= src; flag_C = 0; @@ -298,20 +336,22 @@ OPCODE(0x0068) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(15) +#endif } // ORI OPCODE(0x0070) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_WORD(src); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, res) res |= src; flag_C = 0; @@ -319,19 +359,21 @@ OPCODE(0x0070) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(13) +#endif } // ORI OPCODE(0x0078) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_WORD(src); FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, res) res |= src; flag_C = 0; @@ -339,19 +381,21 @@ OPCODE(0x0078) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // ORI OPCODE(0x0079) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_WORD(src); FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, res) res |= src; flag_C = 0; @@ -359,20 +403,22 @@ OPCODE(0x0079) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(10) +#endif } // ORI OPCODE(0x005F) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_WORD(src); adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, res) res |= src; flag_C = 0; @@ -380,20 +426,22 @@ OPCODE(0x005F) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // ORI OPCODE(0x0067) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_WORD(src); adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, res) res |= src; flag_C = 0; @@ -401,36 +449,42 @@ OPCODE(0x0067) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // ORI OPCODE(0x0080) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; + FETCH_LONG(src); - res = DREGu32((Opcode >> 0) & 7); + res = DREGu32((Opcode /*>> 0*/) & 7); res |= src; flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; - DREGu32((Opcode >> 0) & 7) = res; -RET(16) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // ORI OPCODE(0x0090) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(src); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) res |= src; flag_C = 0; @@ -438,20 +492,22 @@ OPCODE(0x0090) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(8) +#endif } // ORI OPCODE(0x0098) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(src); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, res) res |= src; flag_C = 0; @@ -459,20 +515,22 @@ OPCODE(0x0098) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(12) +#endif } // ORI OPCODE(0x00A0) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(src); - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, res) res |= src; flag_C = 0; @@ -480,20 +538,22 @@ OPCODE(0x00A0) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(30) +#ifdef OPCODES_M68000 + RET(30) +#else + RET(11) +#endif } // ORI OPCODE(0x00A8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(src); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) res |= src; flag_C = 0; @@ -501,20 +561,22 @@ OPCODE(0x00A8) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(32) +#ifdef OPCODES_M68000 + RET(32) +#else + RET(17) +#endif } // ORI OPCODE(0x00B0) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(src); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, res) res |= src; flag_C = 0; @@ -522,19 +584,21 @@ OPCODE(0x00B0) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(34) +#ifdef OPCODES_M68000 + RET(34) +#else + RET(15) +#endif } // ORI OPCODE(0x00B8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(src); FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, res) res |= src; flag_C = 0; @@ -542,19 +606,21 @@ OPCODE(0x00B8) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(32) +#ifdef OPCODES_M68000 + RET(32) +#else + RET(11) +#endif } // ORI OPCODE(0x00B9) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(src); FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, res) res |= src; flag_C = 0; @@ -562,20 +628,22 @@ OPCODE(0x00B9) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(36) +#ifdef OPCODES_M68000 + RET(36) +#else + RET(12) +#endif } // ORI OPCODE(0x009F) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(src); adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, res) res |= src; flag_C = 0; @@ -583,20 +651,22 @@ OPCODE(0x009F) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(12) +#endif } // ORI OPCODE(0x00A7) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(src); adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, res) res |= src; flag_C = 0; @@ -604,78 +674,89 @@ OPCODE(0x00A7) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(30) +#ifdef OPCODES_M68000 + RET(30) +#else + RET(11) +#endif } // ORICCR OPCODE(0x003C) { - u32 adr, res; - u32 src, dst; - + u32 res; + FETCH_BYTE(res); res &= M68K_CCR_MASK; res |= GET_CCR; SET_CCR(res) -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(12) +#endif } // ORISR OPCODE(0x007C) { - u32 adr, res; - u32 src, dst; - - if (flag_S) - { - u32 res; - FETCH_WORD(res); - res &= M68K_SR_MASK; - res |= GET_SR; - SET_SR(res) - CHECK_INT_TO_JUMP(20) - } - else - { - u32 newPC = (u32)(PC) - BasePC; - SET_PC(newPC-2); - execute_exception(M68K_PRIVILEGE_VIOLATION_EX); -#ifdef USE_CYCLONE_TIMING - RET(0) + u32 res; + + if (!flag_S) +#ifdef OPCODES_M68000 + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,20) #else - RET(4) + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,12) +#endif + +#ifdef OPCODES_M68020 + int oldM = flag_M; +#endif + int oldS = flag_S; + FETCH_WORD(res); + res &= M68K_SR_MASK; + res |= GET_SR; + SET_SR(res) +#ifdef OPCODES_M68000 + UPDATE_SP_000 + CHECK_INT_TO_JUMP(20) + RET(20) +#else + UPDATE_SP_020 + CHECK_INT_TO_JUMP(12) + RET(12) #endif - } -RET(20) } // ANDI OPCODE(0x0200) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; + FETCH_BYTE(src); - res = DREGu8((Opcode >> 0) & 7); + res = DREGu8((Opcode /*>> 0*/) & 7); res &= src; flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; - DREGu8((Opcode >> 0) & 7) = res; -RET(8) + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // ANDI OPCODE(0x0210) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) res &= src; flag_C = 0; @@ -683,20 +764,22 @@ OPCODE(0x0210) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // ANDI OPCODE(0x0218) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, res) res &= src; flag_C = 0; @@ -704,20 +787,22 @@ OPCODE(0x0218) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // ANDI OPCODE(0x0220) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, res) res &= src; flag_C = 0; @@ -725,20 +810,22 @@ OPCODE(0x0220) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // ANDI OPCODE(0x0228) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) res &= src; flag_C = 0; @@ -746,20 +833,22 @@ OPCODE(0x0228) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(15) +#endif } // ANDI OPCODE(0x0230) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) res &= src; flag_C = 0; @@ -767,19 +856,21 @@ OPCODE(0x0230) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(13) +#endif } // ANDI OPCODE(0x0238) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, res) res &= src; flag_C = 0; @@ -787,19 +878,21 @@ OPCODE(0x0238) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // ANDI OPCODE(0x0239) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, res) res &= src; flag_C = 0; @@ -807,20 +900,22 @@ OPCODE(0x0239) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(10) +#endif } // ANDI OPCODE(0x021F) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, res) res &= src; flag_C = 0; @@ -828,20 +923,22 @@ OPCODE(0x021F) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // ANDI OPCODE(0x0227) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, res) res &= src; flag_C = 0; @@ -849,36 +946,42 @@ OPCODE(0x0227) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // ANDI OPCODE(0x0240) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; + FETCH_WORD(src); - res = DREGu16((Opcode >> 0) & 7); + res = DREGu16((Opcode /*>> 0*/) & 7); res &= src; flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; - DREGu16((Opcode >> 0) & 7) = res; -RET(8) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // ANDI OPCODE(0x0250) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_WORD(src); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) res &= src; flag_C = 0; @@ -886,20 +989,22 @@ OPCODE(0x0250) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // ANDI OPCODE(0x0258) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_WORD(src); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, res) res &= src; flag_C = 0; @@ -907,20 +1012,22 @@ OPCODE(0x0258) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // ANDI OPCODE(0x0260) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_WORD(src); - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, res) res &= src; flag_C = 0; @@ -928,20 +1035,22 @@ OPCODE(0x0260) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // ANDI OPCODE(0x0268) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_WORD(src); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) res &= src; flag_C = 0; @@ -949,20 +1058,22 @@ OPCODE(0x0268) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(15) +#endif } // ANDI OPCODE(0x0270) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_WORD(src); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, res) res &= src; flag_C = 0; @@ -970,19 +1081,21 @@ OPCODE(0x0270) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(13) +#endif } // ANDI OPCODE(0x0278) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_WORD(src); FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, res) res &= src; flag_C = 0; @@ -990,19 +1103,21 @@ OPCODE(0x0278) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // ANDI OPCODE(0x0279) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_WORD(src); FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, res) res &= src; flag_C = 0; @@ -1010,20 +1125,22 @@ OPCODE(0x0279) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(10) +#endif } // ANDI OPCODE(0x025F) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_WORD(src); adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, res) res &= src; flag_C = 0; @@ -1031,20 +1148,22 @@ OPCODE(0x025F) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // ANDI OPCODE(0x0267) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_WORD(src); adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, res) res &= src; flag_C = 0; @@ -1052,28 +1171,32 @@ OPCODE(0x0267) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // ANDI OPCODE(0x0280) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; + FETCH_LONG(src); - res = DREGu32((Opcode >> 0) & 7); + res = DREGu32((Opcode /*>> 0*/) & 7); res &= src; flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; - DREGu32((Opcode >> 0) & 7) = res; -#ifdef USE_CYCLONE_TIMING -RET(14) + DREGu32((Opcode /*>> 0*/) & 7) = res; + // Reference manual says 14 cycles, why was here 16? +#ifdef OPCODES_M68000 + RET(14) #else -RET(16) + RET(6) #endif } @@ -1081,11 +1204,10 @@ RET(16) OPCODE(0x0290) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(src); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) res &= src; flag_C = 0; @@ -1093,20 +1215,22 @@ OPCODE(0x0290) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(8) +#endif } // ANDI OPCODE(0x0298) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(src); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, res) res &= src; flag_C = 0; @@ -1114,20 +1238,22 @@ OPCODE(0x0298) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(12) +#endif } // ANDI OPCODE(0x02A0) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(src); - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, res) res &= src; flag_C = 0; @@ -1135,20 +1261,22 @@ OPCODE(0x02A0) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(30) +#ifdef OPCODES_M68000 + RET(30) +#else + RET(11) +#endif } // ANDI OPCODE(0x02A8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(src); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) res &= src; flag_C = 0; @@ -1156,20 +1284,22 @@ OPCODE(0x02A8) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(32) +#ifdef OPCODES_M68000 + RET(32) +#else + RET(17) +#endif } // ANDI OPCODE(0x02B0) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(src); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, res) res &= src; flag_C = 0; @@ -1177,19 +1307,21 @@ OPCODE(0x02B0) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(34) +#ifdef OPCODES_M68000 + RET(34) +#else + RET(15) +#endif } // ANDI OPCODE(0x02B8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(src); FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, res) res &= src; flag_C = 0; @@ -1197,19 +1329,21 @@ OPCODE(0x02B8) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(32) +#ifdef OPCODES_M68000 + RET(32) +#else + RET(11) +#endif } // ANDI OPCODE(0x02B9) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(src); FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, res) res &= src; flag_C = 0; @@ -1217,20 +1351,22 @@ OPCODE(0x02B9) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(36) +#ifdef OPCODES_M68000 + RET(36) +#else + RET(12) +#endif } // ANDI OPCODE(0x029F) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(src); adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, res) res &= src; flag_C = 0; @@ -1238,20 +1374,22 @@ OPCODE(0x029F) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(12) +#endif } // ANDI OPCODE(0x02A7) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(src); adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, res) res &= src; flag_C = 0; @@ -1259,79 +1397,90 @@ OPCODE(0x02A7) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(30) +#ifdef OPCODES_M68000 + RET(30) +#else + RET(11) +#endif } // ANDICCR OPCODE(0x023C) { - u32 adr, res; - u32 src, dst; - + u32 res; + FETCH_BYTE(res); res &= M68K_CCR_MASK; res &= GET_CCR; SET_CCR(res) -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(12) +#endif } // ANDISR OPCODE(0x027C) { - u32 adr, res; - u32 src, dst; - - if (flag_S) - { - FETCH_WORD(res); - res &= M68K_SR_MASK; - res &= GET_SR; - SET_SR(res) - if (!flag_S) - { - res = AREG(7); - AREG(7) = ASP; - ASP = res; - } - CHECK_INT_TO_JUMP(20) - } - else - { - u32 newPC = (u32)(PC) - BasePC; - SET_PC(newPC-2); - execute_exception(M68K_PRIVILEGE_VIOLATION_EX); - RET(4) - } -RET(20) + u32 res; + + if (!flag_S) +#ifdef OPCODES_M68000 + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,20) +#else + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,12) +#endif + +#ifdef OPCODES_M68020 + int oldM = flag_M; +#endif + int oldS = flag_S; + + FETCH_WORD(res); + res &= M68K_SR_MASK; + res &= GET_SR; + SET_SR(res) +#ifdef OPCODES_M68000 + UPDATE_SP_000 + CHECK_INT_TO_JUMP(20) + RET(20) +#else + UPDATE_SP_020 + CHECK_INT_TO_JUMP(12) + RET(12) +#endif } // EORI OPCODE(0x0A00) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; + FETCH_BYTE(src); - res = DREGu8((Opcode >> 0) & 7); + res = DREGu8((Opcode /*>> 0*/) & 7); res ^= src; flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; - DREGu8((Opcode >> 0) & 7) = res; -RET(8) + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // EORI OPCODE(0x0A10) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) res ^= src; flag_C = 0; @@ -1339,20 +1488,22 @@ OPCODE(0x0A10) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // EORI OPCODE(0x0A18) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, res) res ^= src; flag_C = 0; @@ -1360,20 +1511,22 @@ OPCODE(0x0A18) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // EORI OPCODE(0x0A20) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, res) res ^= src; flag_C = 0; @@ -1381,20 +1534,22 @@ OPCODE(0x0A20) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // EORI OPCODE(0x0A28) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) res ^= src; flag_C = 0; @@ -1402,20 +1557,22 @@ OPCODE(0x0A28) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(15) +#endif } // EORI OPCODE(0x0A30) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) res ^= src; flag_C = 0; @@ -1423,19 +1580,21 @@ OPCODE(0x0A30) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(13) +#endif } // EORI OPCODE(0x0A38) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, res) res ^= src; flag_C = 0; @@ -1443,19 +1602,21 @@ OPCODE(0x0A38) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // EORI OPCODE(0x0A39) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, res) res ^= src; flag_C = 0; @@ -1463,20 +1624,22 @@ OPCODE(0x0A39) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(10) +#endif } // EORI OPCODE(0x0A1F) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, res) res ^= src; flag_C = 0; @@ -1484,20 +1647,22 @@ OPCODE(0x0A1F) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // EORI OPCODE(0x0A27) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, res) res ^= src; flag_C = 0; @@ -1505,36 +1670,42 @@ OPCODE(0x0A27) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // EORI OPCODE(0x0A40) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; + FETCH_WORD(src); - res = DREGu16((Opcode >> 0) & 7); + res = DREGu16((Opcode /*>> 0*/) & 7); res ^= src; flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; - DREGu16((Opcode >> 0) & 7) = res; -RET(8) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // EORI OPCODE(0x0A50) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_WORD(src); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) res ^= src; flag_C = 0; @@ -1542,20 +1713,22 @@ OPCODE(0x0A50) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // EORI OPCODE(0x0A58) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_WORD(src); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, res) res ^= src; flag_C = 0; @@ -1563,20 +1736,22 @@ OPCODE(0x0A58) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // EORI OPCODE(0x0A60) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_WORD(src); - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, res) res ^= src; flag_C = 0; @@ -1584,20 +1759,22 @@ OPCODE(0x0A60) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // EORI OPCODE(0x0A68) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_WORD(src); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) res ^= src; flag_C = 0; @@ -1605,20 +1782,22 @@ OPCODE(0x0A68) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(15) +#endif } // EORI OPCODE(0x0A70) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_WORD(src); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, res) res ^= src; flag_C = 0; @@ -1626,19 +1805,21 @@ OPCODE(0x0A70) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(13) +#endif } // EORI OPCODE(0x0A78) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_WORD(src); FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, res) res ^= src; flag_C = 0; @@ -1646,19 +1827,21 @@ OPCODE(0x0A78) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // EORI OPCODE(0x0A79) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_WORD(src); FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, res) res ^= src; flag_C = 0; @@ -1666,20 +1849,22 @@ OPCODE(0x0A79) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(10) +#endif } // EORI OPCODE(0x0A5F) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_WORD(src); adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, res) res ^= src; flag_C = 0; @@ -1687,20 +1872,22 @@ OPCODE(0x0A5F) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // EORI OPCODE(0x0A67) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_WORD(src); adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, res) res ^= src; flag_C = 0; @@ -1708,36 +1895,42 @@ OPCODE(0x0A67) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // EORI OPCODE(0x0A80) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; + FETCH_LONG(src); - res = DREGu32((Opcode >> 0) & 7); + res = DREGu32((Opcode /*>> 0*/) & 7); res ^= src; flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; - DREGu32((Opcode >> 0) & 7) = res; -RET(16) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // EORI OPCODE(0x0A90) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(src); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) res ^= src; flag_C = 0; @@ -1745,20 +1938,22 @@ OPCODE(0x0A90) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(8) +#endif } // EORI OPCODE(0x0A98) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(src); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, res) res ^= src; flag_C = 0; @@ -1766,20 +1961,22 @@ OPCODE(0x0A98) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(12) +#endif } // EORI OPCODE(0x0AA0) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(src); - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, res) res ^= src; flag_C = 0; @@ -1787,20 +1984,22 @@ OPCODE(0x0AA0) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(30) +#ifdef OPCODES_M68000 + RET(30) +#else + RET(11) +#endif } // EORI OPCODE(0x0AA8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(src); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) res ^= src; flag_C = 0; @@ -1808,20 +2007,22 @@ OPCODE(0x0AA8) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(32) +#ifdef OPCODES_M68000 + RET(32) +#else + RET(17) +#endif } // EORI OPCODE(0x0AB0) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(src); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, res) res ^= src; flag_C = 0; @@ -1829,19 +2030,21 @@ OPCODE(0x0AB0) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(34) +#ifdef OPCODES_M68000 + RET(34) +#else + RET(15) +#endif } // EORI OPCODE(0x0AB8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(src); FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, res) res ^= src; flag_C = 0; @@ -1849,19 +2052,21 @@ OPCODE(0x0AB8) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(32) +#ifdef OPCODES_M68000 + RET(32) +#else + RET(11) +#endif } // EORI OPCODE(0x0AB9) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(src); FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, res) res ^= src; flag_C = 0; @@ -1869,20 +2074,22 @@ OPCODE(0x0AB9) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(36) +#ifdef OPCODES_M68000 + RET(36) +#else + RET(12) +#endif } // EORI OPCODE(0x0A9F) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(src); adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, res) res ^= src; flag_C = 0; @@ -1890,20 +2097,22 @@ OPCODE(0x0A9F) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(12) +#endif } // EORI OPCODE(0x0AA7) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(src); adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, res) res ^= src; flag_C = 0; @@ -1911,67 +2120,78 @@ OPCODE(0x0AA7) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(30) +#ifdef OPCODES_M68000 + RET(30) +#else + RET(11) +#endif } // EORICCR OPCODE(0x0A3C) { - u32 adr, res; - u32 src, dst; - + u32 res; + FETCH_BYTE(res); res &= M68K_CCR_MASK; res ^= GET_CCR; SET_CCR(res) -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(12) +#endif } // EORISR OPCODE(0x0A7C) { - u32 adr, res; - u32 src, dst; - - if (flag_S) - { - FETCH_WORD(res); - res &= M68K_SR_MASK; - res ^= GET_SR; - SET_SR(res) - if (!flag_S) - { - res = AREG(7); - AREG(7) = ASP; - ASP = res; - } - CHECK_INT_TO_JUMP(20) - } - else - { - u32 newPC = (u32)(PC) - BasePC; - SET_PC(newPC-2); - execute_exception(M68K_PRIVILEGE_VIOLATION_EX); - RET(4) - } -RET(20) + u32 res; + + if (!flag_S) +#ifdef OPCODES_M68000 + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,20) +#else + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,12) +#endif + +#ifdef OPCODES_M68020 + int oldM = flag_M; +#endif + int oldS = flag_S; + FETCH_WORD(res); + res &= M68K_SR_MASK; + res ^= GET_SR; + SET_SR(res) +#ifdef OPCODES_M68000 + UPDATE_SP_000 + CHECK_INT_TO_JUMP(20) + RET(20) +#else + UPDATE_SP_020 + CHECK_INT_TO_JUMP(12) + RET(12) +#endif } // SUBI OPCODE(0x0400) { - u32 adr, res; + u32 res; u32 src, dst; - + FETCH_BYTE(src); - dst = DREGu8((Opcode >> 0) & 7); + dst = DREGu8((Opcode /*>> 0*/) & 7); res = dst - src; flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; - DREGu8((Opcode >> 0) & 7) = res; -RET(8) + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // SUBI @@ -1979,18 +2199,20 @@ OPCODE(0x0410) { u32 adr, res; u32 src, dst; - + FETCH_BYTE(src); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // SUBI @@ -1998,19 +2220,21 @@ OPCODE(0x0418) { u32 adr, res; u32 src, dst; - + FETCH_BYTE(src); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // SUBI @@ -2018,19 +2242,21 @@ OPCODE(0x0420) { u32 adr, res; u32 src, dst; - + FETCH_BYTE(src); - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // SUBI @@ -2038,19 +2264,21 @@ OPCODE(0x0428) { u32 adr, res; u32 src, dst; - + FETCH_BYTE(src); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(15) +#endif } // SUBI @@ -2058,19 +2286,21 @@ OPCODE(0x0430) { u32 adr, res; u32 src, dst; - + FETCH_BYTE(src); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(13) +#endif } // SUBI @@ -2078,18 +2308,20 @@ OPCODE(0x0438) { u32 adr, res; u32 src, dst; - + FETCH_BYTE(src); FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // SUBI @@ -2097,18 +2329,20 @@ OPCODE(0x0439) { u32 adr, res; u32 src, dst; - + FETCH_BYTE(src); FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(10) +#endif } // SUBI @@ -2116,19 +2350,21 @@ OPCODE(0x041F) { u32 adr, res; u32 src, dst; - + FETCH_BYTE(src); adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // SUBI @@ -2136,35 +2372,41 @@ OPCODE(0x0427) { u32 adr, res; u32 src, dst; - + FETCH_BYTE(src); adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // SUBI OPCODE(0x0440) { - u32 adr, res; + u32 res; u32 src, dst; - + FETCH_WORD(src); - dst = DREGu16((Opcode >> 0) & 7); + dst = DREGu16((Opcode /*>> 0*/) & 7); res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; - DREGu16((Opcode >> 0) & 7) = res; -RET(8) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // SUBI @@ -2172,18 +2414,20 @@ OPCODE(0x0450) { u32 adr, res; u32 src, dst; - + FETCH_WORD(src); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // SUBI @@ -2191,19 +2435,21 @@ OPCODE(0x0458) { u32 adr, res; u32 src, dst; - + FETCH_WORD(src); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // SUBI @@ -2211,19 +2457,21 @@ OPCODE(0x0460) { u32 adr, res; u32 src, dst; - + FETCH_WORD(src); - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // SUBI @@ -2231,19 +2479,21 @@ OPCODE(0x0468) { u32 adr, res; u32 src, dst; - + FETCH_WORD(src); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(15) +#endif } // SUBI @@ -2251,19 +2501,21 @@ OPCODE(0x0470) { u32 adr, res; u32 src, dst; - + FETCH_WORD(src); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(13) +#endif } // SUBI @@ -2271,18 +2523,20 @@ OPCODE(0x0478) { u32 adr, res; u32 src, dst; - + FETCH_WORD(src); FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // SUBI @@ -2290,18 +2544,20 @@ OPCODE(0x0479) { u32 adr, res; u32 src, dst; - + FETCH_WORD(src); FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(10) +#endif } // SUBI @@ -2309,19 +2565,21 @@ OPCODE(0x045F) { u32 adr, res; u32 src, dst; - + FETCH_WORD(src); adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // SUBI @@ -2329,36 +2587,42 @@ OPCODE(0x0467) { u32 adr, res; u32 src, dst; - + FETCH_WORD(src); adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // SUBI OPCODE(0x0480) { - u32 adr, res; + u32 res; u32 src, dst; - + FETCH_LONG(src); - dst = DREGu32((Opcode >> 0) & 7); + dst = DREGu32((Opcode /*>> 0*/) & 7); res = dst - src; flag_NotZ = res; flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - DREGu32((Opcode >> 0) & 7) = res; -RET(16) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // SUBI @@ -2366,10 +2630,9 @@ OPCODE(0x0490) { u32 adr, res; u32 src, dst; - + FETCH_LONG(src); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; @@ -2377,8 +2640,11 @@ OPCODE(0x0490) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(8) +#endif } // SUBI @@ -2386,11 +2652,10 @@ OPCODE(0x0498) { u32 adr, res; u32 src, dst; - + FETCH_LONG(src); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; @@ -2398,8 +2663,11 @@ OPCODE(0x0498) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(12) +#endif } // SUBI @@ -2407,11 +2675,10 @@ OPCODE(0x04A0) { u32 adr, res; u32 src, dst; - + FETCH_LONG(src); - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; @@ -2419,8 +2686,11 @@ OPCODE(0x04A0) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(30) +#ifdef OPCODES_M68000 + RET(30) +#else + RET(11) +#endif } // SUBI @@ -2428,11 +2698,10 @@ OPCODE(0x04A8) { u32 adr, res; u32 src, dst; - + FETCH_LONG(src); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; @@ -2440,8 +2709,11 @@ OPCODE(0x04A8) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(32) +#ifdef OPCODES_M68000 + RET(32) +#else + RET(17) +#endif } // SUBI @@ -2449,11 +2721,10 @@ OPCODE(0x04B0) { u32 adr, res; u32 src, dst; - + FETCH_LONG(src); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; @@ -2461,8 +2732,11 @@ OPCODE(0x04B0) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(34) +#ifdef OPCODES_M68000 + RET(34) +#else + RET(15) +#endif } // SUBI @@ -2470,10 +2744,9 @@ OPCODE(0x04B8) { u32 adr, res; u32 src, dst; - + FETCH_LONG(src); FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; @@ -2481,8 +2754,11 @@ OPCODE(0x04B8) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(32) +#ifdef OPCODES_M68000 + RET(32) +#else + RET(11) +#endif } // SUBI @@ -2490,10 +2766,9 @@ OPCODE(0x04B9) { u32 adr, res; u32 src, dst; - + FETCH_LONG(src); FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; @@ -2501,8 +2776,11 @@ OPCODE(0x04B9) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(36) +#ifdef OPCODES_M68000 + RET(36) +#else + RET(12) +#endif } // SUBI @@ -2510,11 +2788,10 @@ OPCODE(0x049F) { u32 adr, res; u32 src, dst; - + FETCH_LONG(src); adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; @@ -2522,8 +2799,11 @@ OPCODE(0x049F) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(12) +#endif } // SUBI @@ -2531,11 +2811,10 @@ OPCODE(0x04A7) { u32 adr, res; u32 src, dst; - + FETCH_LONG(src); adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; @@ -2543,24 +2822,31 @@ OPCODE(0x04A7) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(30) +#ifdef OPCODES_M68000 + RET(30) +#else + RET(11) +#endif } // ADDI OPCODE(0x0600) { - u32 adr, res; + u32 res; u32 src, dst; - + FETCH_BYTE(src); - dst = DREGu8((Opcode >> 0) & 7); + dst = DREGu8((Opcode /*>> 0*/) & 7); res = dst + src; flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; - DREGu8((Opcode >> 0) & 7) = res; -RET(8) + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // ADDI @@ -2568,18 +2854,20 @@ OPCODE(0x0610) { u32 adr, res; u32 src, dst; - + FETCH_BYTE(src); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, dst) res = dst + src; flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // ADDI @@ -2587,19 +2875,21 @@ OPCODE(0x0618) { u32 adr, res; u32 src, dst; - + FETCH_BYTE(src); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, dst) res = dst + src; flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // ADDI @@ -2607,19 +2897,21 @@ OPCODE(0x0620) { u32 adr, res; u32 src, dst; - + FETCH_BYTE(src); - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, dst) res = dst + src; flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // ADDI @@ -2627,19 +2919,21 @@ OPCODE(0x0628) { u32 adr, res; u32 src, dst; - + FETCH_BYTE(src); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, dst) res = dst + src; flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(15) +#endif } // ADDI @@ -2647,19 +2941,21 @@ OPCODE(0x0630) { u32 adr, res; u32 src, dst; - + FETCH_BYTE(src); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, dst) res = dst + src; flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(13) +#endif } // ADDI @@ -2667,18 +2963,20 @@ OPCODE(0x0638) { u32 adr, res; u32 src, dst; - + FETCH_BYTE(src); FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, dst) res = dst + src; flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // ADDI @@ -2686,18 +2984,20 @@ OPCODE(0x0639) { u32 adr, res; u32 src, dst; - + FETCH_BYTE(src); FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, dst) res = dst + src; flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(10) +#endif } // ADDI @@ -2705,19 +3005,21 @@ OPCODE(0x061F) { u32 adr, res; u32 src, dst; - + FETCH_BYTE(src); adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, dst) res = dst + src; flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // ADDI @@ -2725,35 +3027,41 @@ OPCODE(0x0627) { u32 adr, res; u32 src, dst; - + FETCH_BYTE(src); adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, dst) res = dst + src; flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // ADDI OPCODE(0x0640) { - u32 adr, res; + u32 res; u32 src, dst; - + FETCH_WORD(src); - dst = DREGu16((Opcode >> 0) & 7); + dst = DREGu16((Opcode /*>> 0*/) & 7); res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; - DREGu16((Opcode >> 0) & 7) = res; -RET(8) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // ADDI @@ -2761,18 +3069,20 @@ OPCODE(0x0650) { u32 adr, res; u32 src, dst; - + FETCH_WORD(src); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, dst) res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // ADDI @@ -2780,19 +3090,21 @@ OPCODE(0x0658) { u32 adr, res; u32 src, dst; - + FETCH_WORD(src); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, dst) res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // ADDI @@ -2800,19 +3112,21 @@ OPCODE(0x0660) { u32 adr, res; u32 src, dst; - + FETCH_WORD(src); - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, dst) res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // ADDI @@ -2820,19 +3134,21 @@ OPCODE(0x0668) { u32 adr, res; u32 src, dst; - + FETCH_WORD(src); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, dst) res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(15) +#endif } // ADDI @@ -2840,19 +3156,21 @@ OPCODE(0x0670) { u32 adr, res; u32 src, dst; - + FETCH_WORD(src); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, dst) res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(13) +#endif } // ADDI @@ -2860,18 +3178,20 @@ OPCODE(0x0678) { u32 adr, res; u32 src, dst; - + FETCH_WORD(src); FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, dst) res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // ADDI @@ -2879,18 +3199,20 @@ OPCODE(0x0679) { u32 adr, res; u32 src, dst; - + FETCH_WORD(src); FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, dst) res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(10) +#endif } // ADDI @@ -2898,19 +3220,21 @@ OPCODE(0x065F) { u32 adr, res; u32 src, dst; - + FETCH_WORD(src); adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, dst) res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // ADDI @@ -2918,36 +3242,42 @@ OPCODE(0x0667) { u32 adr, res; u32 src, dst; - + FETCH_WORD(src); adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, dst) res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // ADDI OPCODE(0x0680) { - u32 adr, res; + u32 res; u32 src, dst; - + FETCH_LONG(src); - dst = DREGu32((Opcode >> 0) & 7); + dst = DREGu32((Opcode /*>> 0*/) & 7); res = dst + src; flag_NotZ = res; flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23; flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; - DREGu32((Opcode >> 0) & 7) = res; -RET(16) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // ADDI @@ -2955,10 +3285,9 @@ OPCODE(0x0690) { u32 adr, res; u32 src, dst; - + FETCH_LONG(src); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, dst) res = dst + src; flag_NotZ = res; @@ -2966,8 +3295,11 @@ OPCODE(0x0690) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(8) +#endif } // ADDI @@ -2975,11 +3307,10 @@ OPCODE(0x0698) { u32 adr, res; u32 src, dst; - + FETCH_LONG(src); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, dst) res = dst + src; flag_NotZ = res; @@ -2987,8 +3318,11 @@ OPCODE(0x0698) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(12) +#endif } // ADDI @@ -2996,11 +3330,10 @@ OPCODE(0x06A0) { u32 adr, res; u32 src, dst; - + FETCH_LONG(src); - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, dst) res = dst + src; flag_NotZ = res; @@ -3008,8 +3341,11 @@ OPCODE(0x06A0) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(30) +#ifdef OPCODES_M68000 + RET(30) +#else + RET(11) +#endif } // ADDI @@ -3017,11 +3353,10 @@ OPCODE(0x06A8) { u32 adr, res; u32 src, dst; - + FETCH_LONG(src); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, dst) res = dst + src; flag_NotZ = res; @@ -3029,8 +3364,11 @@ OPCODE(0x06A8) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(32) +#ifdef OPCODES_M68000 + RET(32) +#else + RET(17) +#endif } // ADDI @@ -3038,11 +3376,10 @@ OPCODE(0x06B0) { u32 adr, res; u32 src, dst; - + FETCH_LONG(src); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, dst) res = dst + src; flag_NotZ = res; @@ -3050,8 +3387,11 @@ OPCODE(0x06B0) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(34) +#ifdef OPCODES_M68000 + RET(34) +#else + RET(15) +#endif } // ADDI @@ -3059,10 +3399,9 @@ OPCODE(0x06B8) { u32 adr, res; u32 src, dst; - + FETCH_LONG(src); FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, dst) res = dst + src; flag_NotZ = res; @@ -3070,8 +3409,11 @@ OPCODE(0x06B8) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(32) +#ifdef OPCODES_M68000 + RET(32) +#else + RET(11) +#endif } // ADDI @@ -3079,10 +3421,9 @@ OPCODE(0x06B9) { u32 adr, res; u32 src, dst; - + FETCH_LONG(src); FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, dst) res = dst + src; flag_NotZ = res; @@ -3090,8 +3431,11 @@ OPCODE(0x06B9) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(36) +#ifdef OPCODES_M68000 + RET(36) +#else + RET(12) +#endif } // ADDI @@ -3099,11 +3443,10 @@ OPCODE(0x069F) { u32 adr, res; u32 src, dst; - + FETCH_LONG(src); adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, dst) res = dst + src; flag_NotZ = res; @@ -3111,8 +3454,11 @@ OPCODE(0x069F) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(12) +#endif } // ADDI @@ -3120,11 +3466,10 @@ OPCODE(0x06A7) { u32 adr, res; u32 src, dst; - + FETCH_LONG(src); adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, dst) res = dst + src; flag_NotZ = res; @@ -3132,23 +3477,30 @@ OPCODE(0x06A7) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(30) +#ifdef OPCODES_M68000 + RET(30) +#else + RET(11) +#endif } // CMPI OPCODE(0x0C00) { - u32 adr, res; + u32 res; u32 src, dst; - + FETCH_BYTE(src); - dst = DREGu8((Opcode >> 0) & 7); + dst = DREGu8((Opcode /*>> 0*/) & 7); res = dst - src; flag_N = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // CMPI @@ -3156,17 +3508,19 @@ OPCODE(0x0C10) { u32 adr, res; u32 src, dst; - + FETCH_BYTE(src); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // CMPI @@ -3174,18 +3528,20 @@ OPCODE(0x0C18) { u32 adr, res; u32 src, dst; - + FETCH_BYTE(src); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // CMPI @@ -3193,18 +3549,20 @@ OPCODE(0x0C20) { u32 adr, res; u32 src, dst; - + FETCH_BYTE(src); - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(7) +#endif } // CMPI @@ -3212,18 +3570,20 @@ OPCODE(0x0C28) { u32 adr, res; u32 src, dst; - + FETCH_BYTE(src); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(13) +#endif } // CMPI @@ -3231,18 +3591,20 @@ OPCODE(0x0C30) { u32 adr, res; u32 src, dst; - + FETCH_BYTE(src); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(11) +#endif } // CMPI @@ -3250,17 +3612,19 @@ OPCODE(0x0C38) { u32 adr, res; u32 src, dst; - + FETCH_BYTE(src); FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // CMPI @@ -3268,36 +3632,76 @@ OPCODE(0x0C39) { u32 adr, res; u32 src, dst; - + FETCH_BYTE(src); FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } +#ifdef OPCODES_M68020 +// CMPI.B (d16,PC) - 68020+ +OPCODE(0x0C3A) +{ + u32 adr, res; + u32 src, dst; + + FETCH_BYTE(src); + adr = GET_SWORD + ((u32)(PC) - BasePC); + PC++; + READ_BYTE_F(adr, dst) + res = dst - src; + flag_N = flag_C = res; + flag_V = (src ^ dst) & (res ^ dst); + flag_NotZ = res & 0xFF; + RET(13) +} + +// CMPI.B (d8,PC,Xn) / (bd,PC,Xn)... - 68020+ +OPCODE(0x0C3B) +{ + u32 adr, res; + u32 src, dst; + + FETCH_BYTE(src); + adr = (u32)(PC) - BasePC; + DECODE_EXT_WORD(&adr); + READ_BYTE_F(adr, dst) + res = dst - src; + flag_N = flag_C = res; + flag_V = (src ^ dst) & (res ^ dst); + flag_NotZ = res & 0xFF; + RET(11) +} +#endif + // CMPI OPCODE(0x0C1F) { u32 adr, res; u32 src, dst; - + FETCH_BYTE(src); adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // CMPI @@ -3305,33 +3709,39 @@ OPCODE(0x0C27) { u32 adr, res; u32 src, dst; - + FETCH_BYTE(src); adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(7) +#endif } // CMPI OPCODE(0x0C40) { - u32 adr, res; + u32 res; u32 src, dst; - + FETCH_WORD(src); - dst = DREGu16((Opcode >> 0) & 7); + dst = DREGu16((Opcode /*>> 0*/) & 7); res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // CMPI @@ -3339,17 +3749,19 @@ OPCODE(0x0C50) { u32 adr, res; u32 src, dst; - + FETCH_WORD(src); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // CMPI @@ -3357,18 +3769,20 @@ OPCODE(0x0C58) { u32 adr, res; u32 src, dst; - + FETCH_WORD(src); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // CMPI @@ -3376,18 +3790,20 @@ OPCODE(0x0C60) { u32 adr, res; u32 src, dst; - + FETCH_WORD(src); - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(7) +#endif } // CMPI @@ -3395,18 +3811,20 @@ OPCODE(0x0C68) { u32 adr, res; u32 src, dst; - + FETCH_WORD(src); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(13) +#endif } // CMPI @@ -3414,18 +3832,20 @@ OPCODE(0x0C70) { u32 adr, res; u32 src, dst; - + FETCH_WORD(src); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(11) +#endif } // CMPI @@ -3433,17 +3853,19 @@ OPCODE(0x0C78) { u32 adr, res; u32 src, dst; - + FETCH_WORD(src); FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // CMPI @@ -3451,36 +3873,76 @@ OPCODE(0x0C79) { u32 adr, res; u32 src, dst; - + FETCH_WORD(src); FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif +} + +#ifdef OPCODES_M68020 +// CMPI.W #,(d16,PC) - 68020+ +OPCODE(0x0C7A) +{ + u32 adr, res; + u32 src, dst; + + FETCH_WORD(src); + adr = GET_SWORD + ((u32)(PC) - BasePC); + PC++; + READ_WORD_F(adr, dst) + res = dst - src; + flag_N = flag_C = res; + flag_V = (src ^ dst) & (res ^ dst); + flag_NotZ = res & 0xFFFF; + RET(13) +} + +// CMPI.W #,(d8,PC,Xn) / (bd,PC,Xn)... - 68020+ +OPCODE(0x0C7B) +{ + u32 adr, res; + u32 src, dst; + + FETCH_WORD(src); + adr = (u32)(PC) - BasePC; + DECODE_EXT_WORD(&adr); + READ_WORD_F(adr, dst) + res = dst - src; + flag_N = flag_C = res; + flag_V = (src ^ dst) & (res ^ dst); + flag_NotZ = res & 0xFFFF; + RET(11) } +#endif // CMPI OPCODE(0x0C5F) { u32 adr, res; u32 src, dst; - + FETCH_WORD(src); adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // CMPI @@ -3488,34 +3950,40 @@ OPCODE(0x0C67) { u32 adr, res; u32 src, dst; - + FETCH_WORD(src); adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(7) +#endif } // CMPI OPCODE(0x0C80) { - u32 adr, res; + u32 res; u32 src, dst; - + FETCH_LONG(src); - dst = DREGu32((Opcode >> 0) & 7); + dst = DREGu32((Opcode /*>> 0*/) & 7); res = dst - src; flag_NotZ = res; flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(6) +#endif } // CMPI @@ -3523,18 +3991,20 @@ OPCODE(0x0C90) { u32 adr, res; u32 src, dst; - + FETCH_LONG(src); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(6) +#endif } // CMPI @@ -3542,19 +4012,21 @@ OPCODE(0x0C98) { u32 adr, res; u32 src, dst; - + FETCH_LONG(src); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(10) +#endif } // CMPI @@ -3562,19 +4034,21 @@ OPCODE(0x0CA0) { u32 adr, res; u32 src, dst; - + FETCH_LONG(src); - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(9) +#endif } // CMPI @@ -3582,19 +4056,21 @@ OPCODE(0x0CA8) { u32 adr, res; u32 src, dst; - + FETCH_LONG(src); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(15) +#endif } // CMPI @@ -3602,19 +4078,21 @@ OPCODE(0x0CB0) { u32 adr, res; u32 src, dst; - + FETCH_LONG(src); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(13) +#endif } // CMPI @@ -3622,18 +4100,20 @@ OPCODE(0x0CB8) { u32 adr, res; u32 src, dst; - + FETCH_LONG(src); FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(9) +#endif } // CMPI @@ -3641,38 +4121,78 @@ OPCODE(0x0CB9) { u32 adr, res; u32 src, dst; - + FETCH_LONG(src); FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(10) +#endif +} + +#ifdef OPCODES_M68020 +// CMPI.L #,(d16,PC) - 68020+ +OPCODE(0x0CBA) +{ + u32 adr, res; + u32 src, dst; + + FETCH_LONG(src); + adr = GET_SWORD + ((u32)(PC) - BasePC); + PC++; + READ_LONG_F(adr, dst) + res = dst - src; + flag_N = flag_C = res; + flag_V = (src ^ dst) & (res ^ dst); + flag_NotZ = res /*& 0xFFFF*/; + RET(15) +} + +// CMPI.L #,(d8,PC,Xn) / (bd,PC,Xn)... - 68020+ +OPCODE(0x0CBB) +{ + u32 adr, res; + u32 src, dst; + + FETCH_LONG(src); + adr = (u32)(PC) - BasePC; + DECODE_EXT_WORD(&adr); + READ_LONG_F(adr, dst) + res = dst - src; + flag_N = flag_C = res; + flag_V = (src ^ dst) & (res ^ dst); + flag_NotZ = res /*& 0xFFFF*/; + RET(13) } +#endif // CMPI OPCODE(0x0C9F) { u32 adr, res; u32 src, dst; - + FETCH_LONG(src); adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(10) +#endif } // CMPI @@ -3680,1551 +4200,1742 @@ OPCODE(0x0CA7) { u32 adr, res; u32 src, dst; - + FETCH_LONG(src); adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(9) +#endif } -// BTSTn +// BTSTn #.W,Dn OPCODE(0x0800) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; + FETCH_BYTE(src); src = 1 << (src & 31); - res = DREGu32((Opcode >> 0) & 7); + res = DREGu32((Opcode /*>> 0*/) & 7); flag_NotZ = res & src; -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(4) +#endif } -// BTSTn +// BTSTn #.W,(An) OPCODE(0x0810) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_NotZ = res & src; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } -// BTSTn +// BTSTn #.W,(An)+ OPCODE(0x0818) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, res) flag_NotZ = res & src; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(10) +#endif } -// BTSTn +// BTSTn #.W,-(An) OPCODE(0x0820) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, res) flag_NotZ = res & src; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } -// BTSTn +// BTSTn #.W,(d16,An) OPCODE(0x0828) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_NotZ = res & src; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(15) +#endif } -// BTSTn +// BTSTn #.W,(d8,An,Xn) OPCODE(0x0830) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_NotZ = res & src; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(13) +#endif } -// BTSTn +// BTSTn #.W,(xx).W OPCODE(0x0838) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(9) +#endif } -// BTSTn +// BTSTn #.W,(xx).L OPCODE(0x0839) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(10) +#endif } -// BTSTn +// BTSTn #.W,(d16,PC) OPCODE(0x083A) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(15) +#endif } -// BTSTn +// BTSTn #.W,(d8,PC,Xn) OPCODE(0x083B) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_NotZ = res & src; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(13) +#endif } // BTSTn OPCODE(0x081F) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(10) +#endif } // BTSTn OPCODE(0x0827) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // BCHGn OPCODE(0x0840) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; + FETCH_BYTE(src); src = 1 << (src & 31); - res = DREGu32((Opcode >> 0) & 7); + res = DREGu32((Opcode /*>> 0*/) & 7); flag_NotZ = res & src; res ^= src; - DREGu32((Opcode >> 0) & 7) = res; -RET(12) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(12) +#else + RET(4) +#endif } // BCHGn OPCODE(0x0850) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_NotZ = res & src; res ^= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // BCHGn OPCODE(0x0858) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, res) flag_NotZ = res & src; res ^= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // BCHGn OPCODE(0x0860) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, res) flag_NotZ = res & src; res ^= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // BCHGn OPCODE(0x0868) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_NotZ = res & src; res ^= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) -} +#ifdef OPCODES_M68000 + RET(20) +#else + RET(15) +#endif +} // BCHGn OPCODE(0x0870) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_NotZ = res & src; res ^= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(13) +#endif } // BCHGn OPCODE(0x0878) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; res ^= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // BCHGn OPCODE(0x0879) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; res ^= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(10) +#endif } // BCHGn OPCODE(0x085F) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; res ^= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // BCHGn OPCODE(0x0867) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; res ^= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // BCLRn OPCODE(0x0880) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; + FETCH_BYTE(src); src = 1 << (src & 31); - res = DREGu32((Opcode >> 0) & 7); + res = DREGu32((Opcode /*>> 0*/) & 7); flag_NotZ = res & src; res &= ~src; - DREGu32((Opcode >> 0) & 7) = res; -RET(14) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(14) +#else + RET(4) +#endif } // BCLRn OPCODE(0x0890) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_NotZ = res & src; res &= ~src; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // BCLRn OPCODE(0x0898) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, res) flag_NotZ = res & src; res &= ~src; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // BCLRn OPCODE(0x08A0) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, res) flag_NotZ = res & src; res &= ~src; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // BCLRn OPCODE(0x08A8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_NotZ = res & src; res &= ~src; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(15) +#endif } // BCLRn OPCODE(0x08B0) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_NotZ = res & src; res &= ~src; WRITE_BYTE_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(13) +#endif } // BCLRn OPCODE(0x08B8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; res &= ~src; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // BCLRn OPCODE(0x08B9) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; res &= ~src; WRITE_BYTE_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(10) +#endif } // BCLRn OPCODE(0x089F) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; res &= ~src; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // BCLRn OPCODE(0x08A7) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; res &= ~src; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // BSETn OPCODE(0x08C0) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; + FETCH_BYTE(src); src = 1 << (src & 31); - res = DREGu32((Opcode >> 0) & 7); + res = DREGu32((Opcode /*>> 0*/) & 7); flag_NotZ = res & src; res |= src; - DREGu32((Opcode >> 0) & 7) = res; -RET(12) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(12) +#else + RET(4) +#endif } // BSETn OPCODE(0x08D0) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_NotZ = res & src; res |= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // BSETn OPCODE(0x08D8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, res) flag_NotZ = res & src; res |= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // BSETn OPCODE(0x08E0) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, res) flag_NotZ = res & src; res |= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // BSETn OPCODE(0x08E8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_NotZ = res & src; res |= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(15) +#endif } // BSETn OPCODE(0x08F0) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_NotZ = res & src; res |= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(13) +#endif } // BSETn OPCODE(0x08F8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; res |= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // BSETn OPCODE(0x08F9) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; res |= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(10) +#endif } // BSETn OPCODE(0x08DF) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; res |= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // BSETn OPCODE(0x08E7) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_BYTE(src); src = 1 << (src & 7); adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; res |= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // BTST OPCODE(0x0100) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; + src = DREGu32((Opcode >> 9) & 7); src = 1 << (src & 31); - res = DREGu32((Opcode >> 0) & 7); + res = DREGu32((Opcode /*>> 0*/) & 7); flag_NotZ = res & src; -RET(6) +#ifdef OPCODES_M68000 + RET(6) +#else + RET(4) +#endif } // BTST OPCODE(0x0110) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_NotZ = res & src; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(8) +#endif } // BTST OPCODE(0x0118) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, res) flag_NotZ = res & src; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(8) +#endif } // BTST OPCODE(0x0120) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, res) flag_NotZ = res & src; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(9) +#endif } // BTST OPCODE(0x0128) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_NotZ = res & src; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(13) +#endif } // BTST OPCODE(0x0130) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_NotZ = res & src; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(11) +#endif } // BTST OPCODE(0x0138) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // BTST OPCODE(0x0139) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // BTST OPCODE(0x013A) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(9) +#endif } // BTST OPCODE(0x013B) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_NotZ = res & src; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(11) +#endif } // BTST OPCODE(0x013C) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); FETCH_BYTE(res); flag_NotZ = res & src; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // BTST OPCODE(0x011F) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(8) +#endif } // BTST OPCODE(0x0127) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(9) +#endif } // BCHG OPCODE(0x0140) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; + src = DREGu32((Opcode >> 9) & 7); src = 1 << (src & 31); - res = DREGu32((Opcode >> 0) & 7); + res = DREGu32((Opcode /*>> 0*/) & 7); flag_NotZ = res & src; res ^= src; - DREGu32((Opcode >> 0) & 7) = res; -RET(8) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // BCHG OPCODE(0x0150) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_NotZ = res & src; res ^= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // BCHG OPCODE(0x0158) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, res) flag_NotZ = res & src; res ^= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // BCHG OPCODE(0x0160) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, res) flag_NotZ = res & src; res ^= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // BCHG OPCODE(0x0168) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_NotZ = res & src; res ^= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(13) +#endif } // BCHG OPCODE(0x0170) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_NotZ = res & src; res ^= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(11) +#endif } // BCHG OPCODE(0x0178) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; res ^= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // BCHG OPCODE(0x0179) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; res ^= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // BCHG OPCODE(0x015F) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; res ^= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // BCHG OPCODE(0x0167) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; res ^= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // BCLR OPCODE(0x0180) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; + src = DREGu32((Opcode >> 9) & 7); src = 1 << (src & 31); - res = DREGu32((Opcode >> 0) & 7); + res = DREGu32((Opcode /*>> 0*/) & 7); flag_NotZ = res & src; res &= ~src; - DREGu32((Opcode >> 0) & 7) = res; -RET(10) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(10) +#else + RET(4) +#endif } // BCLR OPCODE(0x0190) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_NotZ = res & src; res &= ~src; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // BCLR OPCODE(0x0198) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, res) flag_NotZ = res & src; res &= ~src; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // BCLR OPCODE(0x01A0) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, res) flag_NotZ = res & src; res &= ~src; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // BCLR OPCODE(0x01A8) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_NotZ = res & src; res &= ~src; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(13) +#endif } // BCLR OPCODE(0x01B0) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_NotZ = res & src; res &= ~src; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(11) +#endif } // BCLR OPCODE(0x01B8) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; res &= ~src; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // BCLR OPCODE(0x01B9) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; res &= ~src; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // BCLR OPCODE(0x019F) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; res &= ~src; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // BCLR OPCODE(0x01A7) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; res &= ~src; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // BSET OPCODE(0x01C0) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; + src = DREGu32((Opcode >> 9) & 7); src = 1 << (src & 31); - res = DREGu32((Opcode >> 0) & 7); + res = DREGu32((Opcode /*>> 0*/) & 7); flag_NotZ = res & src; res |= src; - DREGu32((Opcode >> 0) & 7) = res; -RET(8) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // BSET OPCODE(0x01D0) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_NotZ = res & src; res |= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // BSET OPCODE(0x01D8) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, res) flag_NotZ = res & src; res |= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // BSET OPCODE(0x01E0) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, res) flag_NotZ = res & src; res |= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // BSET OPCODE(0x01E8) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_NotZ = res & src; res |= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(13) +#endif } // BSET OPCODE(0x01F0) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_NotZ = res & src; res |= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(11) +#endif } // BSET OPCODE(0x01F8) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; res |= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // BSET OPCODE(0x01F9) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; res |= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // BSET OPCODE(0x01DF) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; res |= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // BSET OPCODE(0x01E7) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); src = 1 << (src & 7); adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, res) flag_NotZ = res & src; res |= src; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // MOVEPWaD OPCODE(0x0108) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr + 0, res) READ_BYTE_F(adr + 2, src) DREGu16((Opcode >> 9) & 7) = (res << 8) | src; - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(12) +#endif } // MOVEPLaD OPCODE(0x0148) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) res <<= 24; adr += 2; @@ -5236,36 +5947,38 @@ OPCODE(0x0148) adr += 2; READ_BYTE_F(adr, src) DREG((Opcode >> 9) & 7) = res | src; - POST_IO -RET(32) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(18) +#endif } // MOVEPWDa OPCODE(0x0188) { u32 adr, res; - u32 src, dst; - + res = DREGu32((Opcode >> 9) & 7); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); WRITE_BYTE_F(adr + 0, res >> 8) WRITE_BYTE_F(adr + 2, res >> 0) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(11) +#endif } // MOVEPLDa OPCODE(0x01C8) { u32 adr, res; - u32 src, dst; - + res = DREGu32((Opcode >> 9) & 7); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); WRITE_BYTE_F(adr, res >> 24) adr += 2; WRITE_BYTE_F(adr, res >> 16) @@ -5273,452 +5986,478 @@ OPCODE(0x01C8) WRITE_BYTE_F(adr, res >> 8) adr += 2; WRITE_BYTE_F(adr, res >> 0) - POST_IO -RET(32) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(17) +#endif } // MOVEB OPCODE(0x1000) { - u32 adr, res; - u32 src, dst; - - res = DREGu8((Opcode >> 0) & 7); + u32 res; + + res = DREGu8((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // MOVEB OPCODE(0x1080) { u32 adr, res; - u32 src, dst; - - res = DREGu8((Opcode >> 0) & 7); + + res = DREGu8((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; adr = AREG((Opcode >> 9) & 7); - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // MOVEB OPCODE(0x10C0) { u32 adr, res; - u32 src, dst; - - res = DREGu8((Opcode >> 0) & 7); + + res = DREGu8((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 1; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // MOVEB OPCODE(0x1100) { u32 adr, res; - u32 src, dst; - - res = DREGu8((Opcode >> 0) & 7); + + res = DREGu8((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; adr = AREG((Opcode >> 9) & 7) - 1; AREG((Opcode >> 9) & 7) = adr; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(5) +#endif } // MOVEB OPCODE(0x1140) { u32 adr, res; - u32 src, dst; - - res = DREGu8((Opcode >> 0) & 7); + + res = DREGu8((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(5) +#endif } // MOVEB OPCODE(0x1180) { u32 adr, res; - u32 src, dst; - - res = DREGu8((Opcode >> 0) & 7); + + res = DREGu8((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(7) +#endif } // MOVEB OPCODE(0x11C0) { u32 adr, res; - u32 src, dst; - - res = DREGu8((Opcode >> 0) & 7); + + res = DREGu8((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; FETCH_SWORD(adr); - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(4) +#endif } // MOVEB OPCODE(0x13C0) { u32 adr, res; - u32 src, dst; - - res = DREGu8((Opcode >> 0) & 7); + + res = DREGu8((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; FETCH_LONG(adr); - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // MOVEB OPCODE(0x1EC0) { u32 adr, res; - u32 src, dst; - - res = DREGu8((Opcode >> 0) & 7); + + res = DREGu8((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; adr = AREG(7); AREG(7) += 2; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // MOVEB OPCODE(0x1F00) { u32 adr, res; - u32 src, dst; - - res = DREGu8((Opcode >> 0) & 7); + + res = DREGu8((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(5) +#endif } // MOVEB OPCODE(0x1008) { - u32 adr, res; - u32 src, dst; - + // u32 res; + // can't read byte from Ax registers ! m68kcontext.execinfo |= M68K_FAULTED; - io_cycle_counter = 0; -/* - goto famec_Exec_End; - flag_C = 0; - flag_V = 0; - flag_NotZ = res; - flag_N = res; - DREGu8((Opcode >> 9) & 7) = res; -*/ -RET(4) + /* + flag_C = 0; + flag_V = 0; + flag_NotZ = res; + flag_N = res; + DREGu8((Opcode >> 9) & 7) = res; + */ +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter = 4; + RET(4) +#else + m68kcontext.io_cycle_counter = 2; + RET(2) +#endif } // MOVEB OPCODE(0x1088) { - u32 adr, res; - u32 src, dst; - + // u32 adr, res; + // can't read byte from Ax registers ! m68kcontext.execinfo |= M68K_FAULTED; - io_cycle_counter = 0; -/* - goto famec_Exec_End; - flag_C = 0; - flag_V = 0; - flag_NotZ = res; - flag_N = res; - adr = AREG((Opcode >> 9) & 7); - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO -*/ -RET(8) + /* + flag_C = 0; + flag_V = 0; + flag_NotZ = res; + flag_N = res; + adr = AREG((Opcode >> 9) & 7); + WRITE_BYTE_F(adr, res) + */ +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter = 8; + RET(8) +#else + m68kcontext.io_cycle_counter = 4; + RET(4) +#endif } // MOVEB OPCODE(0x10C8) { - u32 adr, res; - u32 src, dst; - + // u32 adr, res; + // can't read byte from Ax registers ! m68kcontext.execinfo |= M68K_FAULTED; - io_cycle_counter = 0; -/* - goto famec_Exec_End; - flag_C = 0; - flag_V = 0; - flag_NotZ = res; - flag_N = res; - adr = AREG((Opcode >> 9) & 7); - AREG((Opcode >> 9) & 7) += 1; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO -*/ -RET(8) + /* + flag_C = 0; + flag_V = 0; + flag_NotZ = res; + flag_N = res; + adr = AREG((Opcode >> 9) & 7); + AREG((Opcode >> 9) & 7) += 1; + WRITE_BYTE_F(adr, res) + */ +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter = 8; + RET(8) +#else + m68kcontext.io_cycle_counter = 4; + RET(4) +#endif } // MOVEB OPCODE(0x1108) { - u32 adr, res; - u32 src, dst; - + // u32 adr, res; + // can't read byte from Ax registers ! m68kcontext.execinfo |= M68K_FAULTED; - io_cycle_counter = 0; -/* - goto famec_Exec_End; - flag_C = 0; - flag_V = 0; - flag_NotZ = res; - flag_N = res; - adr = AREG((Opcode >> 9) & 7) - 1; - AREG((Opcode >> 9) & 7) = adr; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO -*/ -RET(8) + /* + flag_C = 0; + flag_V = 0; + flag_NotZ = res; + flag_N = res; + adr = AREG((Opcode >> 9) & 7) - 1; + AREG((Opcode >> 9) & 7) = adr; + WRITE_BYTE_F(adr, res) + */ +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter = 8; + RET(8) +#else + m68kcontext.io_cycle_counter = 5; + RET(5) +#endif } // MOVEB OPCODE(0x1148) { - u32 adr, res; - u32 src, dst; - + // u32 adr, res; + // can't read byte from Ax registers ! m68kcontext.execinfo |= M68K_FAULTED; - io_cycle_counter = 0; -/* - goto famec_Exec_End; - flag_C = 0; - flag_V = 0; - flag_NotZ = res; - flag_N = res; - FETCH_SWORD(adr); - adr += AREG((Opcode >> 9) & 7); - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO -*/ -RET(12) + /* + flag_C = 0; + flag_V = 0; + flag_NotZ = res; + flag_N = res; + FETCH_SWORD(adr); + adr += AREG((Opcode >> 9) & 7); + WRITE_BYTE_F(adr, res) + */ +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter = 12; + RET(12) +#else + m68kcontext.io_cycle_counter = 5; + RET(5) +#endif } // MOVEB OPCODE(0x1188) { - u32 adr, res; - u32 src, dst; - + // u32 adr, res; + // can't read byte from Ax registers ! m68kcontext.execinfo |= M68K_FAULTED; - io_cycle_counter = 0; -/* - goto famec_Exec_End; - flag_C = 0; - flag_V = 0; - flag_NotZ = res; - flag_N = res; - adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO -*/ -RET(14) + /* + flag_C = 0; + flag_V = 0; + flag_NotZ = res; + flag_N = res; + adr = AREG((Opcode >> 9) & 7); + DECODE_EXT_WORD(&adr); + WRITE_BYTE_F(adr, res) + */ +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter = 14; + RET(14) +#else + m68kcontext.io_cycle_counter = 7; + RET(7) +#endif } // MOVEB OPCODE(0x11C8) { - u32 adr, res; - u32 src, dst; - + // u32 adr, res; + // can't read byte from Ax registers ! m68kcontext.execinfo |= M68K_FAULTED; - io_cycle_counter = 0; -/* - goto famec_Exec_End; - flag_C = 0; - flag_V = 0; - flag_NotZ = res; - flag_N = res; - FETCH_SWORD(adr); - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO -*/ -RET(12) + /* + flag_C = 0; + flag_V = 0; + flag_NotZ = res; + flag_N = res; + FETCH_SWORD(adr); + WRITE_BYTE_F(adr, res) + */ +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter = 12; + RET(12) +#else + m68kcontext.io_cycle_counter = 4; + RET(4) +#endif } // MOVEB OPCODE(0x13C8) { - u32 adr, res; - u32 src, dst; - + // u32 adr, res; + // can't read byte from Ax registers ! m68kcontext.execinfo |= M68K_FAULTED; - io_cycle_counter = 0; -/* - goto famec_Exec_End; - flag_C = 0; - flag_V = 0; - flag_NotZ = res; - flag_N = res; - FETCH_LONG(adr); - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO -*/ -RET(16) + /* + flag_C = 0; + flag_V = 0; + flag_NotZ = res; + flag_N = res; + FETCH_LONG(adr); + WRITE_BYTE_F(adr, res) + */ +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter = 16; + RET(16) +#else + m68kcontext.io_cycle_counter = 6; + RET(6) +#endif } // MOVEB OPCODE(0x1EC8) { - u32 adr, res; - u32 src, dst; - + // u32 adr, res; + // can't read byte from Ax registers ! m68kcontext.execinfo |= M68K_FAULTED; - io_cycle_counter = 0; -/* - goto famec_Exec_End; - flag_C = 0; - flag_V = 0; - flag_NotZ = res; - flag_N = res; - adr = AREG(7); - AREG(7) += 2; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO -*/ -RET(8) + /* + flag_C = 0; + flag_V = 0; + flag_NotZ = res; + flag_N = res; + adr = AREG(7); + AREG(7) += 2; + WRITE_BYTE_F(adr, res) + */ +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter = 8; + RET(8) +#else + m68kcontext.io_cycle_counter = 4; + RET(4) +#endif } // MOVEB OPCODE(0x1F08) { - u32 adr, res; - u32 src, dst; - + // u32 adr, res; + // can't read byte from Ax registers ! m68kcontext.execinfo |= M68K_FAULTED; - io_cycle_counter = 0; -/* - goto famec_Exec_End; - flag_C = 0; - flag_V = 0; - flag_NotZ = res; - flag_N = res; - adr = AREG(7) - 2; - AREG(7) = adr; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO -*/ -RET(8) + /* + flag_C = 0; + flag_V = 0; + flag_NotZ = res; + flag_N = res; + adr = AREG(7) - 2; + AREG(7) = adr; + WRITE_BYTE_F(adr, res) + */ +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter = 8; + RET(8) +#else + m68kcontext.io_cycle_counter = 5; + RET(5) +#endif } // MOVEB OPCODE(0x1010) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // MOVEB OPCODE(0x1090) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -5726,18 +6465,19 @@ OPCODE(0x1090) flag_N = res; adr = AREG((Opcode >> 9) & 7); WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEB OPCODE(0x10D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -5746,18 +6486,19 @@ OPCODE(0x10D0) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 1; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEB OPCODE(0x1110) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -5766,18 +6507,19 @@ OPCODE(0x1110) adr = AREG((Opcode >> 9) & 7) - 1; AREG((Opcode >> 9) & 7) = adr; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEB OPCODE(0x1150) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -5786,38 +6528,40 @@ OPCODE(0x1150) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // MOVEB OPCODE(0x1190) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // MOVEB OPCODE(0x11D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -5825,18 +6569,19 @@ OPCODE(0x11D0) flag_N = res; FETCH_SWORD(adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // MOVEB OPCODE(0x13D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -5844,18 +6589,19 @@ OPCODE(0x13D0) flag_N = res; FETCH_LONG(adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // MOVEB OPCODE(0x1ED0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -5864,18 +6610,19 @@ OPCODE(0x1ED0) adr = AREG(7); AREG(7) += 2; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEB OPCODE(0x1F10) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -5884,38 +6631,40 @@ OPCODE(0x1F10) adr = AREG(7) - 2; AREG(7) = adr; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEB OPCODE(0x1018) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // MOVEB OPCODE(0x1098) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -5923,19 +6672,20 @@ OPCODE(0x1098) flag_N = res; adr = AREG((Opcode >> 9) & 7); WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEB OPCODE(0x10D8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -5944,19 +6694,20 @@ OPCODE(0x10D8) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 1; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEB OPCODE(0x1118) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -5965,19 +6716,20 @@ OPCODE(0x1118) adr = AREG((Opcode >> 9) & 7) - 1; AREG((Opcode >> 9) & 7) = adr; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEB OPCODE(0x1158) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -5986,40 +6738,42 @@ OPCODE(0x1158) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // MOVEB OPCODE(0x1198) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // MOVEB OPCODE(0x11D8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6027,19 +6781,20 @@ OPCODE(0x11D8) flag_N = res; FETCH_SWORD(adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // MOVEB OPCODE(0x13D8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6047,19 +6802,20 @@ OPCODE(0x13D8) flag_N = res; FETCH_LONG(adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // MOVEB OPCODE(0x1ED8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6068,19 +6824,20 @@ OPCODE(0x1ED8) adr = AREG(7); AREG(7) += 2; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEB OPCODE(0x1F18) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6089,38 +6846,40 @@ OPCODE(0x1F18) adr = AREG(7) - 2; AREG(7) = adr; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEB OPCODE(0x1020) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(7) +#endif } // MOVEB OPCODE(0x10A0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6128,19 +6887,20 @@ OPCODE(0x10A0) flag_N = res; adr = AREG((Opcode >> 9) & 7); WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } // MOVEB OPCODE(0x10E0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6149,19 +6909,20 @@ OPCODE(0x10E0) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 1; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } // MOVEB OPCODE(0x1120) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6170,19 +6931,20 @@ OPCODE(0x1120) adr = AREG((Opcode >> 9) & 7) - 1; AREG((Opcode >> 9) & 7) = adr; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } // MOVEB OPCODE(0x1160) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6191,40 +6953,42 @@ OPCODE(0x1160) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(8) +#endif } // MOVEB OPCODE(0x11A0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(10) +#endif } // MOVEB OPCODE(0x11E0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6232,19 +6996,20 @@ OPCODE(0x11E0) flag_N = res; FETCH_SWORD(adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(8) +#endif } // MOVEB OPCODE(0x13E0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6252,19 +7017,20 @@ OPCODE(0x13E0) flag_N = res; FETCH_LONG(adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(10) +#endif } // MOVEB OPCODE(0x1EE0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6273,19 +7039,20 @@ OPCODE(0x1EE0) adr = AREG(7); AREG(7) += 2; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } // MOVEB OPCODE(0x1F20) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6294,38 +7061,40 @@ OPCODE(0x1F20) adr = AREG(7) - 2; AREG(7) = adr; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } // MOVEB OPCODE(0x1028) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEB OPCODE(0x10A8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6333,19 +7102,20 @@ OPCODE(0x10A8) flag_N = res; adr = AREG((Opcode >> 9) & 7); WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // MOVEB OPCODE(0x10E8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6354,19 +7124,20 @@ OPCODE(0x10E8) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 1; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // MOVEB OPCODE(0x1128) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6375,19 +7146,20 @@ OPCODE(0x1128) adr = AREG((Opcode >> 9) & 7) - 1; AREG((Opcode >> 9) & 7) = adr; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // MOVEB OPCODE(0x1168) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6396,40 +7168,42 @@ OPCODE(0x1168) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // MOVEB OPCODE(0x11A8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(10) +#endif } // MOVEB OPCODE(0x11E8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6437,19 +7211,20 @@ OPCODE(0x11E8) flag_N = res; FETCH_SWORD(adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // MOVEB OPCODE(0x13E8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6457,19 +7232,20 @@ OPCODE(0x13E8) flag_N = res; FETCH_LONG(adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(10) +#endif } // MOVEB OPCODE(0x1EE8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6478,19 +7254,20 @@ OPCODE(0x1EE8) adr = AREG(7); AREG(7) += 2; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // MOVEB OPCODE(0x1F28) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6499,38 +7276,40 @@ OPCODE(0x1F28) adr = AREG(7) - 2; AREG(7) = adr; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // MOVEB OPCODE(0x1030) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // MOVEB OPCODE(0x10B0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6538,19 +7317,20 @@ OPCODE(0x10B0) flag_N = res; adr = AREG((Opcode >> 9) & 7); WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } // MOVEB OPCODE(0x10F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6559,19 +7339,20 @@ OPCODE(0x10F0) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 1; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } // MOVEB OPCODE(0x1130) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6580,19 +7361,20 @@ OPCODE(0x1130) adr = AREG((Opcode >> 9) & 7) - 1; AREG((Opcode >> 9) & 7) = adr; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } // MOVEB OPCODE(0x1170) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6601,40 +7383,42 @@ OPCODE(0x1170) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_BYTE_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(10) +#endif } // MOVEB OPCODE(0x11B0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(12) +#endif } // MOVEB OPCODE(0x11F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6642,19 +7426,20 @@ OPCODE(0x11F0) flag_N = res; FETCH_SWORD(adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(10) +#endif } // MOVEB OPCODE(0x13F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6662,19 +7447,20 @@ OPCODE(0x13F0) flag_N = res; FETCH_LONG(adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(12) +#endif } // MOVEB OPCODE(0x1EF0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6683,19 +7469,20 @@ OPCODE(0x1EF0) adr = AREG(7); AREG(7) += 2; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } // MOVEB OPCODE(0x1F30) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6704,36 +7491,38 @@ OPCODE(0x1F30) adr = AREG(7) - 2; AREG(7) = adr; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } // MOVEB OPCODE(0x1038) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // MOVEB OPCODE(0x10B8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6741,18 +7530,19 @@ OPCODE(0x10B8) flag_N = res; adr = AREG((Opcode >> 9) & 7); WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // MOVEB OPCODE(0x10F8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6761,18 +7551,19 @@ OPCODE(0x10F8) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 1; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // MOVEB OPCODE(0x1138) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6781,18 +7572,19 @@ OPCODE(0x1138) adr = AREG((Opcode >> 9) & 7) - 1; AREG((Opcode >> 9) & 7) = adr; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // MOVEB OPCODE(0x1178) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6801,38 +7593,40 @@ OPCODE(0x1178) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(7) +#endif } // MOVEB OPCODE(0x11B8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(9) +#endif } // MOVEB OPCODE(0x11F8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6840,18 +7634,19 @@ OPCODE(0x11F8) flag_N = res; FETCH_SWORD(adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(7) +#endif } // MOVEB OPCODE(0x13F8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6859,18 +7654,19 @@ OPCODE(0x13F8) flag_N = res; FETCH_LONG(adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(9) +#endif } // MOVEB OPCODE(0x1EF8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6879,18 +7675,19 @@ OPCODE(0x1EF8) adr = AREG(7); AREG(7) += 2; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // MOVEB OPCODE(0x1F38) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6899,36 +7696,38 @@ OPCODE(0x1F38) adr = AREG(7) - 2; AREG(7) = adr; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // MOVEB OPCODE(0x1039) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // MOVEB OPCODE(0x10B9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6936,18 +7735,19 @@ OPCODE(0x10B9) flag_N = res; adr = AREG((Opcode >> 9) & 7); WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(7) +#endif } // MOVEB OPCODE(0x10F9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6956,18 +7756,19 @@ OPCODE(0x10F9) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 1; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(7) +#endif } // MOVEB OPCODE(0x1139) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6976,18 +7777,19 @@ OPCODE(0x1139) adr = AREG((Opcode >> 9) & 7) - 1; AREG((Opcode >> 9) & 7) = adr; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(7) +#endif } // MOVEB OPCODE(0x1179) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -6996,38 +7798,40 @@ OPCODE(0x1179) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_BYTE_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(7) +#endif } // MOVEB OPCODE(0x11B9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(9) +#endif } // MOVEB OPCODE(0x11F9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7035,18 +7839,19 @@ OPCODE(0x11F9) flag_N = res; FETCH_SWORD(adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(7) +#endif } // MOVEB OPCODE(0x13F9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7054,18 +7859,19 @@ OPCODE(0x13F9) flag_N = res; FETCH_LONG(adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(9) +#endif } // MOVEB OPCODE(0x1EF9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7074,18 +7880,19 @@ OPCODE(0x1EF9) adr = AREG(7); AREG(7) += 2; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(7) +#endif } // MOVEB OPCODE(0x1F39) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7094,38 +7901,40 @@ OPCODE(0x1F39) adr = AREG(7) - 2; AREG(7) = adr; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(7) +#endif } // MOVEB OPCODE(0x103A) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEB OPCODE(0x10BA) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7133,19 +7942,20 @@ OPCODE(0x10BA) flag_N = res; adr = AREG((Opcode >> 9) & 7); WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // MOVEB OPCODE(0x10FA) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7154,19 +7964,20 @@ OPCODE(0x10FA) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 1; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // MOVEB OPCODE(0x113A) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7175,19 +7986,20 @@ OPCODE(0x113A) adr = AREG((Opcode >> 9) & 7) - 1; AREG((Opcode >> 9) & 7) = adr; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // MOVEB OPCODE(0x117A) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7196,40 +8008,42 @@ OPCODE(0x117A) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // MOVEB OPCODE(0x11BA) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(10) +#endif } // MOVEB OPCODE(0x11FA) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7237,19 +8051,20 @@ OPCODE(0x11FA) flag_N = res; FETCH_SWORD(adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // MOVEB OPCODE(0x13FA) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7257,19 +8072,20 @@ OPCODE(0x13FA) flag_N = res; FETCH_LONG(adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(10) +#endif } // MOVEB OPCODE(0x1EFA) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7278,19 +8094,20 @@ OPCODE(0x1EFA) adr = AREG(7); AREG(7) += 2; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // MOVEB OPCODE(0x1F3A) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7299,38 +8116,40 @@ OPCODE(0x1F3A) adr = AREG(7) - 2; AREG(7) = adr; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // MOVEB OPCODE(0x103B) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // MOVEB OPCODE(0x10BB) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7338,19 +8157,20 @@ OPCODE(0x10BB) flag_N = res; adr = AREG((Opcode >> 9) & 7); WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } // MOVEB OPCODE(0x10FB) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7359,19 +8179,20 @@ OPCODE(0x10FB) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 1; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } // MOVEB OPCODE(0x113B) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7380,19 +8201,20 @@ OPCODE(0x113B) adr = AREG((Opcode >> 9) & 7) - 1; AREG((Opcode >> 9) & 7) = adr; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } // MOVEB OPCODE(0x117B) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7401,40 +8223,42 @@ OPCODE(0x117B) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_BYTE_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(10) +#endif } // MOVEB OPCODE(0x11BB) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(12) +#endif } // MOVEB OPCODE(0x11FB) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7442,19 +8266,20 @@ OPCODE(0x11FB) flag_N = res; FETCH_SWORD(adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(10) +#endif } // MOVEB OPCODE(0x13FB) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7462,19 +8287,20 @@ OPCODE(0x13FB) flag_N = res; FETCH_LONG(adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(12) +#endif } // MOVEB OPCODE(0x1EFB) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7483,19 +8309,20 @@ OPCODE(0x1EFB) adr = AREG(7); AREG(7) += 2; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } // MOVEB OPCODE(0x1F3B) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7504,49 +8331,55 @@ OPCODE(0x1F3B) adr = AREG(7) - 2; AREG(7) = adr; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } // MOVEB OPCODE(0x103C) { u32 adr, res; - u32 src, dst; - + FETCH_BYTE(res); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // MOVEB OPCODE(0x10BC) { u32 adr, res; - u32 src, dst; - + FETCH_BYTE(res); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; adr = AREG((Opcode >> 9) & 7); - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO -RET(12) -} - -// MOVEB +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif +} + +// MOVEB OPCODE(0x10FC) { u32 adr, res; - u32 src, dst; - + FETCH_BYTE(res); flag_C = 0; flag_V = 0; @@ -7554,18 +8387,19 @@ OPCODE(0x10FC) flag_N = res; adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 1; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // MOVEB OPCODE(0x113C) { u32 adr, res; - u32 src, dst; - + FETCH_BYTE(res); flag_C = 0; flag_V = 0; @@ -7573,18 +8407,19 @@ OPCODE(0x113C) flag_N = res; adr = AREG((Opcode >> 9) & 7) - 1; AREG((Opcode >> 9) & 7) = adr; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEB OPCODE(0x117C) { u32 adr, res; - u32 src, dst; - + FETCH_BYTE(res); flag_C = 0; flag_V = 0; @@ -7592,73 +8427,77 @@ OPCODE(0x117C) flag_N = res; FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // MOVEB OPCODE(0x11BC) { u32 adr, res; - u32 src, dst; - + FETCH_BYTE(res); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(7) +#endif } // MOVEB OPCODE(0x11FC) { u32 adr, res; - u32 src, dst; - + FETCH_BYTE(res); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; FETCH_SWORD(adr); - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // MOVEB OPCODE(0x13FC) { u32 adr, res; - u32 src, dst; - + FETCH_BYTE(res); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; FETCH_LONG(adr); - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // MOVEB OPCODE(0x1EFC) { u32 adr, res; - u32 src, dst; - + FETCH_BYTE(res); flag_C = 0; flag_V = 0; @@ -7666,18 +8505,19 @@ OPCODE(0x1EFC) flag_N = res; adr = AREG(7); AREG(7) += 2; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // MOVEB OPCODE(0x1F3C) { u32 adr, res; - u32 src, dst; - + FETCH_BYTE(res); flag_C = 0; flag_V = 0; @@ -7685,40 +8525,41 @@ OPCODE(0x1F3C) flag_N = res; adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEB OPCODE(0x101F) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // MOVEB OPCODE(0x109F) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7726,19 +8567,20 @@ OPCODE(0x109F) flag_N = res; adr = AREG((Opcode >> 9) & 7); WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEB OPCODE(0x10DF) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7747,19 +8589,20 @@ OPCODE(0x10DF) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 1; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEB OPCODE(0x111F) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7768,19 +8611,20 @@ OPCODE(0x111F) adr = AREG((Opcode >> 9) & 7) - 1; AREG((Opcode >> 9) & 7) = adr; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEB OPCODE(0x115F) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7789,40 +8633,42 @@ OPCODE(0x115F) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // MOVEB OPCODE(0x119F) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // MOVEB OPCODE(0x11DF) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7830,19 +8676,20 @@ OPCODE(0x11DF) flag_N = res; FETCH_SWORD(adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // MOVEB OPCODE(0x13DF) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7850,19 +8697,20 @@ OPCODE(0x13DF) flag_N = res; FETCH_LONG(adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // MOVEB OPCODE(0x1EDF) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7871,19 +8719,20 @@ OPCODE(0x1EDF) adr = AREG(7); AREG(7) += 2; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEB OPCODE(0x1F1F) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7892,38 +8741,40 @@ OPCODE(0x1F1F) adr = AREG(7) - 2; AREG(7) = adr; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEB OPCODE(0x1027) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(7) +#endif } // MOVEB OPCODE(0x10A7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7931,19 +8782,20 @@ OPCODE(0x10A7) flag_N = res; adr = AREG((Opcode >> 9) & 7); WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } // MOVEB OPCODE(0x10E7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7952,19 +8804,20 @@ OPCODE(0x10E7) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 1; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } // MOVEB OPCODE(0x1127) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7973,19 +8826,20 @@ OPCODE(0x1127) adr = AREG((Opcode >> 9) & 7) - 1; AREG((Opcode >> 9) & 7) = adr; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } // MOVEB OPCODE(0x1167) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -7994,40 +8848,42 @@ OPCODE(0x1167) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(8) +#endif } // MOVEB OPCODE(0x11A7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(10) +#endif } // MOVEB OPCODE(0x11E7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -8035,19 +8891,20 @@ OPCODE(0x11E7) flag_N = res; FETCH_SWORD(adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(8) +#endif } // MOVEB OPCODE(0x13E7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -8055,19 +8912,20 @@ OPCODE(0x13E7) flag_N = res; FETCH_LONG(adr); WRITE_BYTE_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(10) +#endif } // MOVEB OPCODE(0x1EE7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -8076,19 +8934,20 @@ OPCODE(0x1EE7) adr = AREG(7); AREG(7) += 2; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } // MOVEB OPCODE(0x1F27) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; @@ -8097,402 +8956,428 @@ OPCODE(0x1F27) adr = AREG(7) - 2; AREG(7) = adr; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } // MOVEL OPCODE(0x2000) { - u32 adr, res; - u32 src, dst; - - res = DREGu32((Opcode >> 0) & 7); + u32 res; + + res = DREGu32((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // MOVEL OPCODE(0x2080) { u32 adr, res; - u32 src, dst; - - res = DREGu32((Opcode >> 0) & 7); + + res = DREGu32((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(4) +#endif } // MOVEL OPCODE(0x20C0) { u32 adr, res; - u32 src, dst; - - res = DREGu32((Opcode >> 0) & 7); + + res = DREGu32((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 4; - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(4) +#endif } // MOVEL OPCODE(0x2100) { u32 adr, res; - u32 src, dst; - - res = DREGu32((Opcode >> 0) & 7); + + res = DREGu32((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7) - 4; AREG((Opcode >> 9) & 7) = adr; - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(5) +#endif } // MOVEL OPCODE(0x2140) { u32 adr, res; - u32 src, dst; - - res = DREGu32((Opcode >> 0) & 7); + + res = DREGu32((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(5) +#endif } // MOVEL OPCODE(0x2180) { u32 adr, res; - u32 src, dst; - - res = DREGu32((Opcode >> 0) & 7); + + res = DREGu32((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); WRITE_LONG_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(7) +#endif } // MOVEL OPCODE(0x21C0) { u32 adr, res; - u32 src, dst; - - res = DREGu32((Opcode >> 0) & 7); + + res = DREGu32((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; FETCH_SWORD(adr); - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(4) +#endif } // MOVEL OPCODE(0x23C0) { u32 adr, res; - u32 src, dst; - - res = DREGu32((Opcode >> 0) & 7); + + res = DREGu32((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; FETCH_LONG(adr); - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(6) +#endif } // MOVEL OPCODE(0x2EC0) { u32 adr, res; - u32 src, dst; - - res = DREGu32((Opcode >> 0) & 7); + + res = DREGu32((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; adr = AREG(7); AREG(7) += 4; - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(4) +#endif } // MOVEL OPCODE(0x2F00) { u32 adr, res; - u32 src, dst; - - res = DREGu32((Opcode >> 0) & 7); + + res = DREGu32((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(5) +#endif } // MOVEL OPCODE(0x2008) { u32 adr, res; - u32 src, dst; - - res = AREGu32((Opcode >> 0) & 7); + + res = AREGu32((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // MOVEL OPCODE(0x2088) { u32 adr, res; - u32 src, dst; - - res = AREGu32((Opcode >> 0) & 7); + + res = AREGu32((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(4) +#endif } // MOVEL OPCODE(0x20C8) { u32 adr, res; - u32 src, dst; - - res = AREGu32((Opcode >> 0) & 7); + + res = AREGu32((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 4; - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(4) +#endif } // MOVEL OPCODE(0x2108) { u32 adr, res; - u32 src, dst; - - res = AREGu32((Opcode >> 0) & 7); + + res = AREGu32((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7) - 4; AREG((Opcode >> 9) & 7) = adr; - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(5) +#endif } // MOVEL OPCODE(0x2148) { u32 adr, res; - u32 src, dst; - - res = AREGu32((Opcode >> 0) & 7); + + res = AREGu32((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(5) +#endif } // MOVEL OPCODE(0x2188) { u32 adr, res; - u32 src, dst; - - res = AREGu32((Opcode >> 0) & 7); + + res = AREGu32((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); WRITE_LONG_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(7) +#endif } // MOVEL OPCODE(0x21C8) { u32 adr, res; - u32 src, dst; - - res = AREGu32((Opcode >> 0) & 7); + + res = AREGu32((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; FETCH_SWORD(adr); - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(4) +#endif } // MOVEL OPCODE(0x23C8) { u32 adr, res; - u32 src, dst; - - res = AREGu32((Opcode >> 0) & 7); + + res = AREGu32((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; FETCH_LONG(adr); - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(6) +#endif } // MOVEL OPCODE(0x2EC8) { u32 adr, res; - u32 src, dst; - - res = AREGu32((Opcode >> 0) & 7); + + res = AREGu32((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; adr = AREG(7); AREG(7) += 4; - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(4) +#endif } // MOVEL OPCODE(0x2F08) { u32 adr, res; - u32 src, dst; - - res = AREGu32((Opcode >> 0) & 7); + + res = AREGu32((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(5) +#endif } // MOVEL OPCODE(0x2010) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // MOVEL OPCODE(0x2090) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -8500,18 +9385,19 @@ OPCODE(0x2090) flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(7) +#endif } // MOVEL OPCODE(0x20D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -8520,18 +9406,19 @@ OPCODE(0x20D0) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 4; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(7) +#endif } // MOVEL OPCODE(0x2110) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -8540,18 +9427,19 @@ OPCODE(0x2110) adr = AREG((Opcode >> 9) & 7) - 4; AREG((Opcode >> 9) & 7) = adr; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(7) +#endif } // MOVEL OPCODE(0x2150) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -8560,38 +9448,40 @@ OPCODE(0x2150) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(7) +#endif } // MOVEL OPCODE(0x2190) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_LONG_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(9) +#endif } // MOVEL OPCODE(0x21D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -8599,18 +9489,19 @@ OPCODE(0x21D0) flag_N = res >> 24; FETCH_SWORD(adr); WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(7) +#endif } // MOVEL OPCODE(0x23D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -8618,18 +9509,19 @@ OPCODE(0x23D0) flag_N = res >> 24; FETCH_LONG(adr); WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(9) +#endif } // MOVEL OPCODE(0x2ED0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -8638,18 +9530,19 @@ OPCODE(0x2ED0) adr = AREG(7); AREG(7) += 4; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(7) +#endif } // MOVEL OPCODE(0x2F10) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -8658,38 +9551,40 @@ OPCODE(0x2F10) adr = AREG(7) - 4; AREG(7) = adr; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(7) +#endif } // MOVEL OPCODE(0x2018) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // MOVEL OPCODE(0x2098) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -8697,19 +9592,20 @@ OPCODE(0x2098) flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(7) +#endif } // MOVEL OPCODE(0x20D8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -8718,19 +9614,20 @@ OPCODE(0x20D8) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 4; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(7) +#endif } // MOVEL OPCODE(0x2118) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -8739,19 +9636,20 @@ OPCODE(0x2118) adr = AREG((Opcode >> 9) & 7) - 4; AREG((Opcode >> 9) & 7) = adr; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(7) +#endif } // MOVEL OPCODE(0x2158) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -8760,40 +9658,42 @@ OPCODE(0x2158) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(7) +#endif } // MOVEL OPCODE(0x2198) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_LONG_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(9) +#endif } // MOVEL OPCODE(0x21D8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -8801,19 +9701,20 @@ OPCODE(0x21D8) flag_N = res >> 24; FETCH_SWORD(adr); WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(7) +#endif } // MOVEL OPCODE(0x23D8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -8821,19 +9722,20 @@ OPCODE(0x23D8) flag_N = res >> 24; FETCH_LONG(adr); WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(9) +#endif } // MOVEL OPCODE(0x2ED8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -8842,19 +9744,20 @@ OPCODE(0x2ED8) adr = AREG(7); AREG(7) += 4; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(7) +#endif } // MOVEL OPCODE(0x2F18) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -8863,38 +9766,40 @@ OPCODE(0x2F18) adr = AREG(7) - 4; AREG(7) = adr; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(7) +#endif } // MOVEL OPCODE(0x2020) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(7) +#endif } // MOVEL OPCODE(0x20A0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -8902,19 +9807,20 @@ OPCODE(0x20A0) flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(8) +#endif } // MOVEL OPCODE(0x20E0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -8923,19 +9829,20 @@ OPCODE(0x20E0) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 4; WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(8) +#endif } // MOVEL OPCODE(0x2120) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -8944,19 +9851,20 @@ OPCODE(0x2120) adr = AREG((Opcode >> 9) & 7) - 4; AREG((Opcode >> 9) & 7) = adr; WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(8) +#endif } // MOVEL OPCODE(0x2160) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -8965,40 +9873,42 @@ OPCODE(0x2160) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_LONG_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(8) +#endif } // MOVEL OPCODE(0x21A0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(10) +#endif } // MOVEL OPCODE(0x21E0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9006,19 +9916,20 @@ OPCODE(0x21E0) flag_N = res >> 24; FETCH_SWORD(adr); WRITE_LONG_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(8) +#endif } // MOVEL OPCODE(0x23E0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9026,19 +9937,20 @@ OPCODE(0x23E0) flag_N = res >> 24; FETCH_LONG(adr); WRITE_LONG_F(adr, res) - POST_IO -RET(30) +#ifdef OPCODES_M68000 + RET(30) +#else + RET(10) +#endif } // MOVEL OPCODE(0x2EE0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9047,19 +9959,20 @@ OPCODE(0x2EE0) adr = AREG(7); AREG(7) += 4; WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(8) +#endif } // MOVEL OPCODE(0x2F20) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9068,38 +9981,40 @@ OPCODE(0x2F20) adr = AREG(7) - 4; AREG(7) = adr; WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(8) +#endif } // MOVEL OPCODE(0x2028) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // MOVEL OPCODE(0x20A8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9107,19 +10022,20 @@ OPCODE(0x20A8) flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(8) +#endif } // MOVEL OPCODE(0x20E8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9128,19 +10044,20 @@ OPCODE(0x20E8) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 4; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(8) +#endif } // MOVEL OPCODE(0x2128) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9149,19 +10066,20 @@ OPCODE(0x2128) adr = AREG((Opcode >> 9) & 7) - 4; AREG((Opcode >> 9) & 7) = adr; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(8) +#endif } // MOVEL OPCODE(0x2168) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9170,40 +10088,42 @@ OPCODE(0x2168) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(8) +#endif } // MOVEL OPCODE(0x21A8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_LONG_F(adr, res) - POST_IO -RET(30) +#ifdef OPCODES_M68000 + RET(30) +#else + RET(10) +#endif } // MOVEL OPCODE(0x21E8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9211,19 +10131,20 @@ OPCODE(0x21E8) flag_N = res >> 24; FETCH_SWORD(adr); WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(8) +#endif } // MOVEL OPCODE(0x23E8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9231,19 +10152,20 @@ OPCODE(0x23E8) flag_N = res >> 24; FETCH_LONG(adr); WRITE_LONG_F(adr, res) - POST_IO -RET(32) +#ifdef OPCODES_M68000 + RET(32) +#else + RET(10) +#endif } // MOVEL OPCODE(0x2EE8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9252,19 +10174,20 @@ OPCODE(0x2EE8) adr = AREG(7); AREG(7) += 4; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(8) +#endif } // MOVEL OPCODE(0x2F28) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9273,38 +10196,40 @@ OPCODE(0x2F28) adr = AREG(7) - 4; AREG(7) = adr; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(8) +#endif } // MOVEL OPCODE(0x2030) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // MOVEL OPCODE(0x20B0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9312,19 +10237,20 @@ OPCODE(0x20B0) flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); WRITE_LONG_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(10) +#endif } // MOVEL OPCODE(0x20F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9333,19 +10259,20 @@ OPCODE(0x20F0) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 4; WRITE_LONG_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(10) +#endif } // MOVEL OPCODE(0x2130) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9354,19 +10281,20 @@ OPCODE(0x2130) adr = AREG((Opcode >> 9) & 7) - 4; AREG((Opcode >> 9) & 7) = adr; WRITE_LONG_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(10) +#endif } // MOVEL OPCODE(0x2170) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9375,40 +10303,42 @@ OPCODE(0x2170) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_LONG_F(adr, res) - POST_IO -RET(30) +#ifdef OPCODES_M68000 + RET(30) +#else + RET(10) +#endif } // MOVEL OPCODE(0x21B0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_LONG_F(adr, res) - POST_IO -RET(32) +#ifdef OPCODES_M68000 + RET(32) +#else + RET(12) +#endif } // MOVEL OPCODE(0x21F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9416,19 +10346,20 @@ OPCODE(0x21F0) flag_N = res >> 24; FETCH_SWORD(adr); WRITE_LONG_F(adr, res) - POST_IO -RET(30) +#ifdef OPCODES_M68000 + RET(30) +#else + RET(10) +#endif } // MOVEL OPCODE(0x23F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9436,19 +10367,20 @@ OPCODE(0x23F0) flag_N = res >> 24; FETCH_LONG(adr); WRITE_LONG_F(adr, res) - POST_IO -RET(34) +#ifdef OPCODES_M68000 + RET(34) +#else + RET(12) +#endif } // MOVEL OPCODE(0x2EF0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9457,19 +10389,20 @@ OPCODE(0x2EF0) adr = AREG(7); AREG(7) += 4; WRITE_LONG_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(10) +#endif } // MOVEL OPCODE(0x2F30) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9478,36 +10411,38 @@ OPCODE(0x2F30) adr = AREG(7) - 4; AREG(7) = adr; WRITE_LONG_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(10) +#endif } // MOVEL OPCODE(0x2038) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // MOVEL OPCODE(0x20B8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9515,18 +10450,19 @@ OPCODE(0x20B8) flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(7) +#endif } // MOVEL OPCODE(0x20F8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9535,18 +10471,19 @@ OPCODE(0x20F8) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 4; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(7) +#endif } // MOVEL OPCODE(0x2138) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9555,18 +10492,19 @@ OPCODE(0x2138) adr = AREG((Opcode >> 9) & 7) - 4; AREG((Opcode >> 9) & 7) = adr; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(7) +#endif } // MOVEL OPCODE(0x2178) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9575,38 +10513,40 @@ OPCODE(0x2178) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(7) +#endif } // MOVEL OPCODE(0x21B8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_LONG_F(adr, res) - POST_IO -RET(30) +#ifdef OPCODES_M68000 + RET(30) +#else + RET(9) +#endif } // MOVEL OPCODE(0x21F8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9614,18 +10554,19 @@ OPCODE(0x21F8) flag_N = res >> 24; FETCH_SWORD(adr); WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(7) +#endif } // MOVEL OPCODE(0x23F8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9633,18 +10574,19 @@ OPCODE(0x23F8) flag_N = res >> 24; FETCH_LONG(adr); WRITE_LONG_F(adr, res) - POST_IO -RET(32) +#ifdef OPCODES_M68000 + RET(32) +#else + RET(9) +#endif } // MOVEL OPCODE(0x2EF8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9653,18 +10595,19 @@ OPCODE(0x2EF8) adr = AREG(7); AREG(7) += 4; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(7) +#endif } // MOVEL OPCODE(0x2F38) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9673,36 +10616,38 @@ OPCODE(0x2F38) adr = AREG(7) - 4; AREG(7) = adr; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(7) +#endif } // MOVEL OPCODE(0x2039) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(6) +#endif } // MOVEL OPCODE(0x20B9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9710,18 +10655,19 @@ OPCODE(0x20B9) flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(7) +#endif } // MOVEL OPCODE(0x20F9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9730,18 +10676,19 @@ OPCODE(0x20F9) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 4; WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(7) +#endif } // MOVEL OPCODE(0x2139) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9750,18 +10697,19 @@ OPCODE(0x2139) adr = AREG((Opcode >> 9) & 7) - 4; AREG((Opcode >> 9) & 7) = adr; WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(7) +#endif } // MOVEL OPCODE(0x2179) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9770,38 +10718,40 @@ OPCODE(0x2179) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_LONG_F(adr, res) - POST_IO -RET(32) +#ifdef OPCODES_M68000 + RET(32) +#else + RET(7) +#endif } // MOVEL OPCODE(0x21B9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_LONG_F(adr, res) - POST_IO -RET(34) +#ifdef OPCODES_M68000 + RET(34) +#else + RET(9) +#endif } // MOVEL OPCODE(0x21F9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9809,18 +10759,19 @@ OPCODE(0x21F9) flag_N = res >> 24; FETCH_SWORD(adr); WRITE_LONG_F(adr, res) - POST_IO -RET(32) +#ifdef OPCODES_M68000 + RET(32) +#else + RET(7) +#endif } // MOVEL OPCODE(0x23F9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9828,18 +10779,19 @@ OPCODE(0x23F9) flag_N = res >> 24; FETCH_LONG(adr); WRITE_LONG_F(adr, res) - POST_IO -RET(36) +#ifdef OPCODES_M68000 + RET(36) +#else + RET(9) +#endif } // MOVEL OPCODE(0x2EF9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9848,18 +10800,19 @@ OPCODE(0x2EF9) adr = AREG(7); AREG(7) += 4; WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(7) +#endif } // MOVEL OPCODE(0x2F39) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9868,38 +10821,40 @@ OPCODE(0x2F39) adr = AREG(7) - 4; AREG(7) = adr; WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(7) +#endif } // MOVEL OPCODE(0x203A) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // MOVEL OPCODE(0x20BA) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9907,19 +10862,20 @@ OPCODE(0x20BA) flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(8) +#endif } // MOVEL OPCODE(0x20FA) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9928,19 +10884,20 @@ OPCODE(0x20FA) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 4; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(8) +#endif } // MOVEL OPCODE(0x213A) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9949,19 +10906,20 @@ OPCODE(0x213A) adr = AREG((Opcode >> 9) & 7) - 4; AREG((Opcode >> 9) & 7) = adr; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(8) +#endif } // MOVEL OPCODE(0x217A) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -9970,40 +10928,42 @@ OPCODE(0x217A) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(8) +#endif } // MOVEL OPCODE(0x21BA) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_LONG_F(adr, res) - POST_IO -RET(30) +#ifdef OPCODES_M68000 + RET(30) +#else + RET(10) +#endif } // MOVEL OPCODE(0x21FA) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -10011,19 +10971,20 @@ OPCODE(0x21FA) flag_N = res >> 24; FETCH_SWORD(adr); WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(8) +#endif } // MOVEL OPCODE(0x23FA) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -10031,19 +10992,20 @@ OPCODE(0x23FA) flag_N = res >> 24; FETCH_LONG(adr); WRITE_LONG_F(adr, res) - POST_IO -RET(32) +#ifdef OPCODES_M68000 + RET(32) +#else + RET(10) +#endif } // MOVEL OPCODE(0x2EFA) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -10052,19 +11014,20 @@ OPCODE(0x2EFA) adr = AREG(7); AREG(7) += 4; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(8) +#endif } // MOVEL OPCODE(0x2F3A) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -10073,38 +11036,40 @@ OPCODE(0x2F3A) adr = AREG(7) - 4; AREG(7) = adr; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(8) +#endif } // MOVEL OPCODE(0x203B) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // MOVEL OPCODE(0x20BB) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -10112,19 +11077,20 @@ OPCODE(0x20BB) flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); WRITE_LONG_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(10) +#endif } // MOVEL OPCODE(0x20FB) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -10133,19 +11099,20 @@ OPCODE(0x20FB) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 4; WRITE_LONG_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(10) +#endif } // MOVEL OPCODE(0x213B) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -10154,19 +11121,20 @@ OPCODE(0x213B) adr = AREG((Opcode >> 9) & 7) - 4; AREG((Opcode >> 9) & 7) = adr; WRITE_LONG_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(10) +#endif } // MOVEL OPCODE(0x217B) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -10175,40 +11143,42 @@ OPCODE(0x217B) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_LONG_F(adr, res) - POST_IO -RET(30) +#ifdef OPCODES_M68000 + RET(30) +#else + RET(10) +#endif } // MOVEL OPCODE(0x21BB) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_LONG_F(adr, res) - POST_IO -RET(32) +#ifdef OPCODES_M68000 + RET(32) +#else + RET(12) +#endif } // MOVEL OPCODE(0x21FB) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -10216,19 +11186,20 @@ OPCODE(0x21FB) flag_N = res >> 24; FETCH_SWORD(adr); WRITE_LONG_F(adr, res) - POST_IO -RET(30) +#ifdef OPCODES_M68000 + RET(30) +#else + RET(10) +#endif } // MOVEL OPCODE(0x23FB) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -10236,19 +11207,20 @@ OPCODE(0x23FB) flag_N = res >> 24; FETCH_LONG(adr); WRITE_LONG_F(adr, res) - POST_IO -RET(34) +#ifdef OPCODES_M68000 + RET(34) +#else + RET(12) +#endif } // MOVEL OPCODE(0x2EFB) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -10257,19 +11229,20 @@ OPCODE(0x2EFB) adr = AREG(7); AREG(7) += 4; WRITE_LONG_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(10) +#endif } // MOVEL OPCODE(0x2F3B) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -10278,49 +11251,55 @@ OPCODE(0x2F3B) adr = AREG(7) - 4; AREG(7) = adr; WRITE_LONG_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(10) +#endif } // MOVEL OPCODE(0x203C) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(res); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // MOVEL OPCODE(0x20BC) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(res); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // MOVEL OPCODE(0x20FC) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(res); flag_C = 0; flag_V = 0; @@ -10328,18 +11307,19 @@ OPCODE(0x20FC) flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 4; - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // MOVEL OPCODE(0x213C) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(res); flag_C = 0; flag_V = 0; @@ -10347,18 +11327,19 @@ OPCODE(0x213C) flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7) - 4; AREG((Opcode >> 9) & 7) = adr; - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // MOVEL OPCODE(0x217C) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(res); flag_C = 0; flag_V = 0; @@ -10366,73 +11347,77 @@ OPCODE(0x217C) flag_N = res >> 24; FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(9) +#endif } // MOVEL OPCODE(0x21BC) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(res); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); WRITE_LONG_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(9) +#endif } // MOVEL OPCODE(0x21FC) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(res); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; FETCH_SWORD(adr); - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(8) +#endif } // MOVEL OPCODE(0x23FC) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(res); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; FETCH_LONG(adr); - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(10) +#endif } // MOVEL OPCODE(0x2EFC) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(res); flag_C = 0; flag_V = 0; @@ -10440,18 +11425,19 @@ OPCODE(0x2EFC) flag_N = res >> 24; adr = AREG(7); AREG(7) += 4; - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // MOVEL OPCODE(0x2F3C) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(res); flag_C = 0; flag_V = 0; @@ -10459,40 +11445,41 @@ OPCODE(0x2F3C) flag_N = res >> 24; adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // MOVEL OPCODE(0x201F) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // MOVEL OPCODE(0x209F) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -10500,19 +11487,20 @@ OPCODE(0x209F) flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(7) +#endif } // MOVEL OPCODE(0x20DF) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -10521,19 +11509,20 @@ OPCODE(0x20DF) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 4; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(7) +#endif } // MOVEL OPCODE(0x211F) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -10542,19 +11531,20 @@ OPCODE(0x211F) adr = AREG((Opcode >> 9) & 7) - 4; AREG((Opcode >> 9) & 7) = adr; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(7) +#endif } // MOVEL OPCODE(0x215F) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -10563,40 +11553,42 @@ OPCODE(0x215F) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(7) +#endif } // MOVEL OPCODE(0x219F) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_LONG_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(9) +#endif } // MOVEL OPCODE(0x21DF) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -10604,19 +11596,20 @@ OPCODE(0x21DF) flag_N = res >> 24; FETCH_SWORD(adr); WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(7) +#endif } // MOVEL OPCODE(0x23DF) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -10624,19 +11617,20 @@ OPCODE(0x23DF) flag_N = res >> 24; FETCH_LONG(adr); WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(9) +#endif } // MOVEL OPCODE(0x2EDF) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -10645,19 +11639,20 @@ OPCODE(0x2EDF) adr = AREG(7); AREG(7) += 4; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(7) +#endif } // MOVEL OPCODE(0x2F1F) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -10666,38 +11661,40 @@ OPCODE(0x2F1F) adr = AREG(7) - 4; AREG(7) = adr; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(7) +#endif } // MOVEL OPCODE(0x2027) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(7) +#endif } // MOVEL OPCODE(0x20A7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -10705,19 +11702,20 @@ OPCODE(0x20A7) flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(8) +#endif } // MOVEL OPCODE(0x20E7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -10726,19 +11724,20 @@ OPCODE(0x20E7) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 4; WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(8) +#endif } // MOVEL OPCODE(0x2127) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -10747,19 +11746,20 @@ OPCODE(0x2127) adr = AREG((Opcode >> 9) & 7) - 4; AREG((Opcode >> 9) & 7) = adr; WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(8) +#endif } // MOVEL OPCODE(0x2167) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -10768,40 +11768,42 @@ OPCODE(0x2167) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_LONG_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(8) +#endif } // MOVEL OPCODE(0x21A7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(10) +#endif } // MOVEL OPCODE(0x21E7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -10809,19 +11811,20 @@ OPCODE(0x21E7) flag_N = res >> 24; FETCH_SWORD(adr); WRITE_LONG_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(8) +#endif } // MOVEL OPCODE(0x23E7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -10829,19 +11832,20 @@ OPCODE(0x23E7) flag_N = res >> 24; FETCH_LONG(adr); WRITE_LONG_F(adr, res) - POST_IO -RET(30) +#ifdef OPCODES_M68000 + RET(30) +#else + RET(10) +#endif } // MOVEL OPCODE(0x2EE7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -10850,19 +11854,20 @@ OPCODE(0x2EE7) adr = AREG(7); AREG(7) += 4; WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(8) +#endif } // MOVEL OPCODE(0x2F27) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; @@ -10871,597 +11876,643 @@ OPCODE(0x2F27) adr = AREG(7) - 4; AREG(7) = adr; WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(8) +#endif } // MOVEAL OPCODE(0x2040) { - u32 adr, res; - u32 src, dst; - - res = (s32)DREGs32((Opcode >> 0) & 7); + u32 res; + + res = (s32)DREGs32((Opcode /*>> 0*/) & 7); AREG((Opcode >> 9) & 7) = res; -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // MOVEAL OPCODE(0x2048) { - u32 adr, res; - u32 src, dst; - - res = (s32)AREGs32((Opcode >> 0) & 7); + u32 res; + + res = (s32)AREGs32((Opcode /*>> 0*/) & 7); AREG((Opcode >> 9) & 7) = res; -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // MOVEAL OPCODE(0x2050) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READSX_LONG_F(adr, res) AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // MOVEAL OPCODE(0x2058) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READSX_LONG_F(adr, res) AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // MOVEAL OPCODE(0x2060) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READSX_LONG_F(adr, res) AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(7) +#endif } // MOVEAL OPCODE(0x2068) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READSX_LONG_F(adr, res) AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // MOVEAL OPCODE(0x2070) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READSX_LONG_F(adr, res) AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // MOVEAL OPCODE(0x2078) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READSX_LONG_F(adr, res) AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // MOVEAL OPCODE(0x2079) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READSX_LONG_F(adr, res) AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(6) +#endif } // MOVEAL OPCODE(0x207A) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READSX_LONG_F(adr, res) AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // MOVEAL OPCODE(0x207B) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READSX_LONG_F(adr, res) AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // MOVEAL OPCODE(0x207C) { - u32 adr, res; - u32 src, dst; - + u32 res; + FETCH_LONG(res); AREG((Opcode >> 9) & 7) = res; -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // MOVEAL OPCODE(0x205F) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 4; - PRE_IO READSX_LONG_F(adr, res) AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // MOVEAL OPCODE(0x2067) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READSX_LONG_F(adr, res) AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(7) +#endif } // MOVEW OPCODE(0x3000) { - u32 adr, res; - u32 src, dst; - - res = DREGu16((Opcode >> 0) & 7); + u32 res; + + res = DREGu16((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // MOVEW OPCODE(0x3080) { u32 adr, res; - u32 src, dst; - - res = DREGu16((Opcode >> 0) & 7); + + res = DREGu16((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // MOVEW OPCODE(0x30C0) { u32 adr, res; - u32 src, dst; - - res = DREGu16((Opcode >> 0) & 7); + + res = DREGu16((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 2; - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // MOVEW OPCODE(0x3100) { u32 adr, res; - u32 src, dst; - - res = DREGu16((Opcode >> 0) & 7); + + res = DREGu16((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7) - 2; AREG((Opcode >> 9) & 7) = adr; - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(5) +#endif } // MOVEW OPCODE(0x3140) { u32 adr, res; - u32 src, dst; - - res = DREGu16((Opcode >> 0) & 7); + + res = DREGu16((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(5) +#endif } // MOVEW OPCODE(0x3180) { u32 adr, res; - u32 src, dst; - - res = DREGu16((Opcode >> 0) & 7); + + res = DREGu16((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(7) +#endif } // MOVEW OPCODE(0x31C0) { u32 adr, res; - u32 src, dst; - - res = DREGu16((Opcode >> 0) & 7); + + res = DREGu16((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; FETCH_SWORD(adr); - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(4) +#endif } // MOVEW OPCODE(0x33C0) { u32 adr, res; - u32 src, dst; - - res = DREGu16((Opcode >> 0) & 7); + + res = DREGu16((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; FETCH_LONG(adr); - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // MOVEW OPCODE(0x3EC0) { u32 adr, res; - u32 src, dst; - - res = DREGu16((Opcode >> 0) & 7); + + res = DREGu16((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; adr = AREG(7); AREG(7) += 2; - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // MOVEW OPCODE(0x3F00) { u32 adr, res; - u32 src, dst; - - res = DREGu16((Opcode >> 0) & 7); + + res = DREGu16((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(5) +#endif } // MOVEW OPCODE(0x3008) { u32 adr, res; - u32 src, dst; - - res = AREGu16((Opcode >> 0) & 7); + + res = AREGu16((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // MOVEW OPCODE(0x3088) { u32 adr, res; - u32 src, dst; - - res = AREGu16((Opcode >> 0) & 7); + + res = AREGu16((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // MOVEW OPCODE(0x30C8) { u32 adr, res; - u32 src, dst; - - res = AREGu16((Opcode >> 0) & 7); + + res = AREGu16((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 2; - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // MOVEW OPCODE(0x3108) { u32 adr, res; - u32 src, dst; - - res = AREGu16((Opcode >> 0) & 7); + + res = AREGu16((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7) - 2; AREG((Opcode >> 9) & 7) = adr; - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(5) +#endif } // MOVEW OPCODE(0x3148) { u32 adr, res; - u32 src, dst; - - res = AREGu16((Opcode >> 0) & 7); + + res = AREGu16((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(5) +#endif } // MOVEW OPCODE(0x3188) { u32 adr, res; - u32 src, dst; - - res = AREGu16((Opcode >> 0) & 7); + + res = AREGu16((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(7) +#endif } // MOVEW OPCODE(0x31C8) { u32 adr, res; - u32 src, dst; - - res = AREGu16((Opcode >> 0) & 7); + + res = AREGu16((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; FETCH_SWORD(adr); - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(4) +#endif } // MOVEW OPCODE(0x33C8) { u32 adr, res; - u32 src, dst; - - res = AREGu16((Opcode >> 0) & 7); + + res = AREGu16((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; FETCH_LONG(adr); - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // MOVEW OPCODE(0x3EC8) { u32 adr, res; - u32 src, dst; - - res = AREGu16((Opcode >> 0) & 7); + + res = AREGu16((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; adr = AREG(7); AREG(7) += 2; - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // MOVEW OPCODE(0x3F08) { u32 adr, res; - u32 src, dst; - - res = AREGu16((Opcode >> 0) & 7); + + res = AREGu16((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(5) +#endif } // MOVEW OPCODE(0x3010) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // MOVEW OPCODE(0x3090) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -11469,18 +12520,19 @@ OPCODE(0x3090) flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEW OPCODE(0x30D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -11489,18 +12541,19 @@ OPCODE(0x30D0) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 2; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEW OPCODE(0x3110) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -11509,18 +12562,19 @@ OPCODE(0x3110) adr = AREG((Opcode >> 9) & 7) - 2; AREG((Opcode >> 9) & 7) = adr; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEW OPCODE(0x3150) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -11529,38 +12583,40 @@ OPCODE(0x3150) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // MOVEW OPCODE(0x3190) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // MOVEW OPCODE(0x31D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -11568,18 +12624,19 @@ OPCODE(0x31D0) flag_N = res >> 8; FETCH_SWORD(adr); WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // MOVEW OPCODE(0x33D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -11587,18 +12644,19 @@ OPCODE(0x33D0) flag_N = res >> 8; FETCH_LONG(adr); WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // MOVEW OPCODE(0x3ED0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -11607,18 +12665,19 @@ OPCODE(0x3ED0) adr = AREG(7); AREG(7) += 2; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEW OPCODE(0x3F10) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -11627,38 +12686,40 @@ OPCODE(0x3F10) adr = AREG(7) - 2; AREG(7) = adr; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEW OPCODE(0x3018) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // MOVEW OPCODE(0x3098) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -11666,19 +12727,20 @@ OPCODE(0x3098) flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEW OPCODE(0x30D8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -11687,19 +12749,20 @@ OPCODE(0x30D8) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 2; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEW OPCODE(0x3118) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -11708,19 +12771,20 @@ OPCODE(0x3118) adr = AREG((Opcode >> 9) & 7) - 2; AREG((Opcode >> 9) & 7) = adr; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEW OPCODE(0x3158) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -11729,40 +12793,42 @@ OPCODE(0x3158) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // MOVEW OPCODE(0x3198) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // MOVEW OPCODE(0x31D8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -11770,19 +12836,20 @@ OPCODE(0x31D8) flag_N = res >> 8; FETCH_SWORD(adr); WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // MOVEW OPCODE(0x33D8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -11790,19 +12857,20 @@ OPCODE(0x33D8) flag_N = res >> 8; FETCH_LONG(adr); WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // MOVEW OPCODE(0x3ED8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -11811,19 +12879,20 @@ OPCODE(0x3ED8) adr = AREG(7); AREG(7) += 2; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEW OPCODE(0x3F18) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -11832,38 +12901,40 @@ OPCODE(0x3F18) adr = AREG(7) - 2; AREG(7) = adr; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEW OPCODE(0x3020) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(7) +#endif } // MOVEW OPCODE(0x30A0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -11871,19 +12942,20 @@ OPCODE(0x30A0) flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } // MOVEW OPCODE(0x30E0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -11892,19 +12964,20 @@ OPCODE(0x30E0) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 2; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } // MOVEW OPCODE(0x3120) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -11913,19 +12986,20 @@ OPCODE(0x3120) adr = AREG((Opcode >> 9) & 7) - 2; AREG((Opcode >> 9) & 7) = adr; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } // MOVEW OPCODE(0x3160) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -11934,40 +13008,42 @@ OPCODE(0x3160) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(8) +#endif } // MOVEW OPCODE(0x31A0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(10) +#endif } // MOVEW OPCODE(0x31E0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -11975,19 +13051,20 @@ OPCODE(0x31E0) flag_N = res >> 8; FETCH_SWORD(adr); WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(8) +#endif } // MOVEW OPCODE(0x33E0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -11995,19 +13072,20 @@ OPCODE(0x33E0) flag_N = res >> 8; FETCH_LONG(adr); WRITE_WORD_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(10) +#endif } // MOVEW OPCODE(0x3EE0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12016,19 +13094,20 @@ OPCODE(0x3EE0) adr = AREG(7); AREG(7) += 2; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } // MOVEW OPCODE(0x3F20) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12037,38 +13116,40 @@ OPCODE(0x3F20) adr = AREG(7) - 2; AREG(7) = adr; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } // MOVEW OPCODE(0x3028) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEW OPCODE(0x30A8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12076,19 +13157,20 @@ OPCODE(0x30A8) flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // MOVEW OPCODE(0x30E8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12097,19 +13179,20 @@ OPCODE(0x30E8) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 2; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // MOVEW OPCODE(0x3128) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12118,19 +13201,20 @@ OPCODE(0x3128) adr = AREG((Opcode >> 9) & 7) - 2; AREG((Opcode >> 9) & 7) = adr; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // MOVEW OPCODE(0x3168) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12139,40 +13223,42 @@ OPCODE(0x3168) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // MOVEW OPCODE(0x31A8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_WORD_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(10) +#endif } // MOVEW OPCODE(0x31E8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12180,19 +13266,20 @@ OPCODE(0x31E8) flag_N = res >> 8; FETCH_SWORD(adr); WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // MOVEW OPCODE(0x33E8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12200,19 +13287,20 @@ OPCODE(0x33E8) flag_N = res >> 8; FETCH_LONG(adr); WRITE_WORD_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(10) +#endif } // MOVEW OPCODE(0x3EE8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12221,19 +13309,20 @@ OPCODE(0x3EE8) adr = AREG(7); AREG(7) += 2; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // MOVEW OPCODE(0x3F28) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12242,38 +13331,40 @@ OPCODE(0x3F28) adr = AREG(7) - 2; AREG(7) = adr; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // MOVEW OPCODE(0x3030) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // MOVEW OPCODE(0x30B0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12281,19 +13372,20 @@ OPCODE(0x30B0) flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } // MOVEW OPCODE(0x30F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12302,19 +13394,20 @@ OPCODE(0x30F0) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 2; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } // MOVEW OPCODE(0x3130) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12323,19 +13416,20 @@ OPCODE(0x3130) adr = AREG((Opcode >> 9) & 7) - 2; AREG((Opcode >> 9) & 7) = adr; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } // MOVEW OPCODE(0x3170) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12344,40 +13438,42 @@ OPCODE(0x3170) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_WORD_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(10) +#endif } // MOVEW OPCODE(0x31B0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_WORD_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(12) +#endif } // MOVEW OPCODE(0x31F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12385,19 +13481,20 @@ OPCODE(0x31F0) flag_N = res >> 8; FETCH_SWORD(adr); WRITE_WORD_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(10) +#endif } // MOVEW OPCODE(0x33F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12405,19 +13502,20 @@ OPCODE(0x33F0) flag_N = res >> 8; FETCH_LONG(adr); WRITE_WORD_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(12) +#endif } // MOVEW OPCODE(0x3EF0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12426,19 +13524,20 @@ OPCODE(0x3EF0) adr = AREG(7); AREG(7) += 2; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } // MOVEW OPCODE(0x3F30) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12447,36 +13546,38 @@ OPCODE(0x3F30) adr = AREG(7) - 2; AREG(7) = adr; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } // MOVEW OPCODE(0x3038) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // MOVEW OPCODE(0x30B8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12484,18 +13585,19 @@ OPCODE(0x30B8) flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // MOVEW OPCODE(0x30F8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12504,18 +13606,19 @@ OPCODE(0x30F8) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 2; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // MOVEW OPCODE(0x3138) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12524,18 +13627,19 @@ OPCODE(0x3138) adr = AREG((Opcode >> 9) & 7) - 2; AREG((Opcode >> 9) & 7) = adr; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // MOVEW OPCODE(0x3178) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12544,38 +13648,40 @@ OPCODE(0x3178) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(7) +#endif } // MOVEW OPCODE(0x31B8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_WORD_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(9) +#endif } // MOVEW OPCODE(0x31F8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12583,18 +13689,19 @@ OPCODE(0x31F8) flag_N = res >> 8; FETCH_SWORD(adr); WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(7) +#endif } // MOVEW OPCODE(0x33F8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12602,18 +13709,19 @@ OPCODE(0x33F8) flag_N = res >> 8; FETCH_LONG(adr); WRITE_WORD_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(9) +#endif } // MOVEW OPCODE(0x3EF8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12622,18 +13730,19 @@ OPCODE(0x3EF8) adr = AREG(7); AREG(7) += 2; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // MOVEW OPCODE(0x3F38) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12642,36 +13751,38 @@ OPCODE(0x3F38) adr = AREG(7) - 2; AREG(7) = adr; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // MOVEW OPCODE(0x3039) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // MOVEW OPCODE(0x30B9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12679,18 +13790,19 @@ OPCODE(0x30B9) flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(7) +#endif } // MOVEW OPCODE(0x30F9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12699,18 +13811,19 @@ OPCODE(0x30F9) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 2; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(7) +#endif } // MOVEW OPCODE(0x3139) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12719,18 +13832,19 @@ OPCODE(0x3139) adr = AREG((Opcode >> 9) & 7) - 2; AREG((Opcode >> 9) & 7) = adr; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(7) +#endif } // MOVEW OPCODE(0x3179) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12739,38 +13853,40 @@ OPCODE(0x3179) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_WORD_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(7) +#endif } // MOVEW OPCODE(0x31B9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_WORD_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(9) +#endif } // MOVEW OPCODE(0x31F9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12778,18 +13894,19 @@ OPCODE(0x31F9) flag_N = res >> 8; FETCH_SWORD(adr); WRITE_WORD_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(7) +#endif } // MOVEW OPCODE(0x33F9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12797,18 +13914,19 @@ OPCODE(0x33F9) flag_N = res >> 8; FETCH_LONG(adr); WRITE_WORD_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(9) +#endif } // MOVEW OPCODE(0x3EF9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12817,18 +13935,19 @@ OPCODE(0x3EF9) adr = AREG(7); AREG(7) += 2; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(7) +#endif } // MOVEW OPCODE(0x3F39) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12837,38 +13956,40 @@ OPCODE(0x3F39) adr = AREG(7) - 2; AREG(7) = adr; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(7) +#endif } // MOVEW OPCODE(0x303A) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEW OPCODE(0x30BA) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12876,19 +13997,20 @@ OPCODE(0x30BA) flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // MOVEW OPCODE(0x30FA) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12897,19 +14019,20 @@ OPCODE(0x30FA) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 2; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // MOVEW OPCODE(0x313A) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12918,19 +14041,20 @@ OPCODE(0x313A) adr = AREG((Opcode >> 9) & 7) - 2; AREG((Opcode >> 9) & 7) = adr; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // MOVEW OPCODE(0x317A) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12939,40 +14063,42 @@ OPCODE(0x317A) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // MOVEW OPCODE(0x31BA) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_WORD_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(10) +#endif } // MOVEW OPCODE(0x31FA) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -12980,19 +14106,20 @@ OPCODE(0x31FA) flag_N = res >> 8; FETCH_SWORD(adr); WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // MOVEW OPCODE(0x33FA) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -13000,19 +14127,20 @@ OPCODE(0x33FA) flag_N = res >> 8; FETCH_LONG(adr); WRITE_WORD_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(10) +#endif } // MOVEW OPCODE(0x3EFA) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -13021,19 +14149,20 @@ OPCODE(0x3EFA) adr = AREG(7); AREG(7) += 2; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // MOVEW OPCODE(0x3F3A) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -13042,38 +14171,40 @@ OPCODE(0x3F3A) adr = AREG(7) - 2; AREG(7) = adr; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // MOVEW OPCODE(0x303B) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // MOVEW OPCODE(0x30BB) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -13081,19 +14212,20 @@ OPCODE(0x30BB) flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } // MOVEW OPCODE(0x30FB) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -13102,19 +14234,20 @@ OPCODE(0x30FB) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 2; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } // MOVEW OPCODE(0x313B) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -13123,19 +14256,20 @@ OPCODE(0x313B) adr = AREG((Opcode >> 9) & 7) - 2; AREG((Opcode >> 9) & 7) = adr; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } // MOVEW OPCODE(0x317B) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -13144,40 +14278,42 @@ OPCODE(0x317B) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_WORD_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(10) +#endif } // MOVEW OPCODE(0x31BB) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_WORD_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(12) +#endif } // MOVEW OPCODE(0x31FB) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -13185,19 +14321,20 @@ OPCODE(0x31FB) flag_N = res >> 8; FETCH_SWORD(adr); WRITE_WORD_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(10) +#endif } // MOVEW OPCODE(0x33FB) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -13205,19 +14342,20 @@ OPCODE(0x33FB) flag_N = res >> 8; FETCH_LONG(adr); WRITE_WORD_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(12) +#endif } // MOVEW OPCODE(0x3EFB) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -13226,19 +14364,20 @@ OPCODE(0x3EFB) adr = AREG(7); AREG(7) += 2; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } // MOVEW OPCODE(0x3F3B) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -13247,49 +14386,55 @@ OPCODE(0x3F3B) adr = AREG(7) - 2; AREG(7) = adr; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } // MOVEW OPCODE(0x303C) { u32 adr, res; - u32 src, dst; - + FETCH_WORD(res); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // MOVEW OPCODE(0x30BC) { u32 adr, res; - u32 src, dst; - + FETCH_WORD(res); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // MOVEW OPCODE(0x30FC) { u32 adr, res; - u32 src, dst; - + FETCH_WORD(res); flag_C = 0; flag_V = 0; @@ -13297,18 +14442,19 @@ OPCODE(0x30FC) flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 2; - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // MOVEW OPCODE(0x313C) { u32 adr, res; - u32 src, dst; - + FETCH_WORD(res); flag_C = 0; flag_V = 0; @@ -13316,18 +14462,19 @@ OPCODE(0x313C) flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7) - 2; AREG((Opcode >> 9) & 7) = adr; - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEW OPCODE(0x317C) { u32 adr, res; - u32 src, dst; - + FETCH_WORD(res); flag_C = 0; flag_V = 0; @@ -13335,73 +14482,77 @@ OPCODE(0x317C) flag_N = res >> 8; FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // MOVEW OPCODE(0x31BC) { u32 adr, res; - u32 src, dst; - + FETCH_WORD(res); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(7) +#endif } // MOVEW OPCODE(0x31FC) { u32 adr, res; - u32 src, dst; - + FETCH_WORD(res); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; FETCH_SWORD(adr); - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // MOVEW OPCODE(0x33FC) { u32 adr, res; - u32 src, dst; - + FETCH_WORD(res); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; FETCH_LONG(adr); - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // MOVEW OPCODE(0x3EFC) { u32 adr, res; - u32 src, dst; - + FETCH_WORD(res); flag_C = 0; flag_V = 0; @@ -13409,18 +14560,19 @@ OPCODE(0x3EFC) flag_N = res >> 8; adr = AREG(7); AREG(7) += 2; - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // MOVEW OPCODE(0x3F3C) { u32 adr, res; - u32 src, dst; - + FETCH_WORD(res); flag_C = 0; flag_V = 0; @@ -13428,40 +14580,41 @@ OPCODE(0x3F3C) flag_N = res >> 8; adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEW OPCODE(0x301F) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // MOVEW OPCODE(0x309F) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -13469,19 +14622,20 @@ OPCODE(0x309F) flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEW OPCODE(0x30DF) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -13490,19 +14644,20 @@ OPCODE(0x30DF) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 2; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEW OPCODE(0x311F) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -13511,19 +14666,20 @@ OPCODE(0x311F) adr = AREG((Opcode >> 9) & 7) - 2; AREG((Opcode >> 9) & 7) = adr; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEW OPCODE(0x315F) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -13532,40 +14688,42 @@ OPCODE(0x315F) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // MOVEW OPCODE(0x319F) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // MOVEW OPCODE(0x31DF) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -13573,19 +14731,20 @@ OPCODE(0x31DF) flag_N = res >> 8; FETCH_SWORD(adr); WRITE_WORD_F(adr, res) - POST_IO -RET(16) -} +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif +} // MOVEW OPCODE(0x33DF) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -13593,19 +14752,20 @@ OPCODE(0x33DF) flag_N = res >> 8; FETCH_LONG(adr); WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // MOVEW OPCODE(0x3EDF) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -13614,19 +14774,20 @@ OPCODE(0x3EDF) adr = AREG(7); AREG(7) += 2; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEW OPCODE(0x3F1F) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -13635,38 +14796,40 @@ OPCODE(0x3F1F) adr = AREG(7) - 2; AREG(7) = adr; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEW OPCODE(0x3027) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(7) +#endif } // MOVEW OPCODE(0x30A7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -13674,19 +14837,20 @@ OPCODE(0x30A7) flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } // MOVEW OPCODE(0x30E7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -13695,19 +14859,20 @@ OPCODE(0x30E7) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 2; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } // MOVEW OPCODE(0x3127) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -13716,19 +14881,20 @@ OPCODE(0x3127) adr = AREG((Opcode >> 9) & 7) - 2; AREG((Opcode >> 9) & 7) = adr; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } // MOVEW OPCODE(0x3167) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -13737,40 +14903,42 @@ OPCODE(0x3167) FETCH_SWORD(adr); adr += AREG((Opcode >> 9) & 7); WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(8) +#endif } // MOVEW OPCODE(0x31A7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; adr = AREG((Opcode >> 9) & 7); - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(10) +#endif } // MOVEW OPCODE(0x31E7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -13778,19 +14946,20 @@ OPCODE(0x31E7) flag_N = res >> 8; FETCH_SWORD(adr); WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(8) +#endif } // MOVEW OPCODE(0x33E7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -13798,19 +14967,20 @@ OPCODE(0x33E7) flag_N = res >> 8; FETCH_LONG(adr); WRITE_WORD_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(10) +#endif } // MOVEW OPCODE(0x3EE7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -13819,19 +14989,20 @@ OPCODE(0x3EE7) adr = AREG(7); AREG(7) += 2; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } // MOVEW OPCODE(0x3F27) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; @@ -13840,1623 +15011,1870 @@ OPCODE(0x3F27) adr = AREG(7) - 2; AREG(7) = adr; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } // MOVEAW OPCODE(0x3040) { - u32 adr, res; - u32 src, dst; - - res = (s32)DREGs16((Opcode >> 0) & 7); + u32 res; + + res = (s32)DREGs16((Opcode /*>> 0*/) & 7); AREG((Opcode >> 9) & 7) = res; -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // MOVEAW OPCODE(0x3048) { - u32 adr, res; - u32 src, dst; - - res = (s32)AREGs16((Opcode >> 0) & 7); + u32 res; + + res = (s32)AREGs16((Opcode /*>> 0*/) & 7); AREG((Opcode >> 9) & 7) = res; -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // MOVEAW OPCODE(0x3050) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READSX_WORD_F(adr, res) AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // MOVEAW OPCODE(0x3058) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READSX_WORD_F(adr, res) AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // MOVEAW OPCODE(0x3060) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READSX_WORD_F(adr, res) AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(7) +#endif } // MOVEAW OPCODE(0x3068) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READSX_WORD_F(adr, res) AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEAW OPCODE(0x3070) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READSX_WORD_F(adr, res) AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // MOVEAW OPCODE(0x3078) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READSX_WORD_F(adr, res) AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // MOVEAW OPCODE(0x3079) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READSX_WORD_F(adr, res) AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // MOVEAW OPCODE(0x307A) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READSX_WORD_F(adr, res) AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVEAW OPCODE(0x307B) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READSX_WORD_F(adr, res) AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // MOVEAW OPCODE(0x307C) { - u32 adr, res; + u32 res; u32 src, dst; - + FETCH_SWORD(res); AREG((Opcode >> 9) & 7) = res; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // MOVEAW OPCODE(0x305F) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READSX_WORD_F(adr, res) AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // MOVEAW OPCODE(0x3067) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READSX_WORD_F(adr, res) AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(7) +#endif } // NEGX OPCODE(0x4000) { - u32 adr, res; - u32 src, dst; - - src = DREGu8((Opcode >> 0) & 7); + u32 res; + u32 src; + + src = DREGu8((Opcode /*>> 0*/) & 7); res = -src - ((flag_X >> 8) & 1); flag_V = res & src; flag_N = flag_X = flag_C = res; flag_NotZ |= res & 0xFF; - DREGu8((Opcode >> 0) & 7) = res; -RET(4) + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // NEGX OPCODE(0x4010) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, src) res = -src - ((flag_X >> 8) & 1); flag_V = res & src; flag_N = flag_X = flag_C = res; flag_NotZ |= res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // NEGX OPCODE(0x4018) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, src) res = -src - ((flag_X >> 8) & 1); flag_V = res & src; flag_N = flag_X = flag_C = res; flag_NotZ |= res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // NEGX OPCODE(0x4020) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, src) res = -src - ((flag_X >> 8) & 1); flag_V = res & src; flag_N = flag_X = flag_C = res; flag_NotZ |= res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // NEGX OPCODE(0x4028) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, src) res = -src - ((flag_X >> 8) & 1); flag_V = res & src; flag_N = flag_X = flag_C = res; flag_NotZ |= res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(9) +#endif } // NEGX OPCODE(0x4030) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, src) res = -src - ((flag_X >> 8) & 1); flag_V = res & src; flag_N = flag_X = flag_C = res; flag_NotZ |= res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(11) +#endif } // NEGX OPCODE(0x4038) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, src) res = -src - ((flag_X >> 8) & 1); flag_V = res & src; flag_N = flag_X = flag_C = res; flag_NotZ |= res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // NEGX OPCODE(0x4039) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, src) res = -src - ((flag_X >> 8) & 1); flag_V = res & src; flag_N = flag_X = flag_C = res; flag_NotZ |= res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // NEGX OPCODE(0x401F) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, src) res = -src - ((flag_X >> 8) & 1); flag_V = res & src; flag_N = flag_X = flag_C = res; flag_NotZ |= res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // NEGX OPCODE(0x4027) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, src) res = -src - ((flag_X >> 8) & 1); flag_V = res & src; flag_N = flag_X = flag_C = res; flag_NotZ |= res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // NEGX OPCODE(0x4040) { u32 adr, res; - u32 src, dst; - - src = DREGu16((Opcode >> 0) & 7); + u32 src; + + src = DREGu16((Opcode /*>> 0*/) & 7); res = -src - ((flag_X >> 8) & 1); flag_V = (res & src) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ |= res & 0xFFFF; - DREGu16((Opcode >> 0) & 7) = res; -RET(4) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // NEGX OPCODE(0x4050) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) res = -src - ((flag_X >> 8) & 1); flag_V = (res & src) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ |= res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // NEGX OPCODE(0x4058) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, src) res = -src - ((flag_X >> 8) & 1); flag_V = (res & src) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ |= res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // NEGX OPCODE(0x4060) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, src) res = -src - ((flag_X >> 8) & 1); flag_V = (res & src) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ |= res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // NEGX OPCODE(0x4068) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) res = -src - ((flag_X >> 8) & 1); flag_V = (res & src) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ |= res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(9) +#endif } // NEGX OPCODE(0x4070) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, src) res = -src - ((flag_X >> 8) & 1); flag_V = (res & src) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ |= res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(11) +#endif } // NEGX OPCODE(0x4078) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, src) res = -src - ((flag_X >> 8) & 1); flag_V = (res & src) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ |= res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // NEGX OPCODE(0x4079) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, src) res = -src - ((flag_X >> 8) & 1); flag_V = (res & src) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ |= res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // NEGX OPCODE(0x405F) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, src) res = -src - ((flag_X >> 8) & 1); flag_V = (res & src) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ |= res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // NEGX OPCODE(0x4067) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, src) res = -src - ((flag_X >> 8) & 1); flag_V = (res & src) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ |= res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // NEGX OPCODE(0x4080) { - u32 adr, res; - u32 src, dst; - - src = DREGu32((Opcode >> 0) & 7); + u32 res; + u32 src; + + src = DREGu32((Opcode /*>> 0*/) & 7); res = -src - ((flag_X >> 8) & 1); flag_NotZ |= res; flag_V = (res & src) >> 24; -flag_X = flag_C = (res?1:0)<<8; -// flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; + flag_X = flag_C = (res?1:0)<<8; flag_N = res >> 24; - DREGu32((Opcode >> 0) & 7) = res; -RET(6) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6) +#else + RET(2) +#endif } // NEGX OPCODE(0x4090) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, src) res = -src - ((flag_X >> 8) & 1); flag_NotZ |= res; flag_V = (res & src) >> 24; -flag_X = flag_C = (res?1:0)<<8; -// flag_X = flag_C = ((src & res & 1) | (src >> 1) | (res >> 1)) >> 23; + flag_X = flag_C = (res?1:0)<<8; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // NEGX OPCODE(0x4098) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, src) res = -src - ((flag_X >> 8) & 1); flag_NotZ |= res; flag_V = (res & src) >> 24; -flag_X = flag_C = (res?1:0)<<8; -// flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; + flag_X = flag_C = (res?1:0)<<8; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // NEGX OPCODE(0x40A0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, src) res = -src - ((flag_X >> 8) & 1); flag_NotZ |= res; flag_V = (res & src) >> 24; -flag_X = flag_C = (res?1:0)<<8; -// flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; + flag_X = flag_C = (res?1:0)<<8; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(9) +#endif } // NEGX OPCODE(0x40A8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, src) res = -src - ((flag_X >> 8) & 1); flag_NotZ |= res; flag_V = (res & src) >> 24; -flag_X = flag_C = (res?1:0)<<8; -// flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; + flag_X = flag_C = (res?1:0)<<8; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(9) +#endif } // NEGX OPCODE(0x40B0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, src) res = -src - ((flag_X >> 8) & 1); flag_NotZ |= res; flag_V = (res & src) >> 24; -flag_X = flag_C = (res?1:0)<<8; -// flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; + flag_X = flag_C = (res?1:0)<<8; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(11) +#endif } // NEGX OPCODE(0x40B8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, src) res = -src - ((flag_X >> 8) & 1); flag_NotZ |= res; flag_V = (res & src) >> 24; -flag_X = flag_C = (res?1:0)<<8; -// flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; + flag_X = flag_C = (res?1:0)<<8; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(8) +#endif } // NEGX OPCODE(0x40B9) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, src) res = -src - ((flag_X >> 8) & 1); flag_NotZ |= res; flag_V = (res & src) >> 24; -flag_X = flag_C = (res?1:0)<<8; -// flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; + flag_X = flag_C = (res?1:0)<<8; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(8) +#endif } // NEGX OPCODE(0x409F) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, src) res = -src - ((flag_X >> 8) & 1); flag_NotZ |= res; flag_V = (res & src) >> 24; -flag_X = flag_C = (res?1:0)<<8; -// flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; + flag_X = flag_C = (res?1:0)<<8; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // NEGX OPCODE(0x40A7) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, src) res = -src - ((flag_X >> 8) & 1); flag_NotZ |= res; flag_V = (res & src) >> 24; -flag_X = flag_C = (res?1:0)<<8; -// flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; + flag_X = flag_C = (res?1:0)<<8; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(9) +#endif } // CLR OPCODE(0x4200) { - u32 adr, res; - u32 src, dst; - + u32 res; + res = 0; flag_N = flag_NotZ = flag_V = flag_C = 0; - DREGu8((Opcode >> 0) & 7) = res; -RET(4) + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // CLR OPCODE(0x4210) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); + + adr = AREG((Opcode /*>> 0*/) & 7); res = 0; flag_N = flag_NotZ = flag_V = flag_C = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // CLR OPCODE(0x4218) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; res = 0; flag_N = flag_NotZ = flag_V = flag_C = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // CLR OPCODE(0x4220) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; res = 0; flag_N = flag_NotZ = flag_V = flag_C = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // CLR OPCODE(0x4228) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); + adr += AREG((Opcode /*>> 0*/) & 7); res = 0; flag_N = flag_NotZ = flag_V = flag_C = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(9) +#endif } // CLR OPCODE(0x4230) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); res = 0; flag_N = flag_NotZ = flag_V = flag_C = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(11) +#endif } // CLR OPCODE(0x4238) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); res = 0; flag_N = flag_NotZ = flag_V = flag_C = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // CLR OPCODE(0x4239) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); res = 0; flag_N = flag_NotZ = flag_V = flag_C = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // CLR OPCODE(0x421F) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; res = 0; flag_N = flag_NotZ = flag_V = flag_C = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // CLR OPCODE(0x4227) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; res = 0; flag_N = flag_NotZ = flag_V = flag_C = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // CLR OPCODE(0x4240) { - u32 adr, res; - u32 src, dst; - + u32 res; + res = 0; flag_N = flag_NotZ = flag_V = flag_C = 0; - DREGu16((Opcode >> 0) & 7) = res; -RET(4) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // CLR OPCODE(0x4250) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); + + adr = AREG((Opcode /*>> 0*/) & 7); res = 0; flag_N = flag_NotZ = flag_V = flag_C = 0; - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // CLR OPCODE(0x4258) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; res = 0; flag_N = flag_NotZ = flag_V = flag_C = 0; - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // CLR OPCODE(0x4260) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; res = 0; flag_N = flag_NotZ = flag_V = flag_C = 0; - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // CLR OPCODE(0x4268) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); + adr += AREG((Opcode /*>> 0*/) & 7); res = 0; flag_N = flag_NotZ = flag_V = flag_C = 0; - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(9) +#endif } // CLR OPCODE(0x4270) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); res = 0; flag_N = flag_NotZ = flag_V = flag_C = 0; - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(11) +#endif } // CLR OPCODE(0x4278) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); res = 0; flag_N = flag_NotZ = flag_V = flag_C = 0; - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // CLR OPCODE(0x4279) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); res = 0; flag_N = flag_NotZ = flag_V = flag_C = 0; - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // CLR OPCODE(0x425F) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; res = 0; flag_N = flag_NotZ = flag_V = flag_C = 0; - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // CLR OPCODE(0x4267) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; res = 0; flag_N = flag_NotZ = flag_V = flag_C = 0; - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // CLR OPCODE(0x4280) { - u32 adr, res; + u32 res; u32 src, dst; - + res = 0; flag_N = flag_NotZ = flag_V = flag_C = 0; - DREGu32((Opcode >> 0) & 7) = res; -RET(6) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6) +#else + RET(2) +#endif } // CLR OPCODE(0x4290) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); + + adr = AREG((Opcode /*>> 0*/) & 7); res = 0; flag_N = flag_NotZ = flag_V = flag_C = 0; - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // CLR OPCODE(0x4298) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; res = 0; flag_N = flag_NotZ = flag_V = flag_C = 0; - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // CLR OPCODE(0x42A0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; + + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; res = 0; flag_N = flag_NotZ = flag_V = flag_C = 0; - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(9) +#endif } // CLR OPCODE(0x42A8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); + adr += AREG((Opcode /*>> 0*/) & 7); res = 0; flag_N = flag_NotZ = flag_V = flag_C = 0; - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(9) +#endif } // CLR OPCODE(0x42B0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); res = 0; flag_N = flag_NotZ = flag_V = flag_C = 0; - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(11) +#endif } // CLR OPCODE(0x42B8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); res = 0; flag_N = flag_NotZ = flag_V = flag_C = 0; - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(8) +#endif } // CLR OPCODE(0x42B9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); res = 0; flag_N = flag_NotZ = flag_V = flag_C = 0; - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(8) +#endif } // CLR OPCODE(0x429F) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 4; res = 0; flag_N = flag_NotZ = flag_V = flag_C = 0; - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // CLR OPCODE(0x42A7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 4; AREG(7) = adr; res = 0; flag_N = flag_NotZ = flag_V = flag_C = 0; - PRE_IO WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(9) +#endif +} + +#ifdef OPCODES_M68020 +// MOVE CCR, Dn - 68010+ +OPCODE(0x42C0) +{ + DREGu16((Opcode /*>> 0*/) & 7) = GET_CCR; + RET(4) } +// MOVE CCR, (An) - 68010+ +OPCODE(0x42D0) +{ + u32 adr; + + adr = AREG((Opcode /*>> 0*/) & 7); + WRITE_WORD_F(adr, GET_CCR) + RET(7) +} + +// MOVE CCR, (An)+ - 68010+ +OPCODE(0x42D8) +{ + u32 adr; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; + WRITE_WORD_F(adr, GET_CCR) + RET(7) +} + +// MOVE CCR, -(An) - 68010+ +OPCODE(0x42E0) +{ + u32 adr; + + AREG((Opcode /*>> 0*/) & 7) -= 2; + adr = AREG((Opcode /*>> 0*/) & 7); + WRITE_WORD_F(adr, GET_CCR) + RET(7) +} + +// MOVE CCR, (d16,An) - 68020+ +OPCODE(0x42E8) +{ + u32 adr; + + FETCH_SWORD(adr); + adr += AREG((Opcode /*>> 0*/) & 7); + WRITE_WORD_F(adr, GET_CCR) + RET(7) +} + +// MOVE CCR, (d8,An,Xn) / (bd,An,Xn)... - 68020+ +OPCODE(0x42F0) +{ + u32 adr; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); + WRITE_WORD_F(adr, GET_CCR) + RET(9) +} + +// MOVE CCR, (xx).W - 68010+ +OPCODE(0x42F8) +{ + u32 adr; + + FETCH_SWORD(adr); + WRITE_WORD_F(adr, GET_CCR) + RET(7) +} + +// MOVE CCR, (xx).L - 68010+ +OPCODE(0x42F9) +{ + u32 adr; + + FETCH_LONG(adr); + WRITE_WORD_F(adr, GET_CCR) + RET(9) +} +#endif + // NEG OPCODE(0x4400) { - u32 adr, res; - u32 src, dst; - - src = DREGu8((Opcode >> 0) & 7); + u32 res; + u32 src; + + src = DREGu8((Opcode /*>> 0*/) & 7); res = -src; flag_V = res & src; flag_N = flag_X = flag_C = res; flag_NotZ = res & 0xFF; - DREGu8((Opcode >> 0) & 7) = res; -RET(4) + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // NEG OPCODE(0x4410) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, src) res = -src; flag_V = res & src; flag_N = flag_X = flag_C = res; flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // NEG OPCODE(0x4418) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, src) res = -src; flag_V = res & src; flag_N = flag_X = flag_C = res; flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // NEG OPCODE(0x4420) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + u32 src ; + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, src) res = -src; flag_V = res & src; flag_N = flag_X = flag_C = res; flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // NEG OPCODE(0x4428) { u32 adr, res; - u32 src, dst; - + u32 src ; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, src) res = -src; flag_V = res & src; flag_N = flag_X = flag_C = res; flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(9) +#endif } // NEG OPCODE(0x4430) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + u32 src ; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, src) res = -src; flag_V = res & src; flag_N = flag_X = flag_C = res; flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(11) +#endif } // NEG OPCODE(0x4438) { u32 adr, res; - u32 src, dst; - + u32 src ; + FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, src) res = -src; flag_V = res & src; flag_N = flag_X = flag_C = res; flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // NEG OPCODE(0x4439) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, src) res = -src; flag_V = res & src; flag_N = flag_X = flag_C = res; flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // NEG OPCODE(0x441F) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, src) res = -src; flag_V = res & src; flag_N = flag_X = flag_C = res; flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // NEG OPCODE(0x4427) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, src) res = -src; flag_V = res & src; flag_N = flag_X = flag_C = res; flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // NEG OPCODE(0x4440) { - u32 adr, res; - u32 src, dst; - - src = DREGu16((Opcode >> 0) & 7); + u32 res; + u32 src; + + src = DREGu16((Opcode /*>> 0*/) & 7); res = -src; flag_V = (res & src) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; - DREGu16((Opcode >> 0) & 7) = res; -RET(4) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // NEG OPCODE(0x4450) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) res = -src; flag_V = (res & src) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // NEG OPCODE(0x4458) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, src) res = -src; flag_V = (res & src) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // NEG OPCODE(0x4460) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, src) res = -src; flag_V = (res & src) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // NEG OPCODE(0x4468) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) res = -src; flag_V = (res & src) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(9) +#endif } // NEG OPCODE(0x4470) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, src) res = -src; flag_V = (res & src) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(11) +#endif } // NEG OPCODE(0x4478) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, src) res = -src; flag_V = (res & src) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // NEG OPCODE(0x4479) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, src) res = -src; flag_V = (res & src) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // NEG OPCODE(0x445F) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, src) res = -src; flag_V = (res & src) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // NEG OPCODE(0x4467) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, src) res = -src; flag_V = (res & src) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // NEG OPCODE(0x4480) { - u32 adr, res; - u32 src, dst; - - src = DREGu32((Opcode >> 0) & 7); + u32 res; + u32 src; + + src = DREGu32((Opcode /*>> 0*/) & 7); res = -src; flag_NotZ = res; flag_V = (res & src) >> 24; flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_N = res >> 24; - DREGu32((Opcode >> 0) & 7) = res; -RET(6) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6) +#else + RET(2) +#endif } // NEG OPCODE(0x4490) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, src) res = -src; flag_NotZ = res; @@ -15464,19 +16882,21 @@ OPCODE(0x4490) flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // NEG OPCODE(0x4498) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, src) res = -src; flag_NotZ = res; @@ -15484,19 +16904,21 @@ OPCODE(0x4498) flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // NEG OPCODE(0x44A0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, src) res = -src; flag_NotZ = res; @@ -15504,19 +16926,21 @@ OPCODE(0x44A0) flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(9) +#endif } // NEG OPCODE(0x44A8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, src) res = -src; flag_NotZ = res; @@ -15524,19 +16948,21 @@ OPCODE(0x44A8) flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(9) +#endif } // NEG OPCODE(0x44B0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, src) res = -src; flag_NotZ = res; @@ -15544,18 +16970,20 @@ OPCODE(0x44B0) flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(11) +#endif } // NEG OPCODE(0x44B8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, src) res = -src; flag_NotZ = res; @@ -15563,18 +16991,20 @@ OPCODE(0x44B8) flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(8) +#endif } // NEG OPCODE(0x44B9) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, src) res = -src; flag_NotZ = res; @@ -15582,19 +17012,21 @@ OPCODE(0x44B9) flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(8) +#endif } // NEG OPCODE(0x449F) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, src) res = -src; flag_NotZ = res; @@ -15602,19 +17034,21 @@ OPCODE(0x449F) flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // NEG OPCODE(0x44A7) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, src) res = -src; flag_NotZ = res; @@ -15622,34 +17056,40 @@ OPCODE(0x44A7) flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(9) +#endif } // NOT OPCODE(0x4600) { - u32 adr, res; - u32 src, dst; - - src = DREGu8((Opcode >> 0) & 7); + u32 res; + u32 src; + + src = DREGu8((Opcode /*>> 0*/) & 7); res = ~src; flag_C = 0; flag_V = 0; flag_N = res; flag_NotZ = res & 0xFF; - DREGu8((Opcode >> 0) & 7) = res; -RET(4) + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // NOT OPCODE(0x4610) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, src) res = ~src; flag_C = 0; @@ -15657,19 +17097,21 @@ OPCODE(0x4610) flag_N = res; flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // NOT OPCODE(0x4618) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, src) res = ~src; flag_C = 0; @@ -15677,19 +17119,21 @@ OPCODE(0x4618) flag_N = res; flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // NOT OPCODE(0x4620) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, src) res = ~src; flag_C = 0; @@ -15697,19 +17141,21 @@ OPCODE(0x4620) flag_N = res; flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // NOT OPCODE(0x4628) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, src) res = ~src; flag_C = 0; @@ -15717,19 +17163,21 @@ OPCODE(0x4628) flag_N = res; flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(9) +#endif } // NOT OPCODE(0x4630) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, src) res = ~src; flag_C = 0; @@ -15737,18 +17185,20 @@ OPCODE(0x4630) flag_N = res; flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(11) +#endif } // NOT OPCODE(0x4638) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, src) res = ~src; flag_C = 0; @@ -15756,18 +17206,20 @@ OPCODE(0x4638) flag_N = res; flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // NOT OPCODE(0x4639) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, src) res = ~src; flag_C = 0; @@ -15775,19 +17227,21 @@ OPCODE(0x4639) flag_N = res; flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // NOT OPCODE(0x461F) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, src) res = ~src; flag_C = 0; @@ -15795,19 +17249,21 @@ OPCODE(0x461F) flag_N = res; flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // NOT OPCODE(0x4627) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, src) res = ~src; flag_C = 0; @@ -15815,34 +17271,40 @@ OPCODE(0x4627) flag_N = res; flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // NOT OPCODE(0x4640) { - u32 adr, res; - u32 src, dst; - - src = DREGu16((Opcode >> 0) & 7); + u32 res; + u32 src; + + src = DREGu16((Opcode /*>> 0*/) & 7); res = ~src; flag_C = 0; flag_V = 0; flag_NotZ = res & 0xFFFF; flag_N = res >> 8; - DREGu16((Opcode >> 0) & 7) = res; -RET(4) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // NOT OPCODE(0x4650) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) res = ~src; flag_C = 0; @@ -15850,19 +17312,21 @@ OPCODE(0x4650) flag_NotZ = res & 0xFFFF; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // NOT OPCODE(0x4658) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, src) res = ~src; flag_C = 0; @@ -15870,19 +17334,21 @@ OPCODE(0x4658) flag_NotZ = res & 0xFFFF; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // NOT OPCODE(0x4660) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, src) res = ~src; flag_C = 0; @@ -15890,19 +17356,21 @@ OPCODE(0x4660) flag_NotZ = res & 0xFFFF; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // NOT OPCODE(0x4668) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) res = ~src; flag_C = 0; @@ -15910,19 +17378,21 @@ OPCODE(0x4668) flag_NotZ = res & 0xFFFF; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(9) +#endif } // NOT OPCODE(0x4670) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, src) res = ~src; flag_C = 0; @@ -15930,18 +17400,20 @@ OPCODE(0x4670) flag_NotZ = res & 0xFFFF; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(11) +#endif } // NOT OPCODE(0x4678) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, src) res = ~src; flag_C = 0; @@ -15949,18 +17421,20 @@ OPCODE(0x4678) flag_NotZ = res & 0xFFFF; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // NOT OPCODE(0x4679) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, src) res = ~src; flag_C = 0; @@ -15968,19 +17442,21 @@ OPCODE(0x4679) flag_NotZ = res & 0xFFFF; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // NOT OPCODE(0x465F) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, src) res = ~src; flag_C = 0; @@ -15988,19 +17464,21 @@ OPCODE(0x465F) flag_NotZ = res & 0xFFFF; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // NOT OPCODE(0x4667) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, src) res = ~src; flag_C = 0; @@ -16008,34 +17486,40 @@ OPCODE(0x4667) flag_NotZ = res & 0xFFFF; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // NOT OPCODE(0x4680) { - u32 adr, res; - u32 src, dst; - - src = DREGu32((Opcode >> 0) & 7); + u32 res; + u32 src; + + src = DREGu32((Opcode /*>> 0*/) & 7); res = ~src; flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; - DREGu32((Opcode >> 0) & 7) = res; -RET(6) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6) +#else + RET(2) +#endif } // NOT OPCODE(0x4690) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, src) res = ~src; flag_C = 0; @@ -16043,19 +17527,21 @@ OPCODE(0x4690) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // NOT OPCODE(0x4698) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, src) res = ~src; flag_C = 0; @@ -16063,19 +17549,21 @@ OPCODE(0x4698) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // NOT OPCODE(0x46A0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, src) res = ~src; flag_C = 0; @@ -16083,19 +17571,21 @@ OPCODE(0x46A0) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(9) +#endif } // NOT OPCODE(0x46A8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, src) res = ~src; flag_C = 0; @@ -16103,19 +17593,21 @@ OPCODE(0x46A8) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(9) +#endif } // NOT OPCODE(0x46B0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, src) res = ~src; flag_C = 0; @@ -16123,18 +17615,20 @@ OPCODE(0x46B0) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(11) +#endif } // NOT OPCODE(0x46B8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, src) res = ~src; flag_C = 0; @@ -16142,18 +17636,20 @@ OPCODE(0x46B8) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(8) +#endif } // NOT OPCODE(0x46B9) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, src) res = ~src; flag_C = 0; @@ -16161,19 +17657,21 @@ OPCODE(0x46B9) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(8) +#endif } // NOT OPCODE(0x469F) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, src) res = ~src; flag_C = 0; @@ -16181,19 +17679,21 @@ OPCODE(0x469F) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // NOT OPCODE(0x46A7) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, src) res = ~src; flag_C = 0; @@ -16201,522 +17701,550 @@ OPCODE(0x46A7) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(9) +#endif } // MOVESRa OPCODE(0x40C0) { - u32 adr, res; - u32 src, dst; - + u32 res; + res = GET_SR; - DREGu16((Opcode >> 0) & 7) = res; -RET(6) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6) +#else + RET(4) +#endif } // MOVESRa OPCODE(0x40D0) { u32 adr, res; - u32 src, dst; - + res = GET_SR; - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVESRa OPCODE(0x40D8) { u32 adr, res; - u32 src, dst; - + res = GET_SR; - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVESRa OPCODE(0x40E0) { u32 adr, res; - u32 src, dst; - + res = GET_SR; - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(7) +#endif } // MOVESRa OPCODE(0x40E8) { u32 adr, res; - u32 src, dst; - + res = GET_SR; FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // MOVESRa OPCODE(0x40F0) { u32 adr, res; - u32 src, dst; - + res = GET_SR; - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // MOVESRa OPCODE(0x40F8) { u32 adr, res; - u32 src, dst; - + res = GET_SR; FETCH_SWORD(adr); - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // MOVESRa OPCODE(0x40F9) { u32 adr, res; - u32 src, dst; - + res = GET_SR; FETCH_LONG(adr); - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // MOVESRa OPCODE(0x40DF) { u32 adr, res; - u32 src, dst; - + res = GET_SR; adr = AREG(7); AREG(7) += 2; - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // MOVESRa OPCODE(0x40E7) { u32 adr, res; - u32 src, dst; - + res = GET_SR; adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(7) +#endif } // MOVEaCCR OPCODE(0x44C0) { - u32 adr, res; - u32 src, dst; - - res = DREGu16((Opcode >> 0) & 7); + u32 res; + + res = DREGu16((Opcode /*>> 0*/) & 7); SET_CCR(res) -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(4) +#endif } // MOVEaCCR OPCODE(0x44D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) SET_CCR(res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // MOVEaCCR OPCODE(0x44D8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, res) SET_CCR(res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // MOVEaCCR OPCODE(0x44E0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, res) SET_CCR(res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // MOVEaCCR OPCODE(0x44E8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) SET_CCR(res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // MOVEaCCR OPCODE(0x44F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, res) SET_CCR(res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(11) +#endif } // MOVEaCCR OPCODE(0x44F8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, res) SET_CCR(res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // MOVEaCCR OPCODE(0x44F9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, res) SET_CCR(res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(8) +#endif } // MOVEaCCR OPCODE(0x44FA) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_WORD_F(adr, res) SET_CCR(res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // MOVEaCCR OPCODE(0x44FB) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, res) SET_CCR(res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(11) +#endif } // MOVEaCCR OPCODE(0x44FC) { - u32 adr, res; - u32 src, dst; - + u32 res; + FETCH_WORD(res); SET_CCR(res) -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // MOVEaCCR OPCODE(0x44DF) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, res) SET_CCR(res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // MOVEaCCR OPCODE(0x44E7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, res) SET_CCR(res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // MOVEaSR OPCODE(0x46C0) { - u32 adr, res; - u32 src, dst; - - if (flag_S) - { - res = DREGu16((Opcode >> 0) & 7); - SET_SR(res) - if (!flag_S) - { - res = AREG(7); - AREG(7) = ASP; - ASP = res; - } - CHECK_INT_TO_JUMP(12) - } - else - { - u32 oldPC=GET_PC; - SET_PC(oldPC-2) - execute_exception(M68K_PRIVILEGE_VIOLATION_EX); - RET(4) - } -RET(12) + u32 res; + + if (!flag_S) +#ifdef OPCODES_M68000 + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,12) +#else + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,8) +#endif + +#ifdef OPCODES_M68020 + int oldM = flag_M; +#endif + int oldS = flag_S; + res = DREGu16((Opcode /*>> 0*/) & 7); + SET_SR(res) +#ifdef OPCODES_M68000 + UPDATE_SP_000 + CHECK_INT_TO_JUMP(12) + RET(12) +#else + UPDATE_SP_020 + CHECK_INT_TO_JUMP(8) + RET(8) +#endif } // MOVEaSR OPCODE(0x46D0) { u32 adr, res; - u32 src, dst; - - if (flag_S) - { - adr = AREG((Opcode >> 0) & 7); - PRE_IO - READ_WORD_F(adr, res) - SET_SR(res) - if (!flag_S) - { - res = AREG(7); - AREG(7) = ASP; - ASP = res; - } - POST_IO - CHECK_INT_TO_JUMP(16) - } - else - { - u32 oldPC=GET_PC; - SET_PC(oldPC-2) - execute_exception(M68K_PRIVILEGE_VIOLATION_EX); - RET(4) - } -RET(16) + + if (!flag_S) +#ifdef OPCODES_M68000 + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,16) +#else + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,12) +#endif + +#ifdef OPCODES_M68020 + int oldM = flag_M; +#endif + int oldS = flag_S; + adr = AREG((Opcode /*>> 0*/) & 7); + READ_WORD_F(adr, res) + SET_SR(res) +#ifdef OPCODES_M68000 + UPDATE_SP_000 + CHECK_INT_TO_JUMP(16) + RET(16) +#else + UPDATE_SP_020 + CHECK_INT_TO_JUMP(12) + RET(12) +#endif } // MOVEaSR OPCODE(0x46D8) { u32 adr, res; - u32 src, dst; - - if (flag_S) - { - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO - READ_WORD_F(adr, res) - SET_SR(res) - if (!flag_S) - { - res = AREG(7); - AREG(7) = ASP; - ASP = res; - } - POST_IO - CHECK_INT_TO_JUMP(16) - } - else - { - u32 oldPC=GET_PC; - SET_PC(oldPC-2) - execute_exception(M68K_PRIVILEGE_VIOLATION_EX); - RET(4) - } -RET(16) + + if (!flag_S) +#ifdef OPCODES_M68000 + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,16) +#else + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,12) +#endif + +#ifdef OPCODES_M68020 + int oldM = flag_M; +#endif + int oldS = flag_S; + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; + READ_WORD_F(adr, res) + SET_SR(res) +#ifdef OPCODES_M68000 + UPDATE_SP_000 + CHECK_INT_TO_JUMP(16) + RET(16) +#else + UPDATE_SP_020 + CHECK_INT_TO_JUMP(12) + RET(12) +#endif } // MOVEaSR OPCODE(0x46E0) { u32 adr, res; - u32 src, dst; - - if (flag_S) - { - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO - READ_WORD_F(adr, res) - SET_SR(res) - if (!flag_S) - { - res = AREG(7); - AREG(7) = ASP; - ASP = res; - } - POST_IO - CHECK_INT_TO_JUMP(18) - } - else - { - u32 oldPC=GET_PC; - SET_PC(oldPC-2) - execute_exception(M68K_PRIVILEGE_VIOLATION_EX); - RET(4) - } -RET(18) + + if (!flag_S) +#ifdef OPCODES_M68000 + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,18) +#else + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,13) +#endif + +#ifdef OPCODES_M68020 + int oldM = flag_M; +#endif + int oldS = flag_S; + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; + READ_WORD_F(adr, res) + SET_SR(res) +#ifdef OPCODES_M68000 + UPDATE_SP_000 + CHECK_INT_TO_JUMP(18) + RET(18) +#else + UPDATE_SP_020 + CHECK_INT_TO_JUMP(13) + RET(13) +#endif } // MOVEaSR OPCODE(0x46E8) { u32 adr, res; - u32 src, dst; - - if (flag_S) - { - FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO - READ_WORD_F(adr, res) - SET_SR(res) - if (!flag_S) - { - res = AREG(7); - AREG(7) = ASP; - ASP = res; - } - POST_IO - CHECK_INT_TO_JUMP(20) - } - else - { - u32 oldPC=GET_PC; - SET_PC(oldPC-2) - execute_exception(M68K_PRIVILEGE_VIOLATION_EX); - RET(4) - } -RET(20) + + if (!flag_S) +#ifdef OPCODES_M68000 + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,20) +#else + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,13) +#endif + +#ifdef OPCODES_M68020 + int oldM = flag_M; +#endif + int oldS = flag_S; + FETCH_SWORD(adr); + adr += AREG((Opcode /*>> 0*/) & 7); + READ_WORD_F(adr, res) + SET_SR(res) +#ifdef OPCODES_M68000 + UPDATE_SP_000 + CHECK_INT_TO_JUMP(20) + RET(20) +#else + UPDATE_SP_020 + CHECK_INT_TO_JUMP(13) + RET(13) +#endif } // MOVEaSR OPCODE(0x46F0) { u32 adr, res; - u32 src, dst; - - if (flag_S) - { - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO - READ_WORD_F(adr, res) - SET_SR(res) - if (!flag_S) - { - res = AREG(7); - AREG(7) = ASP; - ASP = res; - } - POST_IO - CHECK_INT_TO_JUMP(22) - } - else - { - u32 oldPC=GET_PC; - SET_PC(oldPC-2) - execute_exception(M68K_PRIVILEGE_VIOLATION_EX); - RET(4) - } -RET(22) + + if (!flag_S) +#ifdef OPCODES_M68000 + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,22) +#else + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,15) +#endif + +#ifdef OPCODES_M68020 + int oldM = flag_M; +#endif + int oldS = flag_S; + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); + READ_WORD_F(adr, res) + SET_SR(res) +#ifdef OPCODES_M68000 + UPDATE_SP_000 + CHECK_INT_TO_JUMP(22) + RET(22) +#else + UPDATE_SP_020 + CHECK_INT_TO_JUMP(15) + RET(15) +#endif } @@ -16724,597 +18252,613 @@ RET(22) OPCODE(0x46F8) { u32 adr, res; - u32 src, dst; - - if (flag_S) - { - FETCH_SWORD(adr); - PRE_IO - READ_WORD_F(adr, res) - SET_SR(res) - if (!flag_S) - { - res = AREG(7); - AREG(7) = ASP; - ASP = res; - } - POST_IO - CHECK_INT_TO_JUMP(20) - } - else - { - u32 oldPC=GET_PC; - SET_PC(oldPC-2) - execute_exception(M68K_PRIVILEGE_VIOLATION_EX); - RET(4) - } -RET(20) + + if (!flag_S) +#ifdef OPCODES_M68000 + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,20) +#else + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,12) +#endif + +#ifdef OPCODES_M68020 + int oldM = flag_M; +#endif + int oldS = flag_S; + FETCH_SWORD(adr); + READ_WORD_F(adr, res) + SET_SR(res) +#ifdef OPCODES_M68000 + UPDATE_SP_000 + CHECK_INT_TO_JUMP(20) + RET(20) +#else + UPDATE_SP_020 + CHECK_INT_TO_JUMP(12) + RET(12) +#endif } // MOVEaSR OPCODE(0x46F9) { u32 adr, res; - u32 src, dst; - - if (flag_S) - { - FETCH_LONG(adr); - PRE_IO - READ_WORD_F(adr, res) - SET_SR(res) - if (!flag_S) - { - res = AREG(7); - AREG(7) = ASP; - ASP = res; - } - POST_IO - CHECK_INT_TO_JUMP(24) - } - else - { - u32 oldPC=GET_PC; - SET_PC(oldPC-2) - execute_exception(M68K_PRIVILEGE_VIOLATION_EX); - RET(4) - } -RET(24) + + if (!flag_S) +#ifdef OPCODES_M68000 + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,24) +#else + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,12) +#endif + +#ifdef OPCODES_M68020 + int oldM = flag_M; +#endif + int oldS = flag_S; + FETCH_LONG(adr); + READ_WORD_F(adr, res) + SET_SR(res) +#ifdef OPCODES_M68000 + UPDATE_SP_000 + CHECK_INT_TO_JUMP(24) + RET(24) +#else + UPDATE_SP_020 + CHECK_INT_TO_JUMP(12) + RET(12) +#endif } // MOVEaSR OPCODE(0x46FA) { u32 adr, res; - u32 src, dst; - - if (flag_S) - { - adr = GET_SWORD + ((u32)(PC) - BasePC); - PC++; - PRE_IO - READ_WORD_F(adr, res) - SET_SR(res) - if (!flag_S) - { - res = AREG(7); - AREG(7) = ASP; - ASP = res; - } - POST_IO - CHECK_INT_TO_JUMP(24) - } - else - { - u32 oldPC=GET_PC; - SET_PC(oldPC-2) - execute_exception(M68K_PRIVILEGE_VIOLATION_EX); - RET(4) - } -RET(20) + + if (!flag_S) +#ifdef OPCODES_M68000 + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,20) +#else + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,13) +#endif + +#ifdef OPCODES_M68020 + int oldM = flag_M; +#endif + int oldS = flag_S; + adr = GET_SWORD + ((u32)(PC) - BasePC); + PC++; + READ_WORD_F(adr, res) + SET_SR(res) +#ifdef OPCODES_M68000 + UPDATE_SP_000 + CHECK_INT_TO_JUMP(20) + RET(20) +#else + UPDATE_SP_020 + CHECK_INT_TO_JUMP(13) + RET(13) +#endif } // MOVEaSR OPCODE(0x46FB) { u32 adr, res; - u32 src, dst; - - if (flag_S) - { - adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO - READ_WORD_F(adr, res) - SET_SR(res) - if (!flag_S) - { - res = AREG(7); - AREG(7) = ASP; - ASP = res; - } - POST_IO - CHECK_INT_TO_JUMP(22) - } - else - { - u32 oldPC=GET_PC; - SET_PC(oldPC-2) - execute_exception(M68K_PRIVILEGE_VIOLATION_EX); - RET(4) - } -RET(22) + + if (!flag_S) +#ifdef OPCODES_M68000 + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,22) +#else + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,15) +#endif + +#ifdef OPCODES_M68020 + int oldM = flag_M; +#endif + int oldS = flag_S; + adr = (u32)(PC) - BasePC; + DECODE_EXT_WORD(&adr); + READ_WORD_F(adr, res) + SET_SR(res) +#ifdef OPCODES_M68000 + UPDATE_SP_000 + CHECK_INT_TO_JUMP(22) + RET(22) +#else + UPDATE_SP_020 + CHECK_INT_TO_JUMP(15) + RET(15) +#endif } // MOVEaSR OPCODE(0x46FC) { - u32 adr, res; - u32 src, dst; - - if (flag_S) - { - FETCH_WORD(res); - SET_SR(res) - if (!flag_S) - { - res = AREG(7); - AREG(7) = ASP; - ASP = res; - } - CHECK_INT_TO_JUMP(16) - } - else - { - u32 oldPC=GET_PC; - SET_PC(oldPC-2) - execute_exception(M68K_PRIVILEGE_VIOLATION_EX); - RET(4) - } -RET(16) + u32 res; + + if (!flag_S) +#ifdef OPCODES_M68000 + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,16) +#else + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,10) +#endif + +#ifdef OPCODES_M68020 + int oldM = flag_M; +#endif + int oldS = flag_S; + FETCH_WORD(res); + SET_SR(res) +#ifdef OPCODES_M68000 + UPDATE_SP_000 + CHECK_INT_TO_JUMP(16) + RET(16) +#else + UPDATE_SP_020 + CHECK_INT_TO_JUMP(10) + RET(10) +#endif } // MOVEaSR OPCODE(0x46DF) { u32 adr, res; - u32 src, dst; - - if (flag_S) - { - adr = AREG(7); - AREG(7) += 2; - PRE_IO - READ_WORD_F(adr, res) - SET_SR(res) - if (!flag_S) - { - res = AREG(7); - AREG(7) = ASP; - ASP = res; - } - POST_IO - CHECK_INT_TO_JUMP(16) - } - else - { - u32 oldPC=GET_PC; - SET_PC(oldPC-2) - execute_exception(M68K_PRIVILEGE_VIOLATION_EX); - RET(4) - } -RET(16) + + if (!flag_S) +#ifdef OPCODES_M68000 + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,16) +#else + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,12) +#endif + +#ifdef OPCODES_M68020 + int oldM = flag_M; +#endif + int oldS = flag_S; + adr = AREG(7); + AREG(7) += 2; + READ_WORD_F(adr, res) + SET_SR(res) +#ifdef OPCODES_M68000 + UPDATE_SP_000 + CHECK_INT_TO_JUMP(16) + RET(16) +#else + UPDATE_SP_020 + CHECK_INT_TO_JUMP(12) + RET(12) +#endif } // MOVEaSR OPCODE(0x46E7) { u32 adr, res; - u32 src, dst; - - if (flag_S) - { - adr = AREG(7) - 2; - AREG(7) = adr; - PRE_IO - READ_WORD_F(adr, res) - SET_SR(res) - if (!flag_S) - { - res = AREG(7); - AREG(7) = ASP; - ASP = res; - } - POST_IO - CHECK_INT_TO_JUMP(18) - } - else - { - u32 oldPC=GET_PC; - SET_PC(oldPC-2) - execute_exception(M68K_PRIVILEGE_VIOLATION_EX); - RET(4) - } -RET(18) + + if (!flag_S) +#ifdef OPCODES_M68000 + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,18) +#else + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,13) +#endif + +#ifdef OPCODES_M68020 + int oldM = flag_M; +#endif + int oldS = flag_S; + adr = AREG(7) - 2; + AREG(7) = adr; + READ_WORD_F(adr, res) + SET_SR(res) +#ifdef OPCODES_M68000 + UPDATE_SP_000 + CHECK_INT_TO_JUMP(18) + RET(18) +#else + UPDATE_SP_020 + CHECK_INT_TO_JUMP(13) + RET(13) +#endif } // NBCD OPCODE(0x4800) { - u32 adr, res; - u32 src, dst; - - res = DREGu8((Opcode >> 0) & 7); + u32 res; + + res = DREGu8((Opcode /*>> 0*/) & 7); res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1); - + if (res != 0x9a) { if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10; res &= 0xFF; - DREGu8((Opcode >> 0) & 7) = res; + DREGu8((Opcode /*>> 0*/) & 7) = res; flag_NotZ |= res; flag_X = flag_C = M68K_SR_C; } else flag_X = flag_C = 0; flag_N = res; -RET(6) +#ifdef OPCODES_M68000 + RET(6) +#else + RET(6) +#endif } // NBCD OPCODE(0x4810) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1); - + if (res != 0x9a) { if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10; res &= 0xFF; - WRITE_BYTE_F(adr, res) + WRITE_BYTE_F(adr, res) flag_NotZ |= res; flag_X = flag_C = M68K_SR_C; } else flag_X = flag_C = 0; flag_N = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(12) // Not sure about this value +#endif } // NBCD OPCODE(0x4818) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, res) res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1); - + if (res != 0x9a) { if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10; res &= 0xFF; - WRITE_BYTE_F(adr, res) + WRITE_BYTE_F(adr, res) flag_NotZ |= res; flag_X = flag_C = M68K_SR_C; } else flag_X = flag_C = 0; flag_N = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(12) // Not sure about this value +#endif } // NBCD OPCODE(0x4820) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, res) res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1); - + if (res != 0x9a) { if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10; res &= 0xFF; - WRITE_BYTE_F(adr, res) + WRITE_BYTE_F(adr, res) flag_NotZ |= res; flag_X = flag_C = M68K_SR_C; } else flag_X = flag_C = 0; flag_N = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(13) // Not sure about this value +#endif } // NBCD OPCODE(0x4828) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1); - + if (res != 0x9a) { if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10; res &= 0xFF; - WRITE_BYTE_F(adr, res) + WRITE_BYTE_F(adr, res) flag_NotZ |= res; flag_X = flag_C = M68K_SR_C; } else flag_X = flag_C = 0; flag_N = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(13) // Not sure about this value +#endif } // NBCD OPCODE(0x4830) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1); - + if (res != 0x9a) { if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10; res &= 0xFF; - WRITE_BYTE_F(adr, res) + WRITE_BYTE_F(adr, res) flag_NotZ |= res; flag_X = flag_C = M68K_SR_C; } else flag_X = flag_C = 0; flag_N = res; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(15) // Not sure about this value +#endif } // NBCD OPCODE(0x4838) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, res) res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1); - + if (res != 0x9a) { if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10; res &= 0xFF; - WRITE_BYTE_F(adr, res) + WRITE_BYTE_F(adr, res) flag_NotZ |= res; flag_X = flag_C = M68K_SR_C; } else flag_X = flag_C = 0; flag_N = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(12) // Not sure about this value +#endif } // NBCD OPCODE(0x4839) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, res) res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1); - + if (res != 0x9a) { if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10; res &= 0xFF; - WRITE_BYTE_F(adr, res) + WRITE_BYTE_F(adr, res) flag_NotZ |= res; flag_X = flag_C = M68K_SR_C; } else flag_X = flag_C = 0; flag_N = res; - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(12) // Not sure about this value +#endif } // NBCD OPCODE(0x481F) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, res) res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1); - + if (res != 0x9a) { if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10; res &= 0xFF; - WRITE_BYTE_F(adr, res) + WRITE_BYTE_F(adr, res) flag_NotZ |= res; flag_X = flag_C = M68K_SR_C; } else flag_X = flag_C = 0; flag_N = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(12) // Not sure about this value +#endif } // NBCD OPCODE(0x4827) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, res) res = 0x9a - res - ((flag_X >> M68K_SR_X_SFT) & 1); - + if (res != 0x9a) { if ((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10; res &= 0xFF; - WRITE_BYTE_F(adr, res) + WRITE_BYTE_F(adr, res) flag_NotZ |= res; flag_X = flag_C = M68K_SR_C; } else flag_X = flag_C = 0; flag_N = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(13) // Not sure about this value +#endif } // PEA OPCODE(0x4850) { - u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + u32 adr; + + adr = AREG((Opcode /*>> 0*/) & 7); PUSH_32_F(adr) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // PEA OPCODE(0x4868) { - u32 adr, res; - u32 src, dst; - + u32 adr; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); PUSH_32_F(adr) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // PEA OPCODE(0x4870) { - u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + u32 adr; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); PUSH_32_F(adr) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // PEA OPCODE(0x4878) { - u32 adr, res; - u32 src, dst; - + u32 adr; + FETCH_SWORD(adr); - PRE_IO PUSH_32_F(adr) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // PEA OPCODE(0x4879) { - u32 adr, res; - u32 src, dst; - + u32 adr; + FETCH_LONG(adr); - PRE_IO PUSH_32_F(adr) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // PEA OPCODE(0x487A) { - u32 adr, res; - u32 src, dst; - + u32 adr; + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO PUSH_32_F(adr) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // PEA OPCODE(0x487B) { - u32 adr, res; - u32 src, dst; - + u32 adr; + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); PUSH_32_F(adr) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // SWAP OPCODE(0x4840) { - u32 adr, res; - u32 src, dst; - - res = DREGu32((Opcode >> 0) & 7); + u32 res; + + res = DREGu32((Opcode /*>> 0*/) & 7); res = (res >> 16) | (res << 16); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; - DREGu32((Opcode >> 0) & 7) = res; -RET(4) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else + RET(4) +#endif } // MOVEMRa OPCODE(0x4890) { u32 adr, res; - u32 src, dst; - + u32 dst; + u32 *psrc; - + FETCH_WORD(res); - adr = AREG((Opcode >> 0) & 7); + adr = AREG((Opcode /*>> 0*/) & 7); psrc = &DREGu32(0); dst = adr; - PRE_IO do { if (res & 1) @@ -17324,12 +18868,12 @@ OPCODE(0x4890) } psrc++; } while (res >>= 1); - POST_IO - io_cycle_counter -= (adr - dst) * 2; -#ifdef USE_CYCLONE_TIMING -RET(8) +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter -= (((adr - dst) * 2) << mainMenu_CPU_speed); + RET(8) #else -RET(12) + m68kcontext.io_cycle_counter -= ((((adr - dst) >> 1) * 3) << mainMenu_CPU_speed); + RET(6) #endif } @@ -17337,44 +18881,50 @@ RET(12) OPCODE(0x48A0) { u32 adr, res; - u32 src, dst; - + u32 dst; + u32 *psrc; - + FETCH_WORD(res); - adr = AREG((Opcode >> 0) & 7); + adr = AREG((Opcode /*>> 0*/) & 7); psrc = &AREGu32(7); dst = adr; - PRE_IO do { if (res & 1) { adr -= 2; +#ifdef OPCODES_M68020 + if (prefs_cpu_model >= M68020) + AREG((Opcode /*>> 0*/) & 7) = adr; +#endif WRITE_WORD_F(adr, *psrc) } psrc--; } while (res >>= 1); - AREG((Opcode >> 0) & 7) = adr; - POST_IO - io_cycle_counter -= (dst - adr) * 2; -RET(8) + AREG((Opcode /*>> 0*/) & 7) = adr; +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter -= (((dst - adr) * 2) << mainMenu_CPU_speed); + RET(8) +#else + m68kcontext.io_cycle_counter -= ((((dst - adr) >> 1) * 3) << mainMenu_CPU_speed); + RET(8) +#endif } // MOVEMRa OPCODE(0x48A8) { u32 adr, res; - u32 src, dst; - + u32 dst; + u32 *psrc; - + FETCH_WORD(res); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); + adr += AREG((Opcode /*>> 0*/) & 7); psrc = &DREGu32(0); dst = adr; - PRE_IO do { if (res & 1) @@ -17384,12 +18934,12 @@ OPCODE(0x48A8) } psrc++; } while (res >>= 1); - POST_IO - io_cycle_counter -= (adr - dst) * 2; -#ifdef USE_CYCLONE_TIMING -RET(12) +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter -= (((adr - dst) * 2) << mainMenu_CPU_speed); + RET(12) #else -RET(20) + m68kcontext.io_cycle_counter -= ((((adr - dst) >> 1) * 3) << mainMenu_CPU_speed); + RET(14) #endif } @@ -17397,16 +18947,15 @@ RET(20) OPCODE(0x48B0) { u32 adr, res; - u32 src, dst; - + u32 dst; + u32 *psrc; - + FETCH_WORD(res); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); psrc = &DREGu32(0); dst = adr; - PRE_IO do { if (res & 1) @@ -17416,12 +18965,12 @@ OPCODE(0x48B0) } psrc++; } while (res >>= 1); - POST_IO - io_cycle_counter -= (adr - dst) * 2; -#ifdef USE_CYCLONE_TIMING -RET(14) +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter -= (((adr - dst) * 2) << mainMenu_CPU_speed); + RET(14) #else -RET(24) + m68kcontext.io_cycle_counter -= ((((adr - dst) >> 1) * 3) << mainMenu_CPU_speed); + RET(10) #endif } @@ -17429,15 +18978,14 @@ RET(24) OPCODE(0x48B8) { u32 adr, res; - u32 src, dst; - + u32 dst; + u32 *psrc; - + FETCH_WORD(res); FETCH_SWORD(adr); psrc = &DREGu32(0); dst = adr; - PRE_IO do { if (res & 1) @@ -17447,12 +18995,12 @@ OPCODE(0x48B8) } psrc++; } while (res >>= 1); - POST_IO - io_cycle_counter -= (adr - dst) * 2; -#ifdef USE_CYCLONE_TIMING -RET(12) +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter -= (((adr - dst) * 2) << mainMenu_CPU_speed); + RET(12) #else -RET(20) + m68kcontext.io_cycle_counter -= ((((adr - dst) >> 1) * 3) << mainMenu_CPU_speed); + RET(8) #endif } @@ -17460,15 +19008,14 @@ RET(20) OPCODE(0x48B9) { u32 adr, res; - u32 src, dst; - + u32 dst; + u32 *psrc; - + FETCH_WORD(res); FETCH_LONG(adr); psrc = &DREGu32(0); dst = adr; - PRE_IO do { if (res & 1) @@ -17478,12 +19025,12 @@ OPCODE(0x48B9) } psrc++; } while (res >>= 1); - POST_IO - io_cycle_counter -= (adr - dst) * 2; -#ifdef USE_CYCLONE_TIMING -RET(16) +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter -= (((adr - dst) * 2) << mainMenu_CPU_speed); + RET(16) #else -RET(28) + m68kcontext.io_cycle_counter -= ((((adr - dst) >> 1) * 3) << mainMenu_CPU_speed); + RET(8) #endif } @@ -17491,15 +19038,14 @@ RET(28) OPCODE(0x48A7) { u32 adr, res; - u32 src, dst; - + u32 dst; + u32 *psrc; - + FETCH_WORD(res); adr = AREG(7); psrc = &AREGu32(7); dst = adr; - PRE_IO do { if (res & 1) @@ -17510,24 +19056,27 @@ OPCODE(0x48A7) psrc--; } while (res >>= 1); AREG(7) = adr; - POST_IO - io_cycle_counter -= (dst - adr) * 2; -RET(8) +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter -= (((dst - adr) * 2) << mainMenu_CPU_speed); + RET(8) +#else + m68kcontext.io_cycle_counter -= ((((dst - adr) >> 1) * 3) << mainMenu_CPU_speed); + RET(6) +#endif } // MOVEMRa OPCODE(0x48D0) { u32 adr, res; - u32 src, dst; - + u32 dst; + u32 *psrc; - + FETCH_WORD(res); - adr = AREG((Opcode >> 0) & 7); + adr = AREG((Opcode /*>> 0*/) & 7); psrc = &DREGu32(0); dst = adr; - PRE_IO do { if (res & 1) @@ -17537,12 +19086,12 @@ OPCODE(0x48D0) } psrc++; } while (res >>= 1); - POST_IO - io_cycle_counter -= (adr - dst) * 2; -#ifdef USE_CYCLONE_TIMING -RET(8) +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter -= (((adr - dst) * 2) << mainMenu_CPU_speed); + RET(8) #else -RET(16) + m68kcontext.io_cycle_counter -= ((((adr - dst) >> 2) * 3) << mainMenu_CPU_speed); + RET(6) #endif } @@ -17550,44 +19099,50 @@ RET(16) OPCODE(0x48E0) { u32 adr, res; - u32 src, dst; - + u32 dst; + u32 *psrc; - + FETCH_WORD(res); - adr = AREG((Opcode >> 0) & 7); + adr = AREG((Opcode /*>> 0*/) & 7); psrc = &AREGu32(7); dst = adr; - PRE_IO do { if (res & 1) { adr -= 4; +#ifdef OPCODES_M68020 + if (prefs_cpu_model >= M68020) + AREG((Opcode /*>> 0*/) & 7) = adr; +#endif WRITE_LONG_DEC_F(adr, *psrc) } psrc--; } while (res >>= 1); - AREG((Opcode >> 0) & 7) = adr; - POST_IO - io_cycle_counter -= (dst - adr) * 2; -RET(8) + AREG((Opcode /*>> 0*/) & 7) = adr; +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter -= (((dst - adr) * 2) << mainMenu_CPU_speed); + RET(8) +#else + m68kcontext.io_cycle_counter -= ((((dst - adr) >> 2) * 3) << mainMenu_CPU_speed); + RET(8) +#endif } // MOVEMRa OPCODE(0x48E8) { u32 adr, res; - u32 src, dst; - + u32 dst; + u32 *psrc; - + FETCH_WORD(res); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); + adr += AREG((Opcode /*>> 0*/) & 7); psrc = &DREGu32(0); dst = adr; - PRE_IO do { if (res & 1) @@ -17597,12 +19152,12 @@ OPCODE(0x48E8) } psrc++; } while (res >>= 1); - POST_IO - io_cycle_counter -= (adr - dst) * 2; -#ifdef USE_CYCLONE_TIMING -RET(12) +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter -= (((adr - dst) * 2) << mainMenu_CPU_speed); + RET(12) #else -RET(24) + m68kcontext.io_cycle_counter -= ((((adr - dst) >> 2) * 3) << mainMenu_CPU_speed); + RET(14) #endif } @@ -17610,16 +19165,15 @@ RET(24) OPCODE(0x48F0) { u32 adr, res; - u32 src, dst; - + u32 dst; + u32 *psrc; - + FETCH_WORD(res); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); psrc = &DREGu32(0); dst = adr; - PRE_IO do { if (res & 1) @@ -17629,12 +19183,12 @@ OPCODE(0x48F0) } psrc++; } while (res >>= 1); - POST_IO - io_cycle_counter -= (adr - dst) * 2; -#ifdef USE_CYCLONE_TIMING -RET(14) +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter -= (((adr - dst) * 2) << mainMenu_CPU_speed); + RET(14) #else -RET(28) + m68kcontext.io_cycle_counter -= ((((adr - dst) >> 2) * 3) << mainMenu_CPU_speed); + RET(10) #endif } @@ -17642,15 +19196,14 @@ RET(28) OPCODE(0x48F8) { u32 adr, res; - u32 src, dst; - + u32 dst; + u32 *psrc; - + FETCH_WORD(res); FETCH_SWORD(adr); psrc = &DREGu32(0); dst = adr; - PRE_IO do { if (res & 1) @@ -17660,12 +19213,12 @@ OPCODE(0x48F8) } psrc++; } while (res >>= 1); - POST_IO - io_cycle_counter -= (adr - dst) * 2; -#ifdef USE_CYCLONE_TIMING -RET(12) +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter -= (((adr - dst) * 2) << mainMenu_CPU_speed); + RET(12) #else -RET(24) + m68kcontext.io_cycle_counter -= ((((adr - dst) >> 2) * 3) << mainMenu_CPU_speed); + RET(8) #endif } @@ -17673,15 +19226,14 @@ RET(24) OPCODE(0x48F9) { u32 adr, res; - u32 src, dst; - + u32 dst; + u32 *psrc; - + FETCH_WORD(res); FETCH_LONG(adr); psrc = &DREGu32(0); dst = adr; - PRE_IO do { if (res & 1) @@ -17691,12 +19243,12 @@ OPCODE(0x48F9) } psrc++; } while (res >>= 1); - POST_IO - io_cycle_counter -= (adr - dst) * 2; -#ifdef USE_CYCLONE_TIMING -RET(16) +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter -= (((adr - dst) * 2) << mainMenu_CPU_speed); + RET(16) #else -RET(32) + m68kcontext.io_cycle_counter -= ((((adr - dst) >> 2) * 3) << mainMenu_CPU_speed); + RET(8) #endif } @@ -17704,797 +19256,1432 @@ RET(32) OPCODE(0x48E7) { u32 adr, res; - u32 src, dst; - + u32 dst; + u32 *psrc; - + FETCH_WORD(res); adr = AREG(7); psrc = &AREGu32(7); dst = adr; - PRE_IO do { if (res & 1) { adr -= 4; +#ifdef OPCODES_M68020 + if (prefs_cpu_model >= M68020) + AREG((Opcode /*>> 0*/) & 7) = adr; +#endif WRITE_LONG_DEC_F(adr, *psrc) } psrc--; } while (res >>= 1); AREG(7) = adr; - POST_IO - io_cycle_counter -= (dst - adr) * 2; -RET(8) +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter -= (((dst - adr) * 2) << mainMenu_CPU_speed); + RET(8) +#else + m68kcontext.io_cycle_counter -= ((((dst - adr) >> 2) * 3) << mainMenu_CPU_speed); + RET(6) +#endif } // EXT OPCODE(0x4880) { - u32 adr, res; - u32 src, dst; - - res = (s32)DREGs8((Opcode >> 0) & 7); + u32 res; + + res = (s32)DREGs8((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; - DREGu16((Opcode >> 0) & 7) = res; -RET(4) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else + RET(4) +#endif } // EXT OPCODE(0x48C0) { - u32 adr, res; - u32 src, dst; - - res = (s32)DREGs16((Opcode >> 0) & 7); + u32 res; + + res = (s32)DREGs16((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; - DREGu32((Opcode >> 0) & 7) = res; -RET(4) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else + RET(4) +#endif +} + +#ifdef OPCODES_M68020 +// EXTB.L - 68020+ +OPCODE(0x49C0) +{ + s32 res; + + res = (s32)DREGs8((Opcode /*>> 0*/) & 7); + flag_C = 0; + flag_V = 0; + flag_NotZ = res; + flag_N = res >> 24; + DREGu32((Opcode /*>> 0*/) & 7) = res; + RET(4) } +#endif // TST OPCODE(0x4A00) { - u32 adr, res; - u32 src, dst; - - res = DREGu8((Opcode >> 0) & 7); + u32 res; + + res = DREGu8((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // TST OPCODE(0x4A10) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // TST OPCODE(0x4A18) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // TST OPCODE(0x4A20) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(7) +#endif } // TST OPCODE(0x4A28) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // TST OPCODE(0x4A30) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // TST OPCODE(0x4A38) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // TST OPCODE(0x4A39) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } +#ifdef OPCODES_M68020 +// TST.B (d16,PC) - 68020+ +OPCODE(0x4A3A) +{ + u32 adr, res; + + adr = GET_SWORD + ((u32)(PC) - BasePC); + PC++; + READ_BYTE_F(adr, res) + flag_C = 0; + flag_V = 0; + flag_NotZ = res; + flag_N = res; + RET(7) +} + +// TST.B - (d8,PC,Xn) / (bd,PC,Xn)... - 68020+ +OPCODE(0x4A3B) +{ + u32 adr, res; + + adr = (u32)(PC) - BasePC; + DECODE_EXT_WORD(&adr); + READ_BYTE_F(adr, res) + flag_C = 0; + flag_V = 0; + flag_NotZ = res; + flag_N = res; + RET(9) +} + +// TST.B #.B - 68020+ +OPCODE(0x4A3C) +{ + u32 res; + + FETCH_BYTE(res); + flag_C = 0; + flag_V = 0; + flag_NotZ = res; + flag_N = res; + RET(4) +} +#endif + // TST OPCODE(0x4A1F) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // TST OPCODE(0x4A27) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(7) +#endif } // TST OPCODE(0x4A40) { - u32 adr, res; - u32 src, dst; - - res = DREGu16((Opcode >> 0) & 7); + u32 res; + + res = DREGu16((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif +} + +#ifdef OPCODES_M68020 +// TST.W An - 68020+ +OPCODE(0x4A48) +{ + u32 res; + + res = AREGu16((Opcode /*>> 0*/) & 7); + flag_C = 0; + flag_V = 0; + flag_NotZ = res; + flag_N = res >> 8; + RET(2) } +#endif // TST OPCODE(0x4A50) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // TST OPCODE(0x4A58) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // TST OPCODE(0x4A60) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(7) +#endif } // TST OPCODE(0x4A68) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // TST OPCODE(0x4A70) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // TST OPCODE(0x4A78) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // TST OPCODE(0x4A79) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif +} + +#ifdef OPCODES_M68020 +// TST.W (d16,PC) - 68020+ +OPCODE(0x4A7A) +{ + u32 adr, res; + + adr = GET_SWORD + ((u32)(PC) - BasePC); + PC++; + READ_WORD_F(adr, res) + flag_C = 0; + flag_V = 0; + flag_NotZ = res; + flag_N = res >> 8; + RET(7) +} + +// TST.W - (d8,PC,Xn) / (bd,PC,Xn)... - 68020+ +OPCODE(0x4A7B) +{ + u32 adr, res; + + adr = (u32)(PC) - BasePC; + DECODE_EXT_WORD(&adr); + READ_WORD_F(adr, res) + flag_C = 0; + flag_V = 0; + flag_NotZ = res; + flag_N = res >> 8; + RET(9) +} + +// TST.W #.W - 68020+ +OPCODE(0x4A7C) +{ + u32 res; + + FETCH_SWORD(res); + flag_C = 0; + flag_V = 0; + flag_NotZ = res; + flag_N = res >> 8; + RET(4) } +#endif // TST OPCODE(0x4A5F) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // TST OPCODE(0x4A67) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(7) +#endif } // TST OPCODE(0x4A80) { - u32 adr, res; - u32 src, dst; - - res = DREGu32((Opcode >> 0) & 7); + u32 res; + + res = DREGu32((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif +} + +#ifdef OPCODES_M68020 +// TST.L An - 68020+ +OPCODE(0x4A88) +{ + u32 res; + + res = AREGu32((Opcode /*>> 0*/) & 7); + flag_C = 0; + flag_V = 0; + flag_NotZ = res; + flag_N = res >> 24; + RET(2) } +#endif // TST OPCODE(0x4A90) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // TST OPCODE(0x4A98) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // TST OPCODE(0x4AA0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(7) +#endif } // TST OPCODE(0x4AA8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // TST OPCODE(0x4AB0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // TST OPCODE(0x4AB8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // TST OPCODE(0x4AB9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(6) +#endif +} + +#ifdef OPCODES_M68020 +// TST.L (d16,PC) - 68020+ +OPCODE(0x4ABA) +{ + u32 adr, res; + + adr = GET_SWORD + ((u32)(PC) - BasePC); + PC++; + READ_LONG_F(adr, res) + flag_C = 0; + flag_V = 0; + flag_NotZ = res; + flag_N = res >> 24; + RET(7) +} + +// TST.L - (d8,PC,Xn) / (bd,PC,Xn)... - 68020+ +OPCODE(0x4ABB) +{ + u32 adr, res; + + adr = (u32)(PC) - BasePC; + DECODE_EXT_WORD(&adr); + READ_LONG_F(adr, res) + flag_C = 0; + flag_V = 0; + flag_NotZ = res; + flag_N = res >> 24; + RET(9) +} + +// TST.L #.L - 68020+ +OPCODE(0x4ABC) +{ + u32 res; + + FETCH_LONG(res) + flag_C = 0; + flag_V = 0; + flag_NotZ = res; + flag_N = res >> 24; + RET(6) } +#endif // TST OPCODE(0x4A9F) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // TST OPCODE(0x4AA7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(7) +#endif } // TAS OPCODE(0x4AC0) { - u32 adr, res; - u32 src, dst; - - res = DREGu8((Opcode >> 0) & 7); + u32 res; + + res = DREGu8((Opcode /*>> 0*/) & 7); flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; res |= 0x80; - DREGu8((Opcode >> 0) & 7) = res; -RET(4) -} - -// TAS + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else + RET(4) +#endif +} + +// TAS OPCODE(0x4AD0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(14) +#endif } // TAS OPCODE(0x4AD8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(14) +#endif } // TAS OPCODE(0x4AE0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(14) +#endif } // TAS OPCODE(0x4AE8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(14) +#endif } // TAS OPCODE(0x4AF0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(18) +#endif } // TAS OPCODE(0x4AF8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(14) +#endif } // TAS OPCODE(0x4AF9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(16) +#endif } // TAS OPCODE(0x4ADF) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(14) +#endif } // TAS OPCODE(0x4AE7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, res) flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(14) +#endif } // ILLEGAL OPCODE(0x4AFC) { - u32 res; - u32 oldPC=GET_PC; - SET_PC(oldPC-2) - execute_exception(M68K_ILLEGAL_INSTRUCTION_EX); -RET(4) + u32 oldPC=GET_PC; + SET_PC(oldPC-2) + execute_exception(M68K_ILLEGAL_INSTRUCTION_EX); +#ifdef OPCODES_M68000 + RET(4) +#else + RET(20) +#endif } // ILLEGAL A000-AFFF OPCODE(0xA000) { - u32 res; - u32 oldPC=GET_PC; - SET_PC(oldPC-2) - execute_exception(M68K_1010_EX); -RET(4) + u32 oldPC=GET_PC; + SET_PC(oldPC-2) + execute_exception(M68K_1010_EX); +#ifdef OPCODES_M68000 + RET(4) +#else + RET(20) +#endif } // ILLEGAL F000-FFFF OPCODE(0xF000) { - u32 res; - u32 oldPC=GET_PC; - SET_PC(oldPC-2) - execute_exception(M68K_1111_EX); -RET(4) + u32 oldPC=GET_PC; + SET_PC(oldPC-2) + execute_exception(M68K_1111_EX); +#ifdef OPCODES_M68000 + RET(4) +#else + RET(20) +#endif } +#ifdef OPCODES_M68020 +// MULS/MULU.L Dn - Long Format, 68020+ +OPCODE(0x4C00) +{ + u32 res; + u32 src; + + FETCH_WORD(res) + src = DREGu32((Opcode /*>> 0*/) & 7); + + MULL(src, res); + + RET(45) +} + +// MULS/MULU.L (An) - Long Format, 68020+ +OPCODE(0x4C10) +{ + u32 adr, res; + u32 src; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + READ_LONG_F(adr, src) + MULL(src, res); + + RET(47) +} + +// MULS/MULU.L (An)+ - Long Format, 68020+ +OPCODE(0x4C18) +{ + u32 adr, res; + u32 src; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; + READ_LONG_F(adr, src) + MULL(src, res); + + RET(49) +} + +// MULS/MULU.L -(An) - Long Format, 68020+ +OPCODE(0x4C20) +{ + u32 adr, res; + u32 src; + + FETCH_WORD(res) + AREG((Opcode /*>> 0*/) & 7) -= 4; + adr = AREG((Opcode /*>> 0*/) & 7); + READ_LONG_F(adr, src) + MULL(src, res); + + RET(48) +} + +// MULS/MULU.L (d16,An) - Long Format, 68020+ +OPCODE(0x4C28) +{ + u32 adr, res; + u32 src; + + FETCH_WORD(res) + FETCH_SWORD(adr) + adr += AREG((Opcode /*>> 0*/) & 7); + READ_LONG_F(adr, src) + MULL(src, res); + + RET(54) +} + +// MULS/MULU.L (d8,An,Xn) / (bd,An,Xn)... - Long Format, 68020+ +OPCODE(0x4C30) +{ + u32 adr, res; + u32 src; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); + READ_LONG_F(adr, src) + MULL(src, res); + + RET(52) +} + +// MULS/MULU.L (xx).W - Long Format, 68020+ +OPCODE(0x4C38) +{ + u32 adr, res; + u32 src; + + FETCH_WORD(res) + FETCH_SWORD(adr) + READ_LONG_F(adr, src) + MULL(src, res); + + RET(48) +} + +// MULS/MULU.L (xx).L - Long Format, 68020+ +OPCODE(0x4C39) +{ + u32 adr, res; + u32 src; + + FETCH_WORD(res) + FETCH_LONG(adr) + READ_LONG_F(adr, src) + MULL(src, res); + + RET(49) +} + +// MULS/MULU.L (d16,PC) - Long Format, 68020+ +OPCODE(0x4C3A) +{ + u32 adr, res; + u32 src; + + FETCH_WORD(res) + adr = GET_SWORD + ((u32)(PC) - BasePC); + PC++; + READ_LONG_F(adr, src) + MULL(src, res); + + RET(54) +} + +// MULS/MULU.L (d8,PC,Xn) / (bd,PC,Xn)... - Long Format, 68020+ +OPCODE(0x4C3B) +{ + u32 adr, res; + u32 src; + + FETCH_WORD(res) + adr = (u32)(PC) - BasePC; + DECODE_EXT_WORD(&adr); + READ_LONG_F(adr, src) + MULL(src, res); + + RET(52) +} + +// MULS/MULU.L .W, .L - Long Format, 68020+ +OPCODE(0x4C3C) +{ + u32 adr, res; + u32 src; + + FETCH_WORD(res) + FETCH_LONG(src) + MULL(src, res); + + RET(49) +} + +// DIVSL/DIVUL.L Dn - Long Format, 68020+ +OPCODE(0x4C40) +{ + u32 adr, res; + u32 src; + + FETCH_WORD(res); + src = DREGu32((Opcode /*>> 0*/) & 7); + if (src == 0) + { + execute_exception(M68K_ZERO_DIVIDE_EX); + RET(3 + 2) // Cycles for fetch of operants + } + + res = DIVL(src, res); + + RET(80 + res) +} + +// DIVSL/DIVUL.L (An) - Long Format, 68020+ +OPCODE(0x4C50) +{ + u32 adr, res; + u32 src; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + READ_LONG_F(adr, src) + if (src == 0) + { + execute_exception(M68K_ZERO_DIVIDE_EX); + RET(3 + 4) // Cycles for fetch of operants + } + + res = DIVL(src, res); + + RET(82 + res) +} + +// DIVSL/DIVUL.L (An)+ - Long Format, 68020+ +OPCODE(0x4C58) +{ + u32 adr, res; + u32 src; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; + READ_LONG_F(adr, src) + if (src == 0) + { + execute_exception(M68K_ZERO_DIVIDE_EX); + RET(3 + 6) // Cycles for fetch of operants + } + + res = DIVL(src, res); + + RET(84 + res) +} + +// DIVSL/DIVUL.L -(An) - Long Format, 68020+ +OPCODE(0x4C60) +{ + u32 adr, res; + u32 src; + + FETCH_WORD(res) + AREG((Opcode /*>> 0*/) & 7) -= 4; + adr = AREG((Opcode /*>> 0*/) & 7); + READ_LONG_F(adr, src) + if (src == 0) + { + execute_exception(M68K_ZERO_DIVIDE_EX); + RET(3 + 5) // Cycles for fetch of operants + } + + res = DIVL(src, res); + + RET(83 + res) +} + +// DIVSL/DIVUL.L (d16,An) - Long Format, 68020+ +OPCODE(0x4C68) +{ + u32 adr, res; + u32 src; + + FETCH_WORD(res) + FETCH_SWORD(adr) + adr += AREG((Opcode /*>> 0*/) & 7); + READ_LONG_F(adr, src) + if (src == 0) + { + execute_exception(M68K_ZERO_DIVIDE_EX); + RET(3 + 11) // Cycles for fetch of operants + } + + res = DIVL(src, res); + + RET(89 + res) +} + +// DIVSL/DIVUL.L (d8,An,Xn) / (bd,An,Xn)... - Long Format, 68020+ +OPCODE(0x4C70) +{ + u32 adr, res; + u32 src; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); + READ_LONG_F(adr, src) + if (src == 0) + { + execute_exception(M68K_ZERO_DIVIDE_EX); + RET(3 + 9) // Cycles for fetch of operants + } + + res = DIVL(src, res); + + RET(87 + res) +} + +// DIVSL/DIVUL.L (xx).W - Long Format, 68020+ +OPCODE(0x4C78) +{ + u32 adr, res; + u32 src; + + FETCH_WORD(res) + FETCH_SWORD(adr) + READ_LONG_F(adr, src) + if (src == 0) + { + execute_exception(M68K_ZERO_DIVIDE_EX); + RET(3 + 5) // Cycles for fetch of operants + } + + res = DIVL(src, res); + + RET(83 + res) +} + +// DIVSL/DIVUL.L (xx).L - Long Format, 68020+ +OPCODE(0x4C79) +{ + u32 adr, res; + u32 src; + + FETCH_WORD(res) + FETCH_LONG(adr) + READ_LONG_F(adr, src) + if (src == 0) + { + execute_exception(M68K_ZERO_DIVIDE_EX); + RET(3 + 6) // Cycles for fetch of operants + } + + res = DIVL(src, res); + + RET(84 + res) +} + +// DIVSL/DIVUL.L (d16,PC) - Long Format, 68020+ +OPCODE(0x4C7A) +{ + u32 adr, res; + u32 src; + + FETCH_WORD(res) + adr = GET_SWORD + ((u32)(PC) - BasePC); + PC++; + READ_LONG_F(adr, src) + if (src == 0) + { + execute_exception(M68K_ZERO_DIVIDE_EX); + RET(3 + 11) // Cycles for fetch of operants + } + + res = DIVL(src, res); + + RET(89 + res) +} + +// DIVSL/DIVUL.L (d8,PC,Xn) / (bd,PC,Xn)... - Long Format, 68020+ +OPCODE(0x4C7B) +{ + u32 adr, res; + u32 src; + + FETCH_WORD(res) + adr = (u32)(PC) - BasePC; + DECODE_EXT_WORD(&adr); + READ_LONG_F(adr, src) + if (src == 0) + { + execute_exception(M68K_ZERO_DIVIDE_EX); + RET(3 + 9) // Cycles for fetch of operants + } + + res = DIVL(src, res); + + RET(87 + res) +} + +// DIVSL/DIVUL.L .W / .L - Long Format, 68020+ +OPCODE(0x4C7C) +{ + u32 adr, res; + u32 src; + + FETCH_WORD(res) + FETCH_LONG(src) + if (src == 0) + { + execute_exception(M68K_ZERO_DIVIDE_EX); + RET(3 + 6) // Cycles for fetch of operants + } + + res = DIVL(src, res); + + RET(84 + res) +} +#endif + // MOVEMaR OPCODE(0x4C90) { u32 adr, res; - u32 src, dst; - + u32 dst; + s32 *psrc; - + FETCH_WORD(res); - adr = AREG((Opcode >> 0) & 7); + adr = AREG((Opcode /*>> 0*/) & 7); psrc = &DREGs32(0); dst = adr; - PRE_IO do { if (res & 1) @@ -18504,12 +20691,11 @@ OPCODE(0x4C90) } psrc++; } while (res >>= 1); - POST_IO - io_cycle_counter -= (adr - dst) * 2; -#ifdef USE_CYCLONE_TIMING -RET(12) + m68kcontext.io_cycle_counter -= (((adr - dst) * 2) << mainMenu_CPU_speed); +#ifdef OPCODES_M68000 + RET(12) #else -RET(16) + RET(10) #endif } @@ -18517,15 +20703,14 @@ RET(16) OPCODE(0x4C98) { u32 adr, res; - u32 src, dst; - + u32 dst; + s32 *psrc; - + FETCH_WORD(res); - adr = AREG((Opcode >> 0) & 7); + adr = AREG((Opcode /*>> 0*/) & 7); psrc = &DREGs32(0); dst = adr; - PRE_IO do { if (res & 1) @@ -18535,26 +20720,28 @@ OPCODE(0x4C98) } psrc++; } while (res >>= 1); - AREG((Opcode >> 0) & 7) = adr; - POST_IO - io_cycle_counter -= (adr - dst) * 2; -RET(12) + AREG((Opcode /*>> 0*/) & 7) = adr; + m68kcontext.io_cycle_counter -= (((adr - dst) * 2) << mainMenu_CPU_speed); +#ifdef OPCODES_M68000 + RET(12) +#else + RET(12) +#endif } // MOVEMaR OPCODE(0x4CA8) { u32 adr, res; - u32 src, dst; - + u32 dst; + s32 *psrc; - + FETCH_WORD(res); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); + adr += AREG((Opcode /*>> 0*/) & 7); psrc = &DREGs32(0); dst = adr; - PRE_IO do { if (res & 1) @@ -18564,12 +20751,11 @@ OPCODE(0x4CA8) } psrc++; } while (res >>= 1); - POST_IO - io_cycle_counter -= (adr - dst) * 2; -#ifdef USE_CYCLONE_TIMING -RET(16) + m68kcontext.io_cycle_counter -= (((adr - dst) * 2) << mainMenu_CPU_speed); +#ifdef OPCODES_M68000 + RET(16) #else -RET(24) + RET(18) #endif } @@ -18577,16 +20763,15 @@ RET(24) OPCODE(0x4CB0) { u32 adr, res; - u32 src, dst; - + u32 dst; + s32 *psrc; - + FETCH_WORD(res); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); psrc = &DREGs32(0); dst = adr; - PRE_IO do { if (res & 1) @@ -18596,12 +20781,11 @@ OPCODE(0x4CB0) } psrc++; } while (res >>= 1); - POST_IO - io_cycle_counter -= (adr - dst) * 2; -#ifdef USE_CYCLONE_TIMING -RET(18) + m68kcontext.io_cycle_counter -= (((adr - dst) * 2) << mainMenu_CPU_speed); +#ifdef OPCODES_M68000 + RET(18) #else -RET(28) + RET(14) #endif } @@ -18609,15 +20793,14 @@ RET(28) OPCODE(0x4CB8) { u32 adr, res; - u32 src, dst; - + u32 dst; + s32 *psrc; - + FETCH_WORD(res); FETCH_SWORD(adr); psrc = &DREGs32(0); dst = adr; - PRE_IO do { if (res & 1) @@ -18627,12 +20810,11 @@ OPCODE(0x4CB8) } psrc++; } while (res >>= 1); - POST_IO - io_cycle_counter -= (adr - dst) * 2; -#ifdef USE_CYCLONE_TIMING -RET(16) + m68kcontext.io_cycle_counter -= (((adr - dst) * 2) << mainMenu_CPU_speed); +#ifdef OPCODES_M68000 + RET(16) #else -RET(24) + RET(12) #endif } @@ -18640,15 +20822,14 @@ RET(24) OPCODE(0x4CB9) { u32 adr, res; - u32 src, dst; - + u32 dst; + s32 *psrc; - + FETCH_WORD(res); FETCH_LONG(adr); psrc = &DREGs32(0); dst = adr; - PRE_IO do { if (res & 1) @@ -18658,12 +20839,11 @@ OPCODE(0x4CB9) } psrc++; } while (res >>= 1); - POST_IO - io_cycle_counter -= (adr - dst) * 2; -#ifdef USE_CYCLONE_TIMING -RET(20) + m68kcontext.io_cycle_counter -= (((adr - dst) * 2) << mainMenu_CPU_speed); +#ifdef OPCODES_M68000 + RET(20) #else -RET(32) + RET(12) #endif } @@ -18671,16 +20851,15 @@ RET(32) OPCODE(0x4CBA) { u32 adr, res; - u32 src, dst; - + u32 dst; + s32 *psrc; - + FETCH_WORD(res); adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; psrc = &DREGs32(0); dst = adr; - PRE_IO do { if (res & 1) @@ -18690,12 +20869,11 @@ OPCODE(0x4CBA) } psrc++; } while (res >>= 1); - POST_IO - io_cycle_counter -= (adr - dst) * 2; -#ifdef USE_CYCLONE_TIMING -RET(16) + m68kcontext.io_cycle_counter -= (((adr - dst) * 2) << mainMenu_CPU_speed); +#ifdef OPCODES_M68000 + RET(16) #else -RET(24) + RET(18) #endif } @@ -18703,16 +20881,15 @@ RET(24) OPCODE(0x4CBB) { u32 adr, res; - u32 src, dst; - + u32 dst; + s32 *psrc; - + FETCH_WORD(res); adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); psrc = &DREGs32(0); dst = adr; - PRE_IO do { if (res & 1) @@ -18722,12 +20899,11 @@ OPCODE(0x4CBB) } psrc++; } while (res >>= 1); - POST_IO - io_cycle_counter -= (adr - dst) * 2; -#ifdef USE_CYCLONE_TIMING -RET(18) + m68kcontext.io_cycle_counter -= (((adr - dst) * 2) << mainMenu_CPU_speed); +#ifdef OPCODES_M68000 + RET(18) #else -RET(28) + RET(14) #endif } @@ -18735,15 +20911,14 @@ RET(28) OPCODE(0x4C9F) { u32 adr, res; - u32 src, dst; - + u32 dst; + s32 *psrc; - + FETCH_WORD(res); adr = AREG(7); psrc = &DREGs32(0); dst = adr; - PRE_IO do { if (res & 1) @@ -18754,24 +20929,26 @@ OPCODE(0x4C9F) psrc++; } while (res >>= 1); AREG(7) = adr; - POST_IO - io_cycle_counter -= (adr - dst) * 2; -RET(12) + m68kcontext.io_cycle_counter -= (((adr - dst) * 2) << mainMenu_CPU_speed); +#ifdef OPCODES_M68000 + RET(12) +#else + RET(12) +#endif } // MOVEMaR OPCODE(0x4CD0) { u32 adr, res; - u32 src, dst; - + u32 dst; + u32 *psrc; - + FETCH_WORD(res); - adr = AREG((Opcode >> 0) & 7); + adr = AREG((Opcode /*>> 0*/) & 7); psrc = &DREGu32(0); dst = adr; - PRE_IO do { if (res & 1) @@ -18781,12 +20958,12 @@ OPCODE(0x4CD0) } psrc++; } while (res >>= 1); - POST_IO - io_cycle_counter -= (adr - dst) * 2; -#ifdef USE_CYCLONE_TIMING -RET(12) +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter -= (((adr - dst) * 2) << mainMenu_CPU_speed); + RET(12) #else -RET(20) + m68kcontext.io_cycle_counter -= ((adr - dst) << mainMenu_CPU_speed); + RET(12) #endif } @@ -18794,15 +20971,14 @@ RET(20) OPCODE(0x4CD8) { u32 adr, res; - u32 src, dst; - + u32 dst; + u32 *psrc; - + FETCH_WORD(res); - adr = AREG((Opcode >> 0) & 7); + adr = AREG((Opcode /*>> 0*/) & 7); psrc = &DREGu32(0); dst = adr; - PRE_IO do { if (res & 1) @@ -18812,26 +20988,29 @@ OPCODE(0x4CD8) } psrc++; } while (res >>= 1); - AREG((Opcode >> 0) & 7) = adr; - POST_IO - io_cycle_counter -= (adr - dst) * 2; -RET(12) + AREG((Opcode /*>> 0*/) & 7) = adr; +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter -= (((adr - dst) * 2) << mainMenu_CPU_speed); + RET(12) +#else + m68kcontext.io_cycle_counter -= ((adr - dst) << mainMenu_CPU_speed); + RET(14) +#endif } // MOVEMaR OPCODE(0x4CE8) { u32 adr, res; - u32 src, dst; - + u32 dst; + u32 *psrc; - + FETCH_WORD(res); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); + adr += AREG((Opcode /*>> 0*/) & 7); psrc = &DREGu32(0); dst = adr; - PRE_IO do { if (res & 1) @@ -18841,12 +21020,12 @@ OPCODE(0x4CE8) } psrc++; } while (res >>= 1); - POST_IO - io_cycle_counter -= (adr - dst) * 2; -#ifdef USE_CYCLONE_TIMING -RET(16) +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter -= (((adr - dst) * 2) << mainMenu_CPU_speed); + RET(16) #else -RET(28) + m68kcontext.io_cycle_counter -= ((adr - dst) << mainMenu_CPU_speed); + RET(20) #endif } @@ -18854,16 +21033,15 @@ RET(28) OPCODE(0x4CF0) { u32 adr, res; - u32 src, dst; - + u32 dst; + u32 *psrc; - + FETCH_WORD(res); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); psrc = &DREGu32(0); dst = adr; - PRE_IO do { if (res & 1) @@ -18873,12 +21051,12 @@ OPCODE(0x4CF0) } psrc++; } while (res >>= 1); - POST_IO - io_cycle_counter -= (adr - dst) * 2; -#ifdef USE_CYCLONE_TIMING -RET(18) +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter -= (((adr - dst) * 2) << mainMenu_CPU_speed); + RET(18) #else -RET(32) + m68kcontext.io_cycle_counter -= ((adr - dst) << mainMenu_CPU_speed); + RET(16) #endif } @@ -18886,15 +21064,14 @@ RET(32) OPCODE(0x4CF8) { u32 adr, res; - u32 src, dst; - + u32 dst; + u32 *psrc; - + FETCH_WORD(res); FETCH_SWORD(adr); psrc = &DREGu32(0); dst = adr; - PRE_IO do { if (res & 1) @@ -18904,12 +21081,12 @@ OPCODE(0x4CF8) } psrc++; } while (res >>= 1); - POST_IO - io_cycle_counter -= (adr - dst) * 2; -#ifdef USE_CYCLONE_TIMING -RET(16) +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter -= (((adr - dst) * 2) << mainMenu_CPU_speed); + RET(16) #else -RET(28) + m68kcontext.io_cycle_counter -= ((adr - dst) << mainMenu_CPU_speed); + RET(14) #endif } @@ -18917,15 +21094,14 @@ RET(28) OPCODE(0x4CF9) { u32 adr, res; - u32 src, dst; - + u32 dst; + u32 *psrc; - + FETCH_WORD(res); FETCH_LONG(adr); psrc = &DREGu32(0); dst = adr; - PRE_IO do { if (res & 1) @@ -18935,12 +21111,12 @@ OPCODE(0x4CF9) } psrc++; } while (res >>= 1); - POST_IO - io_cycle_counter -= (adr - dst) * 2; -#ifdef USE_CYCLONE_TIMING -RET(20) +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter -= (((adr - dst) * 2) << mainMenu_CPU_speed); + RET(20) #else -RET(36) + m68kcontext.io_cycle_counter -= ((adr - dst) << mainMenu_CPU_speed); + RET(16) #endif } @@ -18948,16 +21124,15 @@ RET(36) OPCODE(0x4CFA) { u32 adr, res; - u32 src, dst; - + u32 dst; + u32 *psrc; - + FETCH_WORD(res); adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; psrc = &DREGu32(0); dst = adr; - PRE_IO do { if (res & 1) @@ -18967,12 +21142,12 @@ OPCODE(0x4CFA) } psrc++; } while (res >>= 1); - POST_IO - io_cycle_counter -= (adr - dst) * 2; -#ifdef USE_CYCLONE_TIMING -RET(16) +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter -= (((adr - dst) * 2) << mainMenu_CPU_speed); + RET(16) #else -RET(28) + m68kcontext.io_cycle_counter -= ((adr - dst) << mainMenu_CPU_speed); + RET(20) #endif } @@ -18980,16 +21155,15 @@ RET(28) OPCODE(0x4CFB) { u32 adr, res; - u32 src, dst; - + u32 dst; + u32 *psrc; - + FETCH_WORD(res); adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); psrc = &DREGu32(0); dst = adr; - PRE_IO do { if (res & 1) @@ -18999,12 +21173,12 @@ OPCODE(0x4CFB) } psrc++; } while (res >>= 1); - POST_IO - io_cycle_counter -= (adr - dst) * 2; -#ifdef USE_CYCLONE_TIMING -RET(18) +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter -= (((adr - dst) * 2) << mainMenu_CPU_speed); + RET(18) #else -RET(32) + m68kcontext.io_cycle_counter -= ((adr - dst) << mainMenu_CPU_speed); + RET(16) #endif } @@ -19012,15 +21186,14 @@ RET(32) OPCODE(0x4CDF) { u32 adr, res; - u32 src, dst; - + u32 dst; + u32 *psrc; - + FETCH_WORD(res); adr = AREG(7); psrc = &DREGu32(0); dst = adr; - PRE_IO do { if (res & 1) @@ -19031,495 +21204,1184 @@ OPCODE(0x4CDF) psrc++; } while (res >>= 1); AREG(7) = adr; - POST_IO - io_cycle_counter -= (adr - dst) * 2; -RET(12) +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter -= (((adr - dst) * 2) << mainMenu_CPU_speed); + RET(12) +#else + m68kcontext.io_cycle_counter -= ((adr - dst) << mainMenu_CPU_speed); + RET(12) +#endif } // TRAP OPCODE(0x4E40) { - u32 res; execute_exception(M68K_TRAP_BASE_EX + (Opcode & 0xF)); -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(20) +#endif } // LINK OPCODE(0x4E50) { - u32 adr, res; - u32 src, dst; - - res = AREGu32((Opcode >> 0) & 7); - PRE_IO + u32 res; + + res = AREGu32((Opcode /*>> 0*/) & 7); PUSH_32_F(res) res = AREG(7); - AREG((Opcode >> 0) & 7) = res; + AREG((Opcode /*>> 0*/) & 7) = res; FETCH_SWORD(res); AREG(7) += res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(5) +#endif } // LINKA7 OPCODE(0x4E57) { - u32 adr, res; - u32 src, dst; - + u32 res; + AREG(7) -= 4; - PRE_IO WRITE_LONG_DEC_F(AREG(7), AREG(7)) FETCH_SWORD(res); AREG(7) += res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(5) +#endif } +#ifdef OPCODES_M68020 +// LINK32 - 68020+ +OPCODE(0x4808) +{ + u32 res; + + res = AREGu32((Opcode /*>> 0*/) & 7); + PUSH_32_F(res) + res = AREG(7); + AREG((Opcode /*>> 0*/) & 7) = res; + FETCH_LONG(res); + AREG(7) += res; + RET(6) +} + +// LINK32A7 - 68020+ +OPCODE(0x480F) +{ + u32 res; + + AREG(7) -= 4; + WRITE_LONG_DEC_F(AREG(7), AREG(7)) + FETCH_LONG(res); + AREG(7) += res; + RET(6) +} +#endif + // ULNK OPCODE(0x4E58) { - u32 adr, res; - u32 src, dst; - - src = AREGu32((Opcode >> 0) & 7); + u32 res; + u32 src; + + src = AREGu32((Opcode /*>> 0*/) & 7); AREG(7) = src + 4; - PRE_IO READ_LONG_F(src, res) - AREG((Opcode >> 0) & 7) = res; - POST_IO -RET(12) + AREG((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // ULNKA7 OPCODE(0x4E5F) { - u32 adr, res; - u32 src, dst; - - PRE_IO READ_LONG_F(AREG(7), AREG(7)) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // MOVEAUSP OPCODE(0x4E60) { - u32 adr, res; - u32 src, dst; - + u32 res; + if (!flag_S) { u32 oldPC=GET_PC; SET_PC(oldPC-2) execute_exception(M68K_PRIVILEGE_VIOLATION_EX); - RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } - res = AREGu32((Opcode >> 0) & 7); - ASP = res; -RET(4) + res = AREGu32((Opcode /*>> 0*/) & 7); + USP = res; +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // MOVEUSPA OPCODE(0x4E68) { - u32 adr, res; - u32 src, dst; - + u32 res; + if (!flag_S) { u32 oldPC=GET_PC; SET_PC(oldPC-2) execute_exception(M68K_PRIVILEGE_VIOLATION_EX); - RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } - res = ASP; - AREG((Opcode >> 0) & 7) = res; -RET(4) + res = USP; + AREG((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // RESET OPCODE(0x4E70) { - u32 adr, res; - u32 src, dst; - if (!flag_S) { u32 oldPC=GET_PC; SET_PC(oldPC-2) execute_exception(M68K_PRIVILEGE_VIOLATION_EX); - RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(4) +#endif } - PRE_IO - if (m68kcontext.reset_handler) *(m68kcontext.reset_handler); -// CPU->Reset_CallBack(); - POST_IO -RET(132) +#ifdef OPCODES_M68000 + RET(132) +#else + RET(518) +#endif } // NOP OPCODE(0x4E71) { - u32 adr, res; - u32 src, dst; - -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // STOP OPCODE(0x4E72) { - u32 adr, res; - u32 src, dst; - + u32 res; + if (!flag_S) - { - u32 oldPC=GET_PC; - SET_PC(oldPC-2) - execute_exception(M68K_PRIVILEGE_VIOLATION_EX); - RET(4) - } +#ifdef OPCODES_M68000 + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,4) +#else + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,8) +#endif + +#ifdef OPCODES_M68020 + int oldM = flag_M; +#endif + int oldS = flag_S; FETCH_WORD(res); - res &= M68K_SR_MASK; + // res &= M68K_SR_MASK; SET_SR(res) - if (!flag_S) - { - res = AREG(7); - AREG(7) = ASP; - ASP = res; - } - m68kcontext.execinfo |= M68K_HALTED; - io_cycle_counter = 0; -RET(4) +#ifdef OPCODES_M68000 + UPDATE_SP_000 +#else + UPDATE_SP_020 +#endif + + m68kcontext.execinfo |= M68K_HALTED; +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter = 4; + RET(4) +#else + m68kcontext.io_cycle_counter = 8; + RET(8) +#endif } // RTE OPCODE(0x4E73) { - u32 adr, res; - u32 src, dst; - - if (!flag_S) - { - u32 oldPC=GET_PC; - SET_PC(oldPC-2) - execute_exception(M68K_PRIVILEGE_VIOLATION_EX); - RET(4) - } - PRE_IO - POP_16_F(res) + u32 res; + + if (!flag_S) +#ifdef OPCODES_M68000 + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,20) +#else + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,21) +#endif + +#ifdef OPCODES_M68020 + int oldM = flag_M; +#endif + int oldS = flag_S; + POP_16_F(res) SET_SR(res) POP_32_F(res) SET_PC(res) - if (!flag_S) - { - res = AREG(7); - AREG(7) = ASP; - ASP = res; - } - POST_IO - m68kcontext.execinfo &= ~(M68K_EMULATE_GROUP_0|M68K_EMULATE_TRACE|M68K_DO_TRACE); - CHECK_INT_TO_JUMP(20) -RET(20) + +#ifdef OPCODES_M68020 + POP_16_F(res) /* Exception Format */ + res &= 0xF000; + if (res == 0) {} /* most common, just skip checks below */ + else if (res == 0x2000) { AREG(7) += 4; } + else if (res == 0x7000) { AREG(7) += 52; } + else if (res == 0x8000) { AREG(7) += 50; } + else if (res == 0x9000) { AREG(7) += 12; } + else if (res == 0xa000) { AREG(7) += 24; } + else if (res == 0xb000) { AREG(7) += 84; } +#endif + +#ifdef OPCODES_M68000 + UPDATE_SP_000 + CHECK_INT_TO_JUMP(20) + RET(20) +#else + UPDATE_SP_020 + CHECK_INT_TO_JUMP(21) + RET(21) +#endif +} + +#ifdef OPCODES_M68020 +// RTD +OPCODE(0x4E74) +{ + u32 res; + u32 dst; + + POP_32_F(res) + POP_16_F(dst) + AREG(7) += (s16)dst; + CHECK_BRANCH_EXCEPTION(res,16); + SET_PC(res) + RET(10) } +#endif // RTS OPCODE(0x4E75) { - u32 adr, res; - u32 src, dst; - - PRE_IO + u32 res; + POP_32_F(res) + // CHECK_BRANCH_EXCEPTION(res,16); SET_PC(res) - CHECK_BRANCH_EXCEPTION(res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // TRAPV OPCODE(0x4E76) { - u32 res; if (flag_V & 0x80) execute_exception(M68K_TRAPV_EX); -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(25) +#endif } // RTR OPCODE(0x4E77) { - u32 adr, res; - u32 src, dst; - - PRE_IO + u32 res; + POP_16_F(res) SET_CCR(res) POP_32_F(res) + // CHECK_BRANCH_EXCEPTION(res,20); SET_PC(res) - CHECK_BRANCH_EXCEPTION(res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(14) +#endif +} + +#ifdef OPCODES_M68020 +// MOVEC Rc, Xn - 68010+, 68020 +OPCODE(0x4E7A) +{ + u32 src; + + if (!flag_S) + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,6); + + FETCH_WORD(src); + MOVEC2(src & 0x0FFF, src >> 12); + RET(6) +} + +// MOVEC Xn, Rc - 68010+, 68020 +OPCODE(0x4E7B) +{ + u32 src; + + if (!flag_S) + EXECUTE_EXCEPTION(M68K_PRIVILEGE_VIOLATION_EX,12); + + FETCH_WORD(src); + MOVE2C(src & 0x0FFF, src >> 12); + RET(12) } +#endif // JSR OPCODE(0x4E90) { - u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); + u32 adr; + + adr = AREG((Opcode /*>> 0*/) & 7); +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(adr,16); +#else + CHECK_BRANCH_EXCEPTION(adr,7); +#endif { u32 oldPC; - + oldPC = (u32)(PC) - BasePC; - PRE_IO PUSH_32_F(oldPC) } SET_PC(adr) - CHECK_BRANCH_EXCEPTION(adr) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // JSR OPCODE(0x4EA8) { - u32 adr, res; - u32 src, dst; - + u32 adr; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); + adr += AREG((Opcode /*>> 0*/) & 7); +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(adr,18); +#else + CHECK_BRANCH_EXCEPTION(adr,9); +#endif { u32 oldPC; - + oldPC = (u32)(PC) - BasePC; - PRE_IO - PUSH_32_F(oldPC) + PUSH_32_F(oldPC) } SET_PC(adr) - CHECK_BRANCH_EXCEPTION(adr) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // JSR OPCODE(0x4EB0) { - u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD + u32 adr; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(adr,22); +#else + CHECK_BRANCH_EXCEPTION(adr,11); +#endif { u32 oldPC; - + oldPC = (u32)(PC) - BasePC; - PRE_IO PUSH_32_F(oldPC) } SET_PC(adr) - CHECK_BRANCH_EXCEPTION(adr) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(11) +#endif } // JSR OPCODE(0x4EB8) { - u32 adr, res; - u32 src, dst; - + u32 adr; + FETCH_SWORD(adr); +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(adr,18); +#else + CHECK_BRANCH_EXCEPTION(adr,7); +#endif { u32 oldPC; - + oldPC = (u32)(PC) - BasePC; - PRE_IO PUSH_32_F(oldPC) } SET_PC(adr) - CHECK_BRANCH_EXCEPTION(adr) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(7) +#endif } // JSR OPCODE(0x4EB9) { - u32 adr, res; - u32 src, dst; - + u32 adr; + FETCH_LONG(adr); +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(adr,20); +#else + CHECK_BRANCH_EXCEPTION(adr,7); +#endif { u32 oldPC; - + oldPC = (u32)(PC) - BasePC; - PRE_IO PUSH_32_F(oldPC) } SET_PC(adr) - CHECK_BRANCH_EXCEPTION(adr) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(7) +#endif } // JSR OPCODE(0x4EBA) { - u32 adr, res; - u32 src, dst; - + u32 adr; + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(adr,18); +#else + CHECK_BRANCH_EXCEPTION(adr,9); +#endif { u32 oldPC; - + oldPC = (u32)(PC) - BasePC; - PRE_IO PUSH_32_F(oldPC) } SET_PC(adr) - CHECK_BRANCH_EXCEPTION(adr) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // JSR OPCODE(0x4EBB) { - u32 adr, res; - u32 src, dst; - + u32 adr; + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(adr,22); +#else + CHECK_BRANCH_EXCEPTION(adr,11); +#endif { u32 oldPC; - + oldPC = (u32)(PC) - BasePC; - PRE_IO PUSH_32_F(oldPC) } SET_PC(adr) - CHECK_BRANCH_EXCEPTION(adr) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(11) +#endif } // JMP OPCODE(0x4ED0) { - u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); + u32 adr; + + adr = AREG((Opcode /*>> 0*/) & 7); +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(adr,8); +#else + CHECK_BRANCH_EXCEPTION(adr,6); +#endif SET_PC(adr) - CHECK_BRANCH_EXCEPTION(adr) -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // JMP OPCODE(0x4EE8) { - u32 adr, res; - u32 src, dst; - + u32 adr; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); + adr += AREG((Opcode /*>> 0*/) & 7); +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(adr,10); +#else + CHECK_BRANCH_EXCEPTION(adr,8); +#endif SET_PC(adr) - CHECK_BRANCH_EXCEPTION(adr) -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(8) +#endif } // JMP OPCODE(0x4EF0) { - u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD + u32 adr; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(adr,14); +#else + CHECK_BRANCH_EXCEPTION(adr,10); +#endif SET_PC(adr) - CHECK_BRANCH_EXCEPTION(adr) -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(10) +#endif } // JMP OPCODE(0x4EF8) { - u32 adr, res; - u32 src, dst; - + u32 adr; + FETCH_SWORD(adr); +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(adr,10); +#else + CHECK_BRANCH_EXCEPTION(adr,6); +#endif SET_PC(adr) - CHECK_BRANCH_EXCEPTION(adr) -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } // JMP OPCODE(0x4EF9) { - u32 adr, res; - u32 src, dst; - + u32 adr; + FETCH_LONG(adr); +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(adr,12); +#else + CHECK_BRANCH_EXCEPTION(adr,6); +#endif SET_PC(adr) - CHECK_BRANCH_EXCEPTION(adr) -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // JMP OPCODE(0x4EFA) { - u32 adr, res; - u32 src, dst; - + u32 adr; + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(adr,10); +#else + CHECK_BRANCH_EXCEPTION(adr,8); +#endif SET_PC(adr) - CHECK_BRANCH_EXCEPTION(adr) -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(8) +#endif } // JMP OPCODE(0x4EFB) { - u32 adr, res; - u32 src, dst; - + u32 adr; + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(adr,14); +#else + CHECK_BRANCH_EXCEPTION(adr,10); +#endif SET_PC(adr) - CHECK_BRANCH_EXCEPTION(adr) -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(10) +#endif +} + +#ifdef OPCODES_M68020 +// CHK.L Dn - 68020+ +OPCODE(0x4100) +{ + s32 src, dst; + + src = DREGs32((Opcode /*>> 0*/) & 7); + dst = DREGs32((Opcode >> 9) & 7); + if ((dst < 0) || (dst > src)) + { + flag_N = dst >> 24; + execute_exception(M68K_CHK_EX); + } + RET(8) +} + +// CHK.L (An) - 68020+ +OPCODE(0x4110) +{ + u32 adr; + s32 src, dst; + + adr = AREG((Opcode /*>> 0*/) & 7); + READ_LONG_F(adr, src) + dst = DREGs32((Opcode >> 9) & 7); + if ((dst < 0) || (dst > src)) + { + flag_N = dst >> 24; + execute_exception(M68K_CHK_EX); + } + RET(12) +} + +// CHK.L (An)+ - 68020+ +OPCODE(0x4118) +{ + u32 adr; + s32 src, dst; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; + READ_LONG_F(adr, src) + dst = DREGs32((Opcode >> 9) & 7); + if ((dst < 0) || (dst > src)) + { + flag_N = dst >> 24; + execute_exception(M68K_CHK_EX); + } + RET(12) +} + +// CHK.L -(An) - 68020+ +OPCODE(0x4120) +{ + u32 adr; + s32 src, dst; + + AREG((Opcode /*>> 0*/) & 7) -= 4; + adr = AREG((Opcode /*>> 0*/) & 7); + READ_LONG_F(adr, src) + dst = DREGs32((Opcode >> 9) & 7); + if ((dst < 0) || (dst > src)) + { + flag_N = dst >> 24; + execute_exception(M68K_CHK_EX); + } + RET(13) +} + +// CHK.L (d16,An) - 68020+ +OPCODE(0x4128) +{ + u32 adr; + s32 src, dst; + + FETCH_SWORD(adr); + adr += AREG((Opcode /*>> 0*/) & 7); + READ_LONG_F(adr, src) + dst = DREGs32((Opcode >> 9) & 7); + if ((dst < 0) || (dst > src)) + { + flag_N = dst >> 24; + execute_exception(M68K_CHK_EX); + } + RET(13) +} + +// CHK.L (d8,An,Xn) / (bd,An,Xn)... - 68020+ +OPCODE(0x4130) +{ + u32 adr; + s32 src, dst; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); + READ_LONG_F(adr, src) + dst = DREGs32((Opcode >> 9) & 7); + if ((dst < 0) || (dst > src)) + { + flag_N = dst >> 24; + execute_exception(M68K_CHK_EX); + } + RET(15) +} + +// CHK.L (xx).W - 68020+ +OPCODE(0x4138) +{ + u32 adr; + s32 src, dst; + + FETCH_SWORD(adr); + READ_LONG_F(adr, src) + dst = DREGs32((Opcode >> 9) & 7); + if ((dst < 0) || (dst > src)) + { + flag_N = dst >> 24; + execute_exception(M68K_CHK_EX); + } + RET(12) +} + +// CHK.L (xx).L - 68020+ +OPCODE(0x4139) +{ + u32 adr; + s32 src, dst; + + FETCH_LONG(adr); + READ_LONG_F(adr, src) + dst = DREGs32((Opcode >> 9) & 7); + if ((dst < 0) || (dst > src)) + { + flag_N = dst >> 24; + execute_exception(M68K_CHK_EX); + } + RET(12) +} + +// CHK.L (d16,PC) - 68020+ +OPCODE(0x413A) +{ + u32 adr; + s32 src, dst; + + adr = GET_SWORD + ((u32)(PC) - BasePC); + PC++; + READ_LONG_F(adr, src) + dst = DREGs32((Opcode >> 9) & 7); + if ((dst < 0) || (dst > src)) + { + flag_N = dst >> 24; + execute_exception(M68K_CHK_EX); + } + RET(13) +} + +// CHK.L (d8,PC,Xn) / (bd,PC,Xn)... - 68020+ +OPCODE(0x413B) +{ + u32 adr; + s32 src, dst; + + adr = (u32)(PC) - BasePC; + DECODE_EXT_WORD(&adr); + READ_LONG_F(adr, src) + dst = DREGs32((Opcode >> 9) & 7); + if ((dst < 0) || (dst > src)) + { + flag_N = dst >> 24; + execute_exception(M68K_CHK_EX); + } + RET(15) +} + +// CHK.L .L - 68020+ +OPCODE(0x413C) +{ + u32 adr; + s32 src, dst; + + FETCH_LONG(src); + dst = DREGs32((Opcode >> 9) & 7); + if ((dst < 0) || (dst > src)) + { + flag_N = dst >> 24; + execute_exception(M68K_CHK_EX); + } + RET(12) +} + +// CMP2/CHK2.B (An) - 68020+ +OPCODE(0x00D0) +{ + u32 adr, res; + s32 src1, src2, dst; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + + CMP2_CHK2_EXECUTE(s8, 1) + RET(22) +} + +// CMP2/CHK2.B (d16,An) - 68020+ +OPCODE(0x00E8) +{ + u32 adr, res; + s32 src1, src2, dst; + + FETCH_WORD(res) + FETCH_SWORD(adr); + adr += AREG((Opcode /*>> 0*/) & 7); + + CMP2_CHK2_EXECUTE(s8, 2) + RET(33) +} + +// CMP2/CHK2.B (d8,An,Xn) / (bd,An,Xn)... - 68020+ +OPCODE(0x00F0) +{ + u32 adr, res; + s32 src1, src2, dst; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); + + CMP2_CHK2_EXECUTE(s8, 1) + RET(27) +} + +// CMP2/CHK2.B (xx).W - 68020+ +OPCODE(0x00F8) +{ + u32 adr, res; + s32 src1, src2, dst; + + FETCH_WORD(res) + FETCH_SWORD(adr) + + CMP2_CHK2_EXECUTE(s8, 2) + RET(23) +} + +// CMP2/CHK2.B (xx).L - 68020+ +OPCODE(0x00F9) +{ + u32 adr, res; + s32 src1, src2, dst; + + FETCH_WORD(res) + FETCH_LONG(adr) + + CMP2_CHK2_EXECUTE(s8, 3) + RET(24) +} + +// CMP2/CHK2.B (d16,PC) - 68020+ +OPCODE(0x00FA) +{ + u32 adr, res; + s32 src1, src2, dst; + + FETCH_WORD(res) + adr = GET_SWORD + ((u32)(PC) - BasePC); + PC++; + + CMP2_CHK2_EXECUTE(s8, 2) + RET(29) +} + +// CMP2/CHK2.B (d8,PC,Xn) / (bd,PC,Xn)... - 68020+ +OPCODE(0x00FB) +{ + u32 adr, res; + u32 src1, src2, dst; + + FETCH_WORD(res) + adr = (u32)(PC) - BasePC; + DECODE_EXT_WORD(&adr); + + CMP2_CHK2_EXECUTE(s8, 1) + RET(27) +} + +// CMP2/CHK2.W (An) - 68020+ +OPCODE(0x02D0) +{ + u32 adr, res; + s32 src1, src2, dst; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + + CMP2_CHK2_EXECUTE(s16, 1) + RET(22) +} + +// CMP2/CHK2.W (d16,An) - 68020+ +OPCODE(0x02E8) +{ + u32 adr, res; + s32 src1, src2, dst; + + FETCH_WORD(res) + FETCH_SWORD(adr); + adr += AREG((Opcode /*>> 0*/) & 7); + + CMP2_CHK2_EXECUTE(s16, 2) + RET(29) +} + +// CMP2/CHK2.W (d8,An,Xn) / (bd,An,Xn)... - 68020+ +OPCODE(0x02F0) +{ + u32 adr, res; + s32 src1, src2, dst; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); + + CMP2_CHK2_EXECUTE(s16, 1) + RET(27) +} + +// CMP2/CHK2.W (xx).W - 68020+ +OPCODE(0x02F8) +{ + u32 adr, res; + s32 src1, src2, dst; + + FETCH_WORD(res) + FETCH_SWORD(adr) + + CMP2_CHK2_EXECUTE(s16, 2) + RET(23) +} + +// CMP2/CHK2.W (xx).L - 68020+ +OPCODE(0x02F9) +{ + u32 adr, res; + s32 src1, src2, dst; + + FETCH_WORD(res) + FETCH_LONG(adr) + + CMP2_CHK2_EXECUTE(s16, 3) + RET(24) +} + +// CMP2/CHK2.W (d16,PC) - 68020+ +OPCODE(0x02FA) +{ + u32 adr, res; + s32 src1, src2, dst; + + FETCH_WORD(res) + adr = GET_SWORD + ((u32)(PC) - BasePC); + PC++; + + CMP2_CHK2_EXECUTE(s16, 2) + RET(29) +} + +// CMP2/CHK2.W (d8,PC,Xn) / (bd,PC,Xn)... - 68020+ +OPCODE(0x02FB) +{ + u32 adr, res; + s32 src1, src2, dst; + + FETCH_WORD(res) + adr = (u32)(PC) - BasePC; + DECODE_EXT_WORD(&adr); + + CMP2_CHK2_EXECUTE(s16, 1) + RET(27) +} + +// CMP2/CHK2.L (An) - 68020+ +OPCODE(0x04D0) +{ + u32 adr, res; + s32 src1, src2, dst; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + + CMP2_CHK2_EXECUTE(s32, 1) + RET(22) +} + +// CMP2/CHK2.L (d16,An) - 68020+ +OPCODE(0x04E8) +{ + u32 adr, res; + s32 src1, src2, dst; + + FETCH_WORD(res) + FETCH_SWORD(adr) + adr += AREG((Opcode /*>> 0*/) & 7); + + CMP2_CHK2_EXECUTE(s32, 2) + RET(29) +} + +// CMP2/CHK2.L (d8,An,Xn) / (bd,An,Xn)... - 68020+ +OPCODE(0x04F0) +{ + u32 adr, res; + s32 src1, src2, dst; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); + + CMP2_CHK2_EXECUTE(s32, 1) + RET(27) +} + +// CMP2/CHK2.L (xx).W - 68020+ +OPCODE(0x04F8) +{ + u32 adr, res; + s32 src1, src2, dst; + + FETCH_WORD(res) + FETCH_SWORD(adr); + + CMP2_CHK2_EXECUTE(s32, 2) + RET(23) +} + +// CMP2/CHK2.L (xx).L - 68020+ +OPCODE(0x04F9) +{ + u32 adr, res; + s32 src1, src2, dst; + + FETCH_WORD(res) + FETCH_LONG(adr); + + CMP2_CHK2_EXECUTE(s32, 3) + RET(24) +} + +// CMP2/CHK2.L (d16,PC) - 68020+ +OPCODE(0x04FA) +{ + u32 adr, res; + s32 src1, src2, dst; + + FETCH_WORD(res) + adr = GET_SWORD + ((u32)(PC) - BasePC); + PC++; + + CMP2_CHK2_EXECUTE(s32, 2) + RET(29) +} + +// CMP2/CHK2.L (d8,PC,Xn) / (bd,PC,Xn)... - 68020+ +OPCODE(0x04FB) +{ + u32 adr, res; + s32 src1, src2, dst; + + FETCH_WORD(res) + adr = (u32)(PC) - BasePC; + DECODE_EXT_WORD(&adr); + + CMP2_CHK2_EXECUTE(s32, 1) + RET(27) } +#endif // CHK OPCODE(0x4180) { - u32 adr, res; - u32 src, dst; - - src = DREGu16((Opcode >> 0) & 7); + u32 res; + u32 src; + + src = DREGu16((Opcode /*>> 0*/) & 7); res = DREGu16((Opcode >> 9) & 7); if (((s32)res < 0) || (res > src)) { flag_N = res >> 8; execute_exception(M68K_CHK_EX); } -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(8) +#endif } // CHK OPCODE(0x4190) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); if (((s32)res < 0) || (res > src)) @@ -19527,19 +22389,21 @@ OPCODE(0x4190) flag_N = res >> 8; execute_exception(M68K_CHK_EX); } - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(12) +#endif } // CHK OPCODE(0x4198) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); if (((s32)res < 0) || (res > src)) @@ -19547,19 +22411,21 @@ OPCODE(0x4198) flag_N = res >> 8; execute_exception(M68K_CHK_EX); } - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(12) +#endif } // CHK OPCODE(0x41A0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); if (((s32)res < 0) || (res > src)) @@ -19567,19 +22433,21 @@ OPCODE(0x41A0) flag_N = res >> 8; execute_exception(M68K_CHK_EX); } - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(13) +#endif } // CHK OPCODE(0x41A8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); if (((s32)res < 0) || (res > src)) @@ -19587,19 +22455,21 @@ OPCODE(0x41A8) flag_N = res >> 8; execute_exception(M68K_CHK_EX); } - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(13) +#endif } // CHK OPCODE(0x41B0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); if (((s32)res < 0) || (res > src)) @@ -19607,18 +22477,20 @@ OPCODE(0x41B0) flag_N = res >> 8; execute_exception(M68K_CHK_EX); } - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(15) +#endif } // CHK OPCODE(0x41B8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); if (((s32)res < 0) || (res > src)) @@ -19626,18 +22498,20 @@ OPCODE(0x41B8) flag_N = res >> 8; execute_exception(M68K_CHK_EX); } - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(12) +#endif } // CHK OPCODE(0x41B9) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); if (((s32)res < 0) || (res > src)) @@ -19645,19 +22519,21 @@ OPCODE(0x41B9) flag_N = res >> 8; execute_exception(M68K_CHK_EX); } - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(12) +#endif } // CHK OPCODE(0x41BA) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); if (((s32)res < 0) || (res > src)) @@ -19665,19 +22541,21 @@ OPCODE(0x41BA) flag_N = res >> 8; execute_exception(M68K_CHK_EX); } - POST_IO -RET(18) -} +#ifdef OPCODES_M68000 + RET(18) +#else + RET(13) +#endif +} // CHK OPCODE(0x41BB) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); if (((s32)res < 0) || (res > src)) @@ -19685,16 +22563,19 @@ OPCODE(0x41BB) flag_N = res >> 8; execute_exception(M68K_CHK_EX); } - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(15) +#endif } // CHK OPCODE(0x41BC) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; + FETCH_WORD(src); res = DREGu16((Opcode >> 9) & 7); if (((s32)res < 0) || (res > src)) @@ -19702,19 +22583,21 @@ OPCODE(0x41BC) flag_N = res >> 8; execute_exception(M68K_CHK_EX); } - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(10) +#endif } // CHK OPCODE(0x419F) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); if (((s32)res < 0) || (res > src)) @@ -19722,19 +22605,21 @@ OPCODE(0x419F) flag_N = res >> 8; execute_exception(M68K_CHK_EX); } - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(12) +#endif } // CHK OPCODE(0x41A7) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); if (((s32)res < 0) || (res > src)) @@ -19742,3959 +22627,4738 @@ OPCODE(0x41A7) flag_N = res >> 8; execute_exception(M68K_CHK_EX); } - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(13) +#endif } // LEA OPCODE(0x41D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); + + adr = AREG((Opcode /*>> 0*/) & 7); res = adr; AREG((Opcode >> 9) & 7) = res; -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // LEA OPCODE(0x41E8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); + adr += AREG((Opcode /*>> 0*/) & 7); res = adr; AREG((Opcode >> 9) & 7) = res; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // LEA OPCODE(0x41F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); res = adr; AREG((Opcode >> 9) & 7) = res; -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // LEA OPCODE(0x41F8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); res = adr; AREG((Opcode >> 9) & 7) = res; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // LEA OPCODE(0x41F9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); res = adr; AREG((Opcode >> 9) & 7) = res; -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // LEA OPCODE(0x41FA) { u32 adr, res; - u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; res = adr; AREG((Opcode >> 9) & 7) = res; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // LEA OPCODE(0x41FB) { u32 adr, res; - u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD + DECODE_EXT_WORD(&adr); res = adr; AREG((Opcode >> 9) & 7) = res; -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif +} + +#ifdef OPCODES_M68020 +// TRAPcc .W - 68020+ +OPCODE(0x50FA) +{ + u32 res; + + TRAPCC_EXECUTE(Opcode); + FETCH_WORD(res) + RET(25) +} + +// TRAPcc .L - 68020+ +OPCODE(0x50FB) +{ + u32 res; + + TRAPCC_EXECUTE(Opcode); + FETCH_LONG(res) + RET(25) } +// TRAPcc - 68020+ +OPCODE(0x50FC) +{ + TRAPCC_EXECUTE(Opcode); + RET(25) +} +#endif + // STCC OPCODE(0x50C0) { - u32 adr, res; - u32 src, dst; - + u32 res; + res = 0xFF; - DREGu8((Opcode >> 0) & 7) = res; + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 RET(6) +#else + RET(4) +#endif } // STCC OPCODE(0x51C0) { - u32 adr, res; - u32 src, dst; - + u32 res; + res = 0; - DREGu8((Opcode >> 0) & 7) = res; + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else RET(4) +#endif } // STCC OPCODE(0x52C0) { - u32 adr, res; - u32 src, dst; - + u32 res; + if (flag_NotZ && (!(flag_C & 0x100))) { - res = 0xFF; - DREGu8((Opcode >> 0) & 7) = res; - RET(6) + res = 0xFF; + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6) +#else + RET(4) +#endif } res = 0; - DREGu8((Opcode >> 0) & 7) = res; + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else RET(4) +#endif } // STCC OPCODE(0x53C0) { - u32 adr, res; - u32 src, dst; - + u32 res; + if ((!flag_NotZ) || (flag_C & 0x100)) { - res = 0xFF; - DREGu8((Opcode >> 0) & 7) = res; - RET(6) + res = 0xFF; + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6) +#else + RET(4) +#endif } res = 0; - DREGu8((Opcode >> 0) & 7) = res; + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else RET(4) +#endif } // STCC OPCODE(0x54C0) { - u32 adr, res; - u32 src, dst; - + u32 res; + if (!(flag_C & 0x100)) { - res = 0xFF; - DREGu8((Opcode >> 0) & 7) = res; - RET(6) + res = 0xFF; + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6) +#else + RET(4) +#endif } res = 0; - DREGu8((Opcode >> 0) & 7) = res; + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 RET(4) +#else + RET(4) +#endif } // STCC OPCODE(0x55C0) { - u32 adr, res; - u32 src, dst; - + u32 res; + if (flag_C & 0x100) { - res = 0xFF; - DREGu8((Opcode >> 0) & 7) = res; - RET(6) + res = 0xFF; + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6) +#else + RET(4) +#endif } res = 0; - DREGu8((Opcode >> 0) & 7) = res; + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else RET(4) +#endif } // STCC OPCODE(0x56C0) { - u32 adr, res; - u32 src, dst; - + u32 res; + if (flag_NotZ) { - res = 0xFF; - DREGu8((Opcode >> 0) & 7) = res; - RET(6) + res = 0xFF; + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6) +#else + RET(4) +#endif } res = 0; - DREGu8((Opcode >> 0) & 7) = res; + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else RET(4) +#endif } // STCC OPCODE(0x57C0) { - u32 adr, res; - u32 src, dst; - + u32 res; + if (!flag_NotZ) { - res = 0xFF; - DREGu8((Opcode >> 0) & 7) = res; - RET(6) + res = 0xFF; + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6) +#else + RET(4) +#endif } res = 0; - DREGu8((Opcode >> 0) & 7) = res; + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else RET(4) +#endif } // STCC OPCODE(0x58C0) { - u32 adr, res; - u32 src, dst; - + u32 res; + if (!(flag_V & 0x80)) { - res = 0xFF; - DREGu8((Opcode >> 0) & 7) = res; - RET(6) + res = 0xFF; + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6) +#else + RET(4) +#endif } res = 0; - DREGu8((Opcode >> 0) & 7) = res; + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 RET(4) +#else + RET(4) +#endif } // STCC OPCODE(0x59C0) { - u32 adr, res; - u32 src, dst; - + u32 res; + if (flag_V & 0x80) { - res = 0xFF; - DREGu8((Opcode >> 0) & 7) = res; - RET(6) + res = 0xFF; + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6) +#else + RET(4) +#endif } res = 0; - DREGu8((Opcode >> 0) & 7) = res; + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else RET(4) +#endif } // STCC OPCODE(0x5AC0) { - u32 adr, res; - u32 src, dst; - + u32 res; + if (!(flag_N & 0x80)) { - res = 0xFF; - DREGu8((Opcode >> 0) & 7) = res; - RET(6) + res = 0xFF; + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6) +#else + RET(4) +#endif } res = 0; - DREGu8((Opcode >> 0) & 7) = res; + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else RET(4) +#endif } // STCC OPCODE(0x5BC0) { - u32 adr, res; - u32 src, dst; - + u32 res; + if (flag_N & 0x80) { - res = 0xFF; - DREGu8((Opcode >> 0) & 7) = res; - RET(6) + res = 0xFF; + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6) +#else + RET(4) +#endif } res = 0; - DREGu8((Opcode >> 0) & 7) = res; + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else RET(4) +#endif } // STCC OPCODE(0x5CC0) { - u32 adr, res; - u32 src, dst; - + u32 res; + if (!((flag_N ^ flag_V) & 0x80)) { - res = 0xFF; - DREGu8((Opcode >> 0) & 7) = res; - RET(6) + res = 0xFF; + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6) +#else + RET(4) +#endif } res = 0; - DREGu8((Opcode >> 0) & 7) = res; + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 RET(4) +#else + RET(4) +#endif } // STCC OPCODE(0x5DC0) { - u32 adr, res; - u32 src, dst; - + u32 res; + if ((flag_N ^ flag_V) & 0x80) { - res = 0xFF; - DREGu8((Opcode >> 0) & 7) = res; - RET(6) + res = 0xFF; + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6) +#else + RET(4) +#endif } res = 0; - DREGu8((Opcode >> 0) & 7) = res; + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else RET(4) +#endif } // STCC OPCODE(0x5EC0) { - u32 adr, res; - u32 src, dst; - + u32 res; + if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80))) { - res = 0xFF; - DREGu8((Opcode >> 0) & 7) = res; - RET(6) + res = 0xFF; + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6) +#else + RET(4) +#endif } res = 0; - DREGu8((Opcode >> 0) & 7) = res; + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else RET(4) +#endif } // STCC OPCODE(0x5FC0) { - u32 adr, res; - u32 src, dst; - + u32 res; + if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80)) { - res = 0xFF; - DREGu8((Opcode >> 0) & 7) = res; - RET(6) + res = 0xFF; + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6) +#else + RET(4) +#endif } res = 0; - DREGu8((Opcode >> 0) & 7) = res; + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else RET(4) +#endif } // STCC OPCODE(0x50D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); + + adr = AREG((Opcode /*>> 0*/) & 7); res = 0xFF; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x51D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); + + adr = AREG((Opcode /*>> 0*/) & 7); res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x52D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); + + adr = AREG((Opcode /*>> 0*/) & 7); if (flag_NotZ && (!(flag_C & 0x100))) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x53D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); + + adr = AREG((Opcode /*>> 0*/) & 7); if ((!flag_NotZ) || (flag_C & 0x100)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x54D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); + + adr = AREG((Opcode /*>> 0*/) & 7); if (!(flag_C & 0x100)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x55D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); + + adr = AREG((Opcode /*>> 0*/) & 7); if (flag_C & 0x100) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x56D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); + + adr = AREG((Opcode /*>> 0*/) & 7); if (flag_NotZ) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x57D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); + + adr = AREG((Opcode /*>> 0*/) & 7); if (!flag_NotZ) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x58D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); + + adr = AREG((Opcode /*>> 0*/) & 7); if (!(flag_V & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x59D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); + + adr = AREG((Opcode /*>> 0*/) & 7); if (flag_V & 0x80) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x5AD0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); + + adr = AREG((Opcode /*>> 0*/) & 7); if (!(flag_N & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x5BD0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); + + adr = AREG((Opcode /*>> 0*/) & 7); if (flag_N & 0x80) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x5CD0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); + + adr = AREG((Opcode /*>> 0*/) & 7); if (!((flag_N ^ flag_V) & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x5DD0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); + + adr = AREG((Opcode /*>> 0*/) & 7); if ((flag_N ^ flag_V) & 0x80) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x5ED0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); + + adr = AREG((Opcode /*>> 0*/) & 7); if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80))) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x5FD0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); + + adr = AREG((Opcode /*>> 0*/) & 7); if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x50D8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; res = 0xFF; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x51D8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x52D8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; if (flag_NotZ && (!(flag_C & 0x100))) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x53D8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; if ((!flag_NotZ) || (flag_C & 0x100)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x54D8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; if (!(flag_C & 0x100)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x55D8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; if (flag_C & 0x100) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x56D8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; if (flag_NotZ) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x57D8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; if (!flag_NotZ) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x58D8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; if (!(flag_V & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x59D8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; if (flag_V & 0x80) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x5AD8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; if (!(flag_N & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x5BD8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; if (flag_N & 0x80) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x5CD8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; if (!((flag_N ^ flag_V) & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x5DD8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; if ((flag_N ^ flag_V) & 0x80) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x5ED8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80))) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x5FD8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x50E0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; res = 0xFF; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x51E0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x52E0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; if (flag_NotZ && (!(flag_C & 0x100))) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(14) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x53E0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; if ((!flag_NotZ) || (flag_C & 0x100)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(14) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x54E0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; if (!(flag_C & 0x100)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(14) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x55E0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; if (flag_C & 0x100) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(14) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x56E0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; if (flag_NotZ) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(14) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x57E0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; if (!flag_NotZ) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(14) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x58E0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; if (!(flag_V & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(14) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x59E0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; if (flag_V & 0x80) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(14) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x5AE0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; if (!(flag_N & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(14) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x5BE0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; if (flag_N & 0x80) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(14) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x5CE0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; if (!((flag_N ^ flag_V) & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(14) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x5DE0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; if ((flag_N ^ flag_V) & 0x80) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(14) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x5EE0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80))) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(14) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x5FE0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(14) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x50E8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); + adr += AREG((Opcode /*>> 0*/) & 7); res = 0xFF; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x51E8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); + adr += AREG((Opcode /*>> 0*/) & 7); res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x52E8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); + adr += AREG((Opcode /*>> 0*/) & 7); if (flag_NotZ && (!(flag_C & 0x100))) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(16) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x53E8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); + adr += AREG((Opcode /*>> 0*/) & 7); if ((!flag_NotZ) || (flag_C & 0x100)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(16) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x54E8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); + adr += AREG((Opcode /*>> 0*/) & 7); if (!(flag_C & 0x100)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(16) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x55E8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); + adr += AREG((Opcode /*>> 0*/) & 7); if (flag_C & 0x100) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(16) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x56E8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); + adr += AREG((Opcode /*>> 0*/) & 7); if (flag_NotZ) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(16) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x57E8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); + adr += AREG((Opcode /*>> 0*/) & 7); if (!flag_NotZ) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(16) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x58E8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); + adr += AREG((Opcode /*>> 0*/) & 7); if (!(flag_V & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(16) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x59E8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); + adr += AREG((Opcode /*>> 0*/) & 7); if (flag_V & 0x80) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(16) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x5AE8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); + adr += AREG((Opcode /*>> 0*/) & 7); if (!(flag_N & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(16) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x5BE8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); + adr += AREG((Opcode /*>> 0*/) & 7); if (flag_N & 0x80) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(16) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x5CE8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); + adr += AREG((Opcode /*>> 0*/) & 7); if (!((flag_N ^ flag_V) & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(16) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x5DE8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); + adr += AREG((Opcode /*>> 0*/) & 7); if ((flag_N ^ flag_V) & 0x80) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(16) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x5EE8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); + adr += AREG((Opcode /*>> 0*/) & 7); if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80))) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(16) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x5FE8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); + adr += AREG((Opcode /*>> 0*/) & 7); if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(16) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x50F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); res = 0xFF; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(18) +#else + RET(10) +#endif } // STCC OPCODE(0x51F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(18) +#else + RET(10) +#endif } // STCC OPCODE(0x52F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); if (flag_NotZ && (!(flag_C & 0x100))) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(18) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(18) +#else + RET(10) +#endif } // STCC OPCODE(0x53F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); if ((!flag_NotZ) || (flag_C & 0x100)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(18) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(18) +#else + RET(10) +#endif } // STCC OPCODE(0x54F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); if (!(flag_C & 0x100)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(18) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(18) +#else + RET(10) +#endif } // STCC OPCODE(0x55F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); if (flag_C & 0x100) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(18) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(18) +#else + RET(10) +#endif } // STCC OPCODE(0x56F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); if (flag_NotZ) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(18) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(18) +#else + RET(10) +#endif } // STCC OPCODE(0x57F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); if (!flag_NotZ) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(18) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(18) +#else + RET(10) +#endif } // STCC OPCODE(0x58F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); if (!(flag_V & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(18) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(18) +#else + RET(10) +#endif } // STCC OPCODE(0x59F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); if (flag_V & 0x80) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(18) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(18) +#else + RET(10) +#endif } // STCC OPCODE(0x5AF0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); if (!(flag_N & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(18) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(18) +#else + RET(10) +#endif } // STCC OPCODE(0x5BF0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); if (flag_N & 0x80) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(18) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(18) +#else + RET(10) +#endif } // STCC OPCODE(0x5CF0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); if (!((flag_N ^ flag_V) & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(18) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(18) +#else + RET(10) +#endif } // STCC OPCODE(0x5DF0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); if ((flag_N ^ flag_V) & 0x80) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(18) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(18) +#else + RET(10) +#endif } // STCC OPCODE(0x5EF0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80))) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(18) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(18) +#else + RET(10) +#endif } // STCC OPCODE(0x5FF0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(18) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(10) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(18) +#else + RET(10) +#endif } // STCC OPCODE(0x50F8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); res = 0xFF; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x51F8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x52F8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); if (flag_NotZ && (!(flag_C & 0x100))) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(16) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x53F8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); if ((!flag_NotZ) || (flag_C & 0x100)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(16) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x54F8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); if (!(flag_C & 0x100)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(16) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x55F8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); if (flag_C & 0x100) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(16) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x56F8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); if (flag_NotZ) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(16) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x57F8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); if (!flag_NotZ) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(16) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x58F8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); if (!(flag_V & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(16) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x59F8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); if (flag_V & 0x80) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(16) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x5AF8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); if (!(flag_N & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(16) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x5BF8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); if (flag_N & 0x80) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(16) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x5CF8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); if (!((flag_N ^ flag_V) & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(16) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x5DF8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); if ((flag_N ^ flag_V) & 0x80) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(16) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x5EF8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80))) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(16) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x5FF8) { u32 adr, res; - u32 src, dst; - + FETCH_SWORD(adr); if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(16) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(16) +#else + RET(8) +#endif } // STCC OPCODE(0x50F9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); res = 0xFF; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(20) +#else + RET(10) +#endif } // STCC OPCODE(0x51F9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(20) +#else + RET(10) +#endif } // STCC OPCODE(0x52F9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); if (flag_NotZ && (!(flag_C & 0x100))) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(20) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(10) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(20) +#else + RET(10) +#endif } // STCC OPCODE(0x53F9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); if ((!flag_NotZ) || (flag_C & 0x100)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(20) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(10) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(20) +#else + RET(10) +#endif } // STCC OPCODE(0x54F9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); if (!(flag_C & 0x100)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(20) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(10) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(20) +#else + RET(10) +#endif } // STCC OPCODE(0x55F9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); if (flag_C & 0x100) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(20) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(10) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(20) +#else + RET(10) +#endif } // STCC OPCODE(0x56F9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); if (flag_NotZ) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(20) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(10) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(20) +#else + RET(10) +#endif } // STCC OPCODE(0x57F9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); if (!flag_NotZ) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(20) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(10) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(20) +#else + RET(10) +#endif } // STCC OPCODE(0x58F9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); if (!(flag_V & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(20) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(10) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(20) +#else + RET(10) +#endif } // STCC OPCODE(0x59F9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); if (flag_V & 0x80) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(20) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(10) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(20) +#else + RET(10) +#endif } // STCC OPCODE(0x5AF9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); if (!(flag_N & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(20) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(10) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(20) +#else + RET(10) +#endif } // STCC OPCODE(0x5BF9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); if (flag_N & 0x80) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(20) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(10) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(20) +#else + RET(10) +#endif } // STCC OPCODE(0x5CF9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); if (!((flag_N ^ flag_V) & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(20) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(10) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(20) +#else + RET(10) +#endif } // STCC OPCODE(0x5DF9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); if ((flag_N ^ flag_V) & 0x80) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(20) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(10) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(20) +#else + RET(10) +#endif } // STCC OPCODE(0x5EF9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80))) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(20) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(10) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(20) +#else + RET(10) +#endif } // STCC OPCODE(0x5FF9) { u32 adr, res; - u32 src, dst; - + FETCH_LONG(adr); if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(20) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(10) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(20) +#else + RET(10) +#endif } // STCC OPCODE(0x50DF) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; res = 0xFF; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x51DF) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x52DF) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; if (flag_NotZ && (!(flag_C & 0x100))) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x53DF) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; if ((!flag_NotZ) || (flag_C & 0x100)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x54DF) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; if (!(flag_C & 0x100)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x55DF) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; if (flag_C & 0x100) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x56DF) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; if (flag_NotZ) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x57DF) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; if (!flag_NotZ) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x58DF) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; if (!(flag_V & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x59DF) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; if (flag_V & 0x80) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x5ADF) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; if (!(flag_N & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x5BDF) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; if (flag_N & 0x80) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x5CDF) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; if (!((flag_N ^ flag_V) & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x5DDF) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; if ((flag_N ^ flag_V) & 0x80) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x5EDF) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80))) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x5FDF) { u32 adr, res; - u32 src, dst; - + adr = AREG(7); AREG(7) += 2; if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(12) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(12) +#else + RET(8) +#endif } // STCC OPCODE(0x50E7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; res = 0xFF; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x51E7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x52E7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; if (flag_NotZ && (!(flag_C & 0x100))) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(14) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x53E7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; if ((!flag_NotZ) || (flag_C & 0x100)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(14) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x54E7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; if (!(flag_C & 0x100)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(14) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x55E7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; if (flag_C & 0x100) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(14) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x56E7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; if (flag_NotZ) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(14) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x57E7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; if (!flag_NotZ) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(14) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x58E7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; if (!(flag_V & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(14) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x59E7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; if (flag_V & 0x80) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(14) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x5AE7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; if (!(flag_N & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(14) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x5BE7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; if (flag_N & 0x80) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(14) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x5CE7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; if (!((flag_N ^ flag_V) & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(14) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x5DE7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; if ((flag_N ^ flag_V) & 0x80) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(14) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x5EE7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80))) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(14) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // STCC OPCODE(0x5FE7) { u32 adr, res; - u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80)) { - res = 0xFF; - PRE_IO - WRITE_BYTE_F(adr, res) - POST_IO - RET(14) + res = 0xFF; + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } res = 0; - PRE_IO WRITE_BYTE_F(adr, res) - POST_IO +#ifdef OPCODES_M68000 RET(14) +#else + RET(8) +#endif } // DBCC OPCODE(0x50C8) { - u32 adr, res; - u32 src, dst; - PC++; -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // DBCC OPCODE(0x51C8) { - u32 adr, res; - u32 src, dst; - - res = DREGu16((Opcode >> 0) & 7); + u32 res; + + res = DREGu16((Opcode /*>> 0*/) & 7); res--; - DREGu16((Opcode >> 0) & 7) = res; + DREGu16((Opcode /*>> 0*/) & 7) = res; if ((s32)res != -1) { u32 newPC; - + newPC = (u32)(PC) - BasePC; newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) - RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } PC++; -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(10) +#endif } // DBCC OPCODE(0x52C8) { - u32 adr, res; - u32 src, dst; - + u32 res; + if ((!flag_NotZ) || (flag_C & 0x100)) { - res = DREGu16((Opcode >> 0) & 7); - res--; - DREGu16((Opcode >> 0) & 7) = res; - if ((s32)res != -1) - { - u32 newPC; - - newPC = (u32)(PC) - BasePC; - newPC += GET_SWORD; - SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) - RET(10) - } + res = DREGu16((Opcode /*>> 0*/) & 7); + res--; + DREGu16((Opcode /*>> 0*/) & 7) = res; + if ((s32)res != -1) + { + u32 newPC; + + newPC = (u32)(PC) - BasePC; + newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif + SET_PC(newPC); +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif + } } else { - PC++; - RET(12) + PC++; +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } PC++; -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(10) +#endif } // DBCC OPCODE(0x53C8) { - u32 adr, res; - u32 src, dst; - - if (flag_NotZ && (!(flag_C & 0x100))) - { - res = DREGu16((Opcode >> 0) & 7); - res--; - DREGu16((Opcode >> 0) & 7) = res; - if ((s32)res != -1) - { - u32 newPC; - - newPC = (u32)(PC) - BasePC; - newPC += GET_SWORD; - SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) + u32 res; + + if (flag_NotZ && (!(flag_C & 0x100))) + { + res = DREGu16((Opcode /*>> 0*/) & 7); + res--; + DREGu16((Opcode /*>> 0*/) & 7) = res; + if ((s32)res != -1) + { + u32 newPC; + + newPC = (u32)(PC) - BasePC; + newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif + SET_PC(newPC); +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif + } + } + else + { + PC++; +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif + } + PC++; +#ifdef OPCODES_M68000 + RET(14) +#else RET(10) - } - } - else - { - PC++; - RET(12) - } - PC++; -RET(14) +#endif } // DBCC OPCODE(0x54C8) { - u32 adr, res; - u32 src, dst; - - if (flag_C & 0x100) - { - res = DREGu16((Opcode >> 0) & 7); - res--; - DREGu16((Opcode >> 0) & 7) = res; - if ((s32)res != -1) - { - u32 newPC; - - newPC = (u32)(PC) - BasePC; - newPC += GET_SWORD; - SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) + u32 res; + + if (flag_C & 0x100) + { + res = DREGu16((Opcode /*>> 0*/) & 7); + res--; + DREGu16((Opcode /*>> 0*/) & 7) = res; + if ((s32)res != -1) + { + u32 newPC; + + newPC = (u32)(PC) - BasePC; + newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif + SET_PC(newPC); +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif + } + } + else + { + PC++; +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif + } + PC++; +#ifdef OPCODES_M68000 + RET(14) +#else RET(10) - } - } - else - { - PC++; - RET(12) - } - PC++; -RET(14) +#endif } // DBCC OPCODE(0x55C8) { - u32 adr, res; - u32 src, dst; - - if (!(flag_C & 0x100)) - { - res = DREGu16((Opcode >> 0) & 7); - res--; - DREGu16((Opcode >> 0) & 7) = res; - if ((s32)res != -1) - { - u32 newPC; - - newPC = (u32)(PC) - BasePC; - newPC += GET_SWORD; - SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) + u32 res; + + if (!(flag_C & 0x100)) + { + res = DREGu16((Opcode /*>> 0*/) & 7); + res--; + DREGu16((Opcode /*>> 0*/) & 7) = res; + if ((s32)res != -1) + { + u32 newPC; + + newPC = (u32)(PC) - BasePC; + newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif + SET_PC(newPC); +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif + } + } + else + { + PC++; +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif + } + PC++; +#ifdef OPCODES_M68000 + RET(14) +#else RET(10) - } - } - else - { - PC++; - RET(12) - } - PC++; -RET(14) +#endif } // DBCC OPCODE(0x56C8) { - u32 adr, res; - u32 src, dst; - - if (!flag_NotZ) - { - res = DREGu16((Opcode >> 0) & 7); - res--; - DREGu16((Opcode >> 0) & 7) = res; - if ((s32)res != -1) - { - u32 newPC; - - newPC = (u32)(PC) - BasePC; - newPC += GET_SWORD; - SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) + u32 res; + + if (!flag_NotZ) + { + res = DREGu16((Opcode /*>> 0*/) & 7); + res--; + DREGu16((Opcode /*>> 0*/) & 7) = res; + if ((s32)res != -1) + { + u32 newPC; + + newPC = (u32)(PC) - BasePC; + newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif + SET_PC(newPC); +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif + } + } + else + { + PC++; +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif + } + PC++; +#ifdef OPCODES_M68000 + RET(14) +#else RET(10) - } - } - else - { - PC++; - RET(12) - } - PC++; -RET(14) +#endif } // DBCC OPCODE(0x57C8) { - u32 adr, res; - u32 src, dst; - - if (flag_NotZ) - { - res = DREGu16((Opcode >> 0) & 7); - res--; - DREGu16((Opcode >> 0) & 7) = res; - if ((s32)res != -1) - { - u32 newPC; - - newPC = (u32)(PC) - BasePC; - newPC += GET_SWORD; - SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) - RET(10) - } - } - else - { - PC++; - RET(12) - } - PC++; + u32 res; + + if (flag_NotZ) + { + res = DREGu16((Opcode /*>> 0*/) & 7); + res--; + DREGu16((Opcode /*>> 0*/) & 7) = res; + if ((s32)res != -1) + { + u32 newPC; + + newPC = (u32)(PC) - BasePC; + newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif + SET_PC(newPC); +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif + } + } + else + { + PC++; +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif + } + PC++; +#ifdef OPCODES_M68000 RET(14) +#else + RET(10) +#endif } // DBCC OPCODE(0x58C8) { - u32 adr, res; - u32 src, dst; - - if (flag_V & 0x80) - { - res = DREGu16((Opcode >> 0) & 7); - res--; - DREGu16((Opcode >> 0) & 7) = res; - if ((s32)res != -1) - { - u32 newPC; - - newPC = (u32)(PC) - BasePC; - newPC += GET_SWORD; - SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) + u32 res; + + if (flag_V & 0x80) + { + res = DREGu16((Opcode /*>> 0*/) & 7); + res--; + DREGu16((Opcode /*>> 0*/) & 7) = res; + if ((s32)res != -1) + { + u32 newPC; + + newPC = (u32)(PC) - BasePC; + newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif + SET_PC(newPC); +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif + } + } + else + { + PC++; +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif + } + PC++; +#ifdef OPCODES_M68000 + RET(14) +#else RET(10) - } - } - else - { - PC++; - RET(12) - } - PC++; -RET(14) +#endif } // DBCC OPCODE(0x59C8) { - u32 adr, res; - u32 src, dst; - - if (!(flag_V & 0x80)) - { - res = DREGu16((Opcode >> 0) & 7); - res--; - DREGu16((Opcode >> 0) & 7) = res; - if ((s32)res != -1) - { - u32 newPC; - - newPC = (u32)(PC) - BasePC; - newPC += GET_SWORD; - SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) + u32 res; + + if (!(flag_V & 0x80)) + { + res = DREGu16((Opcode /*>> 0*/) & 7); + res--; + DREGu16((Opcode /*>> 0*/) & 7) = res; + if ((s32)res != -1) + { + u32 newPC; + + newPC = (u32)(PC) - BasePC; + newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif + SET_PC(newPC); +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif + } + } + else + { + PC++; +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif + } + PC++; +#ifdef OPCODES_M68000 + RET(14) +#else RET(10) - } - } - else - { - PC++; - RET(12) - } - PC++; -RET(14) +#endif } // DBCC OPCODE(0x5AC8) { - u32 adr, res; - u32 src, dst; - - if (flag_N & 0x80) - { - res = DREGu16((Opcode >> 0) & 7); - res--; - DREGu16((Opcode >> 0) & 7) = res; - if ((s32)res != -1) - { - u32 newPC; - - newPC = (u32)(PC) - BasePC; - newPC += GET_SWORD; - SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) + u32 res; + + if (flag_N & 0x80) + { + res = DREGu16((Opcode /*>> 0*/) & 7); + res--; + DREGu16((Opcode /*>> 0*/) & 7) = res; + if ((s32)res != -1) + { + u32 newPC; + + newPC = (u32)(PC) - BasePC; + newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif + SET_PC(newPC); +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif + } + } + else + { + PC++; +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif + } + PC++; +#ifdef OPCODES_M68000 + RET(14) +#else RET(10) - } - } - else - { - PC++; - RET(12) - } - PC++; -RET(14) +#endif } // DBCC OPCODE(0x5BC8) { - u32 adr, res; - u32 src, dst; - - if (!(flag_N & 0x80)) - { - res = DREGu16((Opcode >> 0) & 7); - res--; - DREGu16((Opcode >> 0) & 7) = res; - if ((s32)res != -1) - { - u32 newPC; - - newPC = (u32)(PC) - BasePC; - newPC += GET_SWORD; - SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) + u32 res; + + if (!(flag_N & 0x80)) + { + res = DREGu16((Opcode /*>> 0*/) & 7); + res--; + DREGu16((Opcode /*>> 0*/) & 7) = res; + if ((s32)res != -1) + { + u32 newPC; + + newPC = (u32)(PC) - BasePC; + newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif + SET_PC(newPC); +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif + } + } + else + { + PC++; +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif + } + PC++; +#ifdef OPCODES_M68000 + RET(14) +#else RET(10) - } - } - else - { - PC++; - RET(12) - } - PC++; -RET(14) +#endif } // DBCC OPCODE(0x5CC8) { - u32 adr, res; - u32 src, dst; - - if ((flag_N ^ flag_V) & 0x80) - { - res = DREGu16((Opcode >> 0) & 7); - res--; - DREGu16((Opcode >> 0) & 7) = res; - if ((s32)res != -1) - { - u32 newPC; - - newPC = (u32)(PC) - BasePC; - newPC += GET_SWORD; - SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) + u32 res; + + if ((flag_N ^ flag_V) & 0x80) + { + res = DREGu16((Opcode /*>> 0*/) & 7); + res--; + DREGu16((Opcode /*>> 0*/) & 7) = res; + if ((s32)res != -1) + { + u32 newPC; + + newPC = (u32)(PC) - BasePC; + newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif + SET_PC(newPC); +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif + } + } + else + { + PC++; +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif + } + PC++; +#ifdef OPCODES_M68000 + RET(14) +#else RET(10) - } - } - else - { - PC++; - RET(12) - } - PC++; -RET(14) +#endif } // DBCC OPCODE(0x5DC8) { - u32 adr, res; - u32 src, dst; - - if (!((flag_N ^ flag_V) & 0x80)) - { - res = DREGu16((Opcode >> 0) & 7); - res--; - DREGu16((Opcode >> 0) & 7) = res; - if ((s32)res != -1) - { - u32 newPC; - - newPC = (u32)(PC) - BasePC; - newPC += GET_SWORD; - SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) + u32 res; + + if (!((flag_N ^ flag_V) & 0x80)) + { + res = DREGu16((Opcode /*>> 0*/) & 7); + res--; + DREGu16((Opcode /*>> 0*/) & 7) = res; + if ((s32)res != -1) + { + u32 newPC; + + newPC = (u32)(PC) - BasePC; + newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif + SET_PC(newPC); +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif + } + } + else + { + PC++; +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif + } + PC++; +#ifdef OPCODES_M68000 + RET(14) +#else RET(10) - } - } - else - { - PC++; - RET(12) - } - PC++; -RET(14) +#endif } // DBCC OPCODE(0x5EC8) { - u32 adr, res; - u32 src, dst; - - if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80)) - { - res = DREGu16((Opcode >> 0) & 7); - res--; - DREGu16((Opcode >> 0) & 7) = res; - if ((s32)res != -1) - { - u32 newPC; - - newPC = (u32)(PC) - BasePC; - newPC += GET_SWORD; - SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) + u32 res; + + if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80)) + { + res = DREGu16((Opcode /*>> 0*/) & 7); + res--; + DREGu16((Opcode /*>> 0*/) & 7) = res; + if ((s32)res != -1) + { + u32 newPC; + + newPC = (u32)(PC) - BasePC; + newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif + SET_PC(newPC); +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif + } + } + else + { + PC++; +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif + } + PC++; +#ifdef OPCODES_M68000 + RET(14) +#else RET(10) - } - } - else - { - PC++; - RET(12) - } - PC++; -RET(14) +#endif } // DBCC OPCODE(0x5FC8) { - u32 adr, res; - u32 src, dst; - - if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80))) - { - res = DREGu16((Opcode >> 0) & 7); - res--; - DREGu16((Opcode >> 0) & 7) = res; - if ((s32)res != -1) - { - u32 newPC; - - newPC = (u32)(PC) - BasePC; - newPC += GET_SWORD; - SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) + u32 res; + + if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80))) + { + res = DREGu16((Opcode /*>> 0*/) & 7); + res--; + DREGu16((Opcode /*>> 0*/) & 7) = res; + if ((s32)res != -1) + { + u32 newPC; + + newPC = (u32)(PC) - BasePC; + newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif + SET_PC(newPC); +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif + } + } + else + { + PC++; +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif + } + PC++; +#ifdef OPCODES_M68000 + RET(14) +#else RET(10) - } - } - else - { - PC++; - RET(12) - } - PC++; -RET(14) +#endif } // ADDQ OPCODE(0x5000) { - u32 adr, res; + u32 res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - dst = DREGu8((Opcode >> 0) & 7); + dst = DREGu8((Opcode /*>> 0*/) & 7); res = dst + src; flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; - DREGu8((Opcode >> 0) & 7) = res; -RET(4) + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // ADDQ @@ -23702,18 +27366,20 @@ OPCODE(0x5010) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, dst) res = dst + src; flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // ADDQ @@ -23721,19 +27387,21 @@ OPCODE(0x5018) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, dst) res = dst + src; flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // ADDQ @@ -23741,19 +27409,21 @@ OPCODE(0x5020) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, dst) res = dst + src; flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // ADDQ @@ -23761,19 +27431,21 @@ OPCODE(0x5028) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, dst) res = dst + src; flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(9) +#endif } // ADDQ @@ -23781,19 +27453,21 @@ OPCODE(0x5030) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, dst) res = dst + src; flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(11) +#endif } // ADDQ @@ -23801,18 +27475,20 @@ OPCODE(0x5038) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, dst) res = dst + src; flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // ADDQ @@ -23820,18 +27496,20 @@ OPCODE(0x5039) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, dst) res = dst + src; flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // ADDQ @@ -23839,19 +27517,21 @@ OPCODE(0x501F) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, dst) res = dst + src; flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // ADDQ @@ -23859,51 +27539,57 @@ OPCODE(0x5027) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, dst) res = dst + src; flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // ADDQ OPCODE(0x5040) { - u32 adr, res; + u32 res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - dst = DREGu16((Opcode >> 0) & 7); + dst = DREGu16((Opcode /*>> 0*/) & 7); res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; - DREGu16((Opcode >> 0) & 7) = res; -RET(4) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // ADDQ OPCODE(0x5048) { - u32 adr, res; + u32 res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - dst = AREGu32((Opcode >> 0) & 7); + dst = AREGu32((Opcode /*>> 0*/) & 7); res = dst + src; - AREG((Opcode >> 0) & 7) = res; -#ifdef USE_CYCLONE_TIMING_ // breaks Project-X -RET(4) + AREG((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8) #else -RET(8) + RET(4) #endif } @@ -23912,18 +27598,20 @@ OPCODE(0x5050) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, dst) res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // ADDQ @@ -23931,19 +27619,21 @@ OPCODE(0x5058) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, dst) res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // ADDQ @@ -23951,19 +27641,21 @@ OPCODE(0x5060) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, dst) res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // ADDQ @@ -23971,19 +27663,21 @@ OPCODE(0x5068) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, dst) res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(9) +#endif } // ADDQ @@ -23991,19 +27685,21 @@ OPCODE(0x5070) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, dst) res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(11) +#endif } // ADDQ @@ -24011,18 +27707,20 @@ OPCODE(0x5078) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, dst) res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // ADDQ @@ -24030,18 +27728,20 @@ OPCODE(0x5079) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, dst) res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // ADDQ @@ -24049,19 +27749,21 @@ OPCODE(0x505F) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, dst) res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // ADDQ @@ -24069,49 +27771,59 @@ OPCODE(0x5067) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, dst) res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // ADDQ OPCODE(0x5080) { - u32 adr, res; + u32 res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - dst = DREGu32((Opcode >> 0) & 7); + dst = DREGu32((Opcode /*>> 0*/) & 7); res = dst + src; flag_NotZ = res; flag_X = flag_C = ((src & dst & 1) + (src >> 1) + (dst >> 1)) >> 23; flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; - DREGu32((Opcode >> 0) & 7) = res; -RET(8) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8) +#else + RET(2) +#endif } // ADDQ OPCODE(0x5088) { - u32 adr, res; + u32 res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - dst = AREGu32((Opcode >> 0) & 7); + dst = AREGu32((Opcode /*>> 0*/) & 7); res = dst + src; - AREG((Opcode >> 0) & 7) = res; -RET(8) + AREG((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // ADDQ @@ -24119,10 +27831,9 @@ OPCODE(0x5090) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, dst) res = dst + src; flag_NotZ = res; @@ -24130,8 +27841,11 @@ OPCODE(0x5090) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // ADDQ @@ -24139,11 +27853,10 @@ OPCODE(0x5098) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, dst) res = dst + src; flag_NotZ = res; @@ -24151,8 +27864,11 @@ OPCODE(0x5098) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // ADDQ @@ -24160,11 +27876,10 @@ OPCODE(0x50A0) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, dst) res = dst + src; flag_NotZ = res; @@ -24172,8 +27887,11 @@ OPCODE(0x50A0) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(9) +#endif } // ADDQ @@ -24181,11 +27899,10 @@ OPCODE(0x50A8) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, dst) res = dst + src; flag_NotZ = res; @@ -24193,8 +27910,11 @@ OPCODE(0x50A8) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(9) +#endif } // ADDQ @@ -24202,11 +27922,10 @@ OPCODE(0x50B0) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, dst) res = dst + src; flag_NotZ = res; @@ -24214,8 +27933,11 @@ OPCODE(0x50B0) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(11) +#endif } // ADDQ @@ -24223,10 +27945,9 @@ OPCODE(0x50B8) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, dst) res = dst + src; flag_NotZ = res; @@ -24234,8 +27955,11 @@ OPCODE(0x50B8) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(8) +#endif } // ADDQ @@ -24243,10 +27967,9 @@ OPCODE(0x50B9) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, dst) res = dst + src; flag_NotZ = res; @@ -24254,8 +27977,11 @@ OPCODE(0x50B9) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(8) +#endif } // ADDQ @@ -24263,11 +27989,10 @@ OPCODE(0x509F) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, dst) res = dst + src; flag_NotZ = res; @@ -24275,8 +28000,11 @@ OPCODE(0x509F) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // ADDQ @@ -24284,11 +28012,10 @@ OPCODE(0x50A7) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, dst) res = dst + src; flag_NotZ = res; @@ -24296,24 +28023,31 @@ OPCODE(0x50A7) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(9) +#endif } // SUBQ OPCODE(0x5100) { - u32 adr, res; + u32 res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - dst = DREGu8((Opcode >> 0) & 7); + dst = DREGu8((Opcode /*>> 0*/) & 7); res = dst - src; flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; - DREGu8((Opcode >> 0) & 7) = res; -RET(4) + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // SUBQ @@ -24321,18 +28055,20 @@ OPCODE(0x5110) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // SUBQ @@ -24340,19 +28076,21 @@ OPCODE(0x5118) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // SUBQ @@ -24360,19 +28098,21 @@ OPCODE(0x5120) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // SUBQ @@ -24380,19 +28120,21 @@ OPCODE(0x5128) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(9) +#endif } // SUBQ @@ -24400,19 +28142,21 @@ OPCODE(0x5130) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(11) +#endif } // SUBQ @@ -24420,18 +28164,20 @@ OPCODE(0x5138) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // SUBQ @@ -24439,18 +28185,20 @@ OPCODE(0x5139) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // SUBQ @@ -24458,19 +28206,21 @@ OPCODE(0x511F) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // SUBQ @@ -24478,48 +28228,58 @@ OPCODE(0x5127) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // SUBQ OPCODE(0x5140) { - u32 adr, res; + u32 res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - dst = DREGu16((Opcode >> 0) & 7); + dst = DREGu16((Opcode /*>> 0*/) & 7); res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; - DREGu16((Opcode >> 0) & 7) = res; -RET(4) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // SUBQ OPCODE(0x5148) { - u32 adr, res; + u32 res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - dst = AREGu32((Opcode >> 0) & 7); + dst = AREGu32((Opcode /*>> 0*/) & 7); res = dst - src; - AREG((Opcode >> 0) & 7) = res; -RET(8) + AREG((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // SUBQ @@ -24527,18 +28287,20 @@ OPCODE(0x5150) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // SUBQ @@ -24546,19 +28308,21 @@ OPCODE(0x5158) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // SUBQ @@ -24566,19 +28330,21 @@ OPCODE(0x5160) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // SUBQ @@ -24586,19 +28352,21 @@ OPCODE(0x5168) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(9) +#endif } // SUBQ @@ -24606,19 +28374,21 @@ OPCODE(0x5170) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(11) +#endif } // SUBQ @@ -24626,18 +28396,20 @@ OPCODE(0x5178) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // SUBQ @@ -24645,18 +28417,20 @@ OPCODE(0x5179) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // SUBQ @@ -24664,19 +28438,21 @@ OPCODE(0x515F) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // SUBQ @@ -24684,49 +28460,59 @@ OPCODE(0x5167) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // SUBQ OPCODE(0x5180) { - u32 adr, res; + u32 res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - dst = DREGu32((Opcode >> 0) & 7); + dst = DREGu32((Opcode /*>> 0*/) & 7); res = dst - src; flag_NotZ = res; flag_X = flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - DREGu32((Opcode >> 0) & 7) = res; -RET(8) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8) +#else + RET(2) +#endif } // SUBQ OPCODE(0x5188) { - u32 adr, res; + u32 res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - dst = AREGu32((Opcode >> 0) & 7); + dst = AREGu32((Opcode /*>> 0*/) & 7); res = dst - src; - AREG((Opcode >> 0) & 7) = res; -RET(8) + AREG((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // SUBQ @@ -24734,10 +28520,9 @@ OPCODE(0x5190) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; @@ -24745,8 +28530,11 @@ OPCODE(0x5190) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // SUBQ @@ -24754,11 +28542,10 @@ OPCODE(0x5198) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; @@ -24766,8 +28553,11 @@ OPCODE(0x5198) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // SUBQ @@ -24775,11 +28565,10 @@ OPCODE(0x51A0) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; @@ -24787,8 +28576,11 @@ OPCODE(0x51A0) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(9) +#endif } // SUBQ @@ -24796,11 +28588,10 @@ OPCODE(0x51A8) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; @@ -24808,8 +28599,11 @@ OPCODE(0x51A8) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(9) +#endif } // SUBQ @@ -24817,11 +28611,10 @@ OPCODE(0x51B0) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; @@ -24829,8 +28622,11 @@ OPCODE(0x51B0) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(11) +#endif } // SUBQ @@ -24838,10 +28634,9 @@ OPCODE(0x51B8) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; @@ -24849,8 +28644,11 @@ OPCODE(0x51B8) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(8) +#endif } // SUBQ @@ -24858,10 +28656,9 @@ OPCODE(0x51B9) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; @@ -24869,8 +28666,11 @@ OPCODE(0x51B9) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(8) +#endif } // SUBQ @@ -24878,11 +28678,10 @@ OPCODE(0x519F) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; @@ -24890,8 +28689,11 @@ OPCODE(0x519F) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // SUBQ @@ -24899,11 +28701,10 @@ OPCODE(0x51A7) { u32 adr, res; u32 src, dst; - + src = (((Opcode >> 9) - 1) & 7) + 1; adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; @@ -24911,584 +28712,1062 @@ OPCODE(0x51A7) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(9) +#endif } // BCC OPCODE(0x6201) { - u32 adr, res; - u32 src, dst; - if (flag_NotZ && (!(flag_C & 0x100))) { PC += ((s8)(Opcode & 0xFE)) >> 1; - io_cycle_counter -= 2; +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // BCC OPCODE(0x6301) { - u32 adr, res; - u32 src, dst; - if ((!flag_NotZ) || (flag_C & 0x100)) { PC += ((s8)(Opcode & 0xFE)) >> 1; - io_cycle_counter -= 2; +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // BCC OPCODE(0x6401) { - u32 adr, res; - u32 src, dst; - if (!(flag_C & 0x100)) { PC += ((s8)(Opcode & 0xFE)) >> 1; - io_cycle_counter -= 2; +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // BCC OPCODE(0x6501) { - u32 adr, res; - u32 src, dst; - if (flag_C & 0x100) { PC += ((s8)(Opcode & 0xFE)) >> 1; - io_cycle_counter -= 2; +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // BCC OPCODE(0x6601) { - u32 adr, res; - u32 src, dst; - if (flag_NotZ) { PC += ((s8)(Opcode & 0xFE)) >> 1; - io_cycle_counter -= 2; +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // BCC OPCODE(0x6701) { - u32 adr, res; - u32 src, dst; - if (!flag_NotZ) { PC += ((s8)(Opcode & 0xFE)) >> 1; - io_cycle_counter -= 2; +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // BCC OPCODE(0x6801) { - u32 adr, res; - u32 src, dst; - if (!(flag_V & 0x80)) { PC += ((s8)(Opcode & 0xFE)) >> 1; - io_cycle_counter -= 2; +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // BCC OPCODE(0x6901) { - u32 adr, res; - u32 src, dst; - if (flag_V & 0x80) { PC += ((s8)(Opcode & 0xFE)) >> 1; - io_cycle_counter -= 2; +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // BCC OPCODE(0x6A01) { - u32 adr, res; - u32 src, dst; - if (!(flag_N & 0x80)) { PC += ((s8)(Opcode & 0xFE)) >> 1; - io_cycle_counter -= 2; +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // BCC OPCODE(0x6B01) { - u32 adr, res; - u32 src, dst; - if (flag_N & 0x80) { PC += ((s8)(Opcode & 0xFE)) >> 1; - io_cycle_counter -= 2; +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // BCC OPCODE(0x6C01) { - u32 adr, res; - u32 src, dst; - if (!((flag_N ^ flag_V) & 0x80)) { PC += ((s8)(Opcode & 0xFE)) >> 1; - io_cycle_counter -= 2; +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // BCC OPCODE(0x6D01) { - u32 adr, res; - u32 src, dst; - if ((flag_N ^ flag_V) & 0x80) { PC += ((s8)(Opcode & 0xFE)) >> 1; - io_cycle_counter -= 2; +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // BCC OPCODE(0x6E01) { - u32 adr, res; - u32 src, dst; - if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80))) { PC += ((s8)(Opcode & 0xFE)) >> 1; - io_cycle_counter -= 2; +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // BCC OPCODE(0x6F01) { - u32 adr, res; - u32 src, dst; - if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80)) { PC += ((s8)(Opcode & 0xFE)) >> 1; - io_cycle_counter -= 2; +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // BCC16 OPCODE(0x6200) { - u32 adr, res; - u32 src, dst; - if (flag_NotZ && (!(flag_C & 0x100))) { u32 newPC; - + newPC = (u32)(PC) - BasePC; newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) - RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } PC++; -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // BCC16 OPCODE(0x6300) { - u32 adr, res; - u32 src, dst; - if ((!flag_NotZ) || (flag_C & 0x100)) { u32 newPC; - + newPC = (u32)(PC) - BasePC; newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) - RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } PC++; -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // BCC16 OPCODE(0x6400) { - u32 adr, res; - u32 src, dst; - if (!(flag_C & 0x100)) { u32 newPC; - + newPC = (u32)(PC) - BasePC; newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) - RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } PC++; -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // BCC16 OPCODE(0x6500) { - u32 adr, res; - u32 src, dst; - if (flag_C & 0x100) { u32 newPC; - + newPC = (u32)(PC) - BasePC; newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) - RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } PC++; -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // BCC16 OPCODE(0x6600) { - u32 adr, res; - u32 src, dst; - if (flag_NotZ) { u32 newPC; - + newPC = (u32)(PC) - BasePC; newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) - RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } PC++; -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // BCC16 OPCODE(0x6700) { - u32 adr, res; - u32 src, dst; - if (!flag_NotZ) { u32 newPC; - + newPC = (u32)(PC) - BasePC; newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) - RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } PC++; -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // BCC16 OPCODE(0x6800) { - u32 adr, res; - u32 src, dst; - if (!(flag_V & 0x80)) { u32 newPC; - + newPC = (u32)(PC) - BasePC; newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) - RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } PC++; -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // BCC16 OPCODE(0x6900) { - u32 adr, res; - u32 src, dst; - if (flag_V & 0x80) { u32 newPC; - + newPC = (u32)(PC) - BasePC; newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) - RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } PC++; -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // BCC16 OPCODE(0x6A00) { - u32 adr, res; - u32 src, dst; - if (!(flag_N & 0x80)) { u32 newPC; - + newPC = (u32)(PC) - BasePC; newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) - RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } PC++; -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // BCC16 OPCODE(0x6B00) { - u32 adr, res; - u32 src, dst; - if (flag_N & 0x80) { u32 newPC; - + newPC = (u32)(PC) - BasePC; newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) - RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } PC++; -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // BCC16 OPCODE(0x6C00) { - u32 adr, res; - u32 src, dst; - if (!((flag_N ^ flag_V) & 0x80)) { u32 newPC; - + newPC = (u32)(PC) - BasePC; newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) - RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } PC++; -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // BCC16 OPCODE(0x6D00) { - u32 adr, res; - u32 src, dst; - if ((flag_N ^ flag_V) & 0x80) { u32 newPC; - + newPC = (u32)(PC) - BasePC; newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) - RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } PC++; -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // BCC16 OPCODE(0x6E00) { - u32 adr, res; - u32 src, dst; - if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80))) { u32 newPC; - + newPC = (u32)(PC) - BasePC; newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) - RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } PC++; -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // BCC16 OPCODE(0x6F00) { - u32 adr, res; - u32 src, dst; - if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80)) { u32 newPC; - + newPC = (u32)(PC) - BasePC; newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) - RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } PC++; -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } +#ifdef OPCODES_M68020 +// BCC32 - 68020+ +OPCODE(0x62FF) +{ + if (flag_NotZ && (!(flag_C & 0x100))) + { + u32 newPC; + + newPC = (u32)(PC) - BasePC; + newPC += GET_SLONG; + CHECK_BRANCH_EXCEPTION(newPC,6); + SET_PC(newPC); + RET(6) + } + PC += 2; + RET(6) +} + +// BCC32 - 68020+ +OPCODE(0x63FF) +{ + if ((!flag_NotZ) || (flag_C & 0x100)) + { + u32 newPC; + + newPC = (u32)(PC) - BasePC; + newPC += GET_SLONG; + CHECK_BRANCH_EXCEPTION(newPC,6); + SET_PC(newPC); + RET(6) + } + PC += 2; + RET(6) +} + +// BCC32 - 68020+ +OPCODE(0x64FF) +{ + if (!(flag_C & 0x100)) + { + u32 newPC; + + newPC = (u32)(PC) - BasePC; + newPC += GET_SLONG; + CHECK_BRANCH_EXCEPTION(newPC,6); + SET_PC(newPC); + RET(6) + } + PC += 2; + RET(6) +} + +// BCC32 - 68020+ +OPCODE(0x65FF) +{ + if (flag_C & 0x100) + { + u32 newPC; + + newPC = (u32)(PC) - BasePC; + newPC += GET_SLONG; + CHECK_BRANCH_EXCEPTION(newPC,6); + SET_PC(newPC); + RET(6) + } + PC += 2; + RET(6) +} + +// BCC32 - 68020+ +OPCODE(0x66FF) +{ + if (flag_NotZ) + { + u32 newPC; + + newPC = (u32)(PC) - BasePC; + newPC += GET_SLONG; + CHECK_BRANCH_EXCEPTION(newPC,6); + SET_PC(newPC); + RET(6) + } + PC += 2; + RET(6) +} + +// BCC32 - 68020+ +OPCODE(0x67FF) +{ + if (!flag_NotZ) + { + u32 newPC; + + newPC = (u32)(PC) - BasePC; + newPC += GET_SLONG; + CHECK_BRANCH_EXCEPTION(newPC,6); + SET_PC(newPC); + RET(6) + } + PC += 2; + RET(6) +} + +// BCC32 - 68020+ +OPCODE(0x68FF) +{ + if (!(flag_V & 0x80)) + { + u32 newPC; + + newPC = (u32)(PC) - BasePC; + newPC += GET_SLONG; + CHECK_BRANCH_EXCEPTION(newPC,6); + SET_PC(newPC); + RET(6) + } + PC += 2; + RET(6) +} + +// BCC32 - 68020+ +OPCODE(0x69FF) +{ + if (flag_V & 0x80) + { + u32 newPC; + + newPC = (u32)(PC) - BasePC; + newPC += GET_SLONG; + CHECK_BRANCH_EXCEPTION(newPC,6); + SET_PC(newPC); + RET(6) + } + PC += 2; + RET(6) +} + +// BCC32 - 68020+ +OPCODE(0x6AFF) +{ + if (!(flag_N & 0x80)) + { + u32 newPC; + + newPC = (u32)(PC) - BasePC; + newPC += GET_SLONG; + CHECK_BRANCH_EXCEPTION(newPC,6); + SET_PC(newPC); + RET(6) + } + PC += 2; + RET(6) +} + +// BCC32 - 68020+ +OPCODE(0x6BFF) +{ + if (flag_N & 0x80) + { + u32 newPC; + + newPC = (u32)(PC) - BasePC; + newPC += GET_SLONG; + CHECK_BRANCH_EXCEPTION(newPC,6); + SET_PC(newPC); + RET(6) + } + PC += 2; + RET(6) +} + +// BCC32 - 68020+ +OPCODE(0x6CFF) +{ + if (!((flag_N ^ flag_V) & 0x80)) + { + u32 newPC; + + newPC = (u32)(PC) - BasePC; + newPC += GET_SLONG; + CHECK_BRANCH_EXCEPTION(newPC,6); + SET_PC(newPC); + RET(6) + } + PC += 2; + RET(6) +} + +// BCC32 - 68020+ +OPCODE(0x6DFF) +{ + if ((flag_N ^ flag_V) & 0x80) + { + u32 newPC; + + newPC = (u32)(PC) - BasePC; + newPC += GET_SLONG; + CHECK_BRANCH_EXCEPTION(newPC,6); + SET_PC(newPC); + RET(6) + } + PC += 2; + RET(6) +} + +// BCC32 - 68020+ +OPCODE(0x6EFF) +{ + if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80))) + { + u32 newPC; + + newPC = (u32)(PC) - BasePC; + newPC += GET_SLONG; + CHECK_BRANCH_EXCEPTION(newPC,6); + SET_PC(newPC); + RET(6) + } + PC += 2; + RET(6) +} + +// BCC32 - 68020+ +OPCODE(0x6FFF) +{ + if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80)) + { + u32 newPC; + + newPC = (u32)(PC) - BasePC; + newPC += GET_SLONG; + CHECK_BRANCH_EXCEPTION(newPC,6); + SET_PC(newPC); + RET(6) + } + PC += 2; + RET(6) +} +#endif + // BRA OPCODE(0x6001) { - u32 res; -#ifdef FAMEC_CHECK_BRANCHES u32 newPC = (u32)(PC) - BasePC; s8 offs=Opcode; newPC += offs; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(offs) +#ifdef OPCODES_M68000 + RET(10) #else - PC += ((s8)(Opcode & 0xFE)) >> 1; + RET(6) #endif -RET(10) } // BRA16 OPCODE(0x6000) { - u32 adr, res; - u32 src, dst; - - { - u32 newPC; + u32 newPC; + + newPC = (u32)(PC) - BasePC; + newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(newPC,10); +#else + CHECK_BRANCH_EXCEPTION(newPC,6); +#endif + SET_PC(newPC); +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif +} - newPC = (u32)(PC) - BasePC; - newPC += GET_SWORD; - SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) - } -RET(10) +#ifdef OPCODES_M68020 +// BRA32 - 68020+ +OPCODE(0x60FF) +{ + u32 newPC; + + newPC = (u32)(PC) - BasePC; + newPC += GET_SLONG; + CHECK_BRANCH_EXCEPTION(newPC,6); + SET_PC(newPC); + RET(6) } +#endif // BSR OPCODE(0x6101) { - u32 adr, res; - u32 src, dst; u32 oldPC; s8 offs; - - PRE_IO - + oldPC = (u32)(PC) - BasePC; PUSH_32_F(oldPC) -#ifdef FAMEC_CHECK_BRANCHES offs = Opcode; oldPC += offs; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(oldPC,18); +#else + CHECK_BRANCH_EXCEPTION(oldPC,7); +#endif SET_PC(oldPC); - CHECK_BRANCH_EXCEPTION(offs) +#ifdef OPCODES_M68000 + RET(18) #else - PC += ((s8)(Opcode & 0xFE)) >> 1; + RET(7) #endif - POST_IO -RET(18) } // BSR16 OPCODE(0x6100) { - u32 adr, res; - u32 src, dst; - - PRE_IO - { - u32 oldPC, newPC; + u32 oldPC, newPC; + + newPC = (u32)(PC) - BasePC; + oldPC = newPC + 2; + PUSH_32_F(oldPC) + newPC += GET_SWORD; +#ifdef OPCODES_M68000 + CHECK_BRANCH_EXCEPTION(oldPC,18); +#else + CHECK_BRANCH_EXCEPTION(oldPC,7); +#endif + SET_PC(newPC); +#ifdef OPCODES_M68000 + RET(18) +#else + RET(7) +#endif +} - newPC = (u32)(PC) - BasePC; - oldPC = newPC + 2; - PUSH_32_F(oldPC) - newPC += GET_SWORD; - SET_PC(newPC); - CHECK_BRANCH_EXCEPTION(newPC) - } - POST_IO -RET(18) +#ifdef OPCODES_M68020 +// BSR32 - 68020+ +OPCODE(0x61FF) +{ + u32 oldPC, newPC; + + newPC = (u32)(PC) - BasePC; + oldPC = newPC + 4; + PUSH_32_F(oldPC) + newPC += GET_SLONG; + CHECK_BRANCH_EXCEPTION(newPC,7); + SET_PC(newPC); + RET(7) } +#endif // MOVEQ OPCODE(0x7000) { - u32 adr, res; - u32 src, dst; - + u32 res; + res = (s32)(s8)Opcode; flag_C = flag_V = 0; flag_N = flag_NotZ = res; DREGu32((Opcode >> 9) & 7) = res; -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // ORaD OPCODE(0x8000) { - u32 adr, res; - u32 src, dst; - - src = DREGu8((Opcode >> 0) & 7); + u32 res; + u32 src; + + src = DREGu8((Opcode /*>> 0*/) & 7); res = DREGu8((Opcode >> 9) & 7); res |= src; flag_C = 0; @@ -25496,17 +29775,20 @@ OPCODE(0x8000) flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // ORaD OPCODE(0x8010) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, src) res = DREGu8((Opcode >> 9) & 7); res |= src; @@ -25515,19 +29797,21 @@ OPCODE(0x8010) flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // ORaD OPCODE(0x8018) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, src) res = DREGu8((Opcode >> 9) & 7); res |= src; @@ -25536,19 +29820,21 @@ OPCODE(0x8018) flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // ORaD OPCODE(0x8020) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, src) res = DREGu8((Opcode >> 9) & 7); res |= src; @@ -25557,19 +29843,21 @@ OPCODE(0x8020) flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(7) +#endif } // ORaD OPCODE(0x8028) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, src) res = DREGu8((Opcode >> 9) & 7); res |= src; @@ -25578,19 +29866,21 @@ OPCODE(0x8028) flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // ORaD OPCODE(0x8030) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, src) res = DREGu8((Opcode >> 9) & 7); res |= src; @@ -25599,18 +29889,20 @@ OPCODE(0x8030) flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // ORaD OPCODE(0x8038) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, src) res = DREGu8((Opcode >> 9) & 7); res |= src; @@ -25619,18 +29911,20 @@ OPCODE(0x8038) flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // ORaD OPCODE(0x8039) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, src) res = DREGu8((Opcode >> 9) & 7); res |= src; @@ -25639,19 +29933,21 @@ OPCODE(0x8039) flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // ORaD OPCODE(0x803A) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_BYTE_F(adr, src) res = DREGu8((Opcode >> 9) & 7); res |= src; @@ -25660,19 +29956,21 @@ OPCODE(0x803A) flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // ORaD OPCODE(0x803B) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, src) res = DREGu8((Opcode >> 9) & 7); res |= src; @@ -25681,16 +29979,19 @@ OPCODE(0x803B) flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // ORaD OPCODE(0x803C) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; + FETCH_BYTE(src); res = DREGu8((Opcode >> 9) & 7); res |= src; @@ -25699,18 +30000,21 @@ OPCODE(0x803C) flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // ORaD OPCODE(0x801F) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, src) res = DREGu8((Opcode >> 9) & 7); res |= src; @@ -25719,19 +30023,21 @@ OPCODE(0x801F) flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // ORaD OPCODE(0x8027) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, src) res = DREGu8((Opcode >> 9) & 7); res |= src; @@ -25740,17 +30046,20 @@ OPCODE(0x8027) flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(7) +#endif } // ORaD OPCODE(0x8040) { - u32 adr, res; - u32 src, dst; - - src = DREGu16((Opcode >> 0) & 7); + u32 res; + u32 src ; + + src = DREGu16((Opcode /*>> 0*/) & 7); res = DREGu16((Opcode >> 9) & 7); res |= src; flag_C = 0; @@ -25758,17 +30067,20 @@ OPCODE(0x8040) flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // ORaD OPCODE(0x8050) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res |= src; @@ -25777,19 +30089,21 @@ OPCODE(0x8050) flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // ORaD OPCODE(0x8058) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res |= src; @@ -25798,19 +30112,21 @@ OPCODE(0x8058) flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // ORaD OPCODE(0x8060) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res |= src; @@ -25819,19 +30135,21 @@ OPCODE(0x8060) flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(7) +#endif } // ORaD OPCODE(0x8068) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res |= src; @@ -25840,19 +30158,21 @@ OPCODE(0x8068) flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // ORaD OPCODE(0x8070) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res |= src; @@ -25861,18 +30181,20 @@ OPCODE(0x8070) flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // ORaD OPCODE(0x8078) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res |= src; @@ -25881,18 +30203,20 @@ OPCODE(0x8078) flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // ORaD OPCODE(0x8079) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res |= src; @@ -25901,19 +30225,21 @@ OPCODE(0x8079) flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // ORaD OPCODE(0x807A) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res |= src; @@ -25922,19 +30248,21 @@ OPCODE(0x807A) flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // ORaD OPCODE(0x807B) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res |= src; @@ -25943,16 +30271,19 @@ OPCODE(0x807B) flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // ORaD OPCODE(0x807C) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; + FETCH_WORD(src); res = DREGu16((Opcode >> 9) & 7); res |= src; @@ -25961,18 +30292,21 @@ OPCODE(0x807C) flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // ORaD OPCODE(0x805F) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res |= src; @@ -25981,19 +30315,21 @@ OPCODE(0x805F) flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // ORaD OPCODE(0x8067) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res |= src; @@ -26002,17 +30338,20 @@ OPCODE(0x8067) flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(7) +#endif } // ORaD OPCODE(0x8080) { - u32 adr, res; - u32 src, dst; - - src = DREGu32((Opcode >> 0) & 7); + u32 res; + u32 src; + + src = DREGu32((Opcode /*>> 0*/) & 7); res = DREGu32((Opcode >> 9) & 7); res |= src; flag_C = 0; @@ -26020,17 +30359,20 @@ OPCODE(0x8080) flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(2) +#endif } // ORaD OPCODE(0x8090) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, src) res = DREGu32((Opcode >> 9) & 7); res |= src; @@ -26039,19 +30381,21 @@ OPCODE(0x8090) flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(6) +#endif } // ORaD OPCODE(0x8098) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, src) res = DREGu32((Opcode >> 9) & 7); res |= src; @@ -26060,19 +30404,21 @@ OPCODE(0x8098) flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(6) +#endif } // ORaD OPCODE(0x80A0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, src) res = DREGu32((Opcode >> 9) & 7); res |= src; @@ -26081,19 +30427,21 @@ OPCODE(0x80A0) flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // ORaD OPCODE(0x80A8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, src) res = DREGu32((Opcode >> 9) & 7); res |= src; @@ -26102,19 +30450,21 @@ OPCODE(0x80A8) flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(7) +#endif } // ORaD OPCODE(0x80B0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, src) res = DREGu32((Opcode >> 9) & 7); res |= src; @@ -26123,18 +30473,20 @@ OPCODE(0x80B0) flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // ORaD OPCODE(0x80B8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, src) res = DREGu32((Opcode >> 9) & 7); res |= src; @@ -26143,18 +30495,20 @@ OPCODE(0x80B8) flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(6) +#endif } // ORaD OPCODE(0x80B9) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, src) res = DREGu32((Opcode >> 9) & 7); res |= src; @@ -26163,19 +30517,21 @@ OPCODE(0x80B9) flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(6) +#endif } // ORaD OPCODE(0x80BA) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_LONG_F(adr, src) res = DREGu32((Opcode >> 9) & 7); res |= src; @@ -26184,19 +30540,21 @@ OPCODE(0x80BA) flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(7) +#endif } // ORaD OPCODE(0x80BB) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, src) res = DREGu32((Opcode >> 9) & 7); res |= src; @@ -26205,16 +30563,19 @@ OPCODE(0x80BB) flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // ORaD OPCODE(0x80BC) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src ; + FETCH_LONG(src); res = DREGu32((Opcode >> 9) & 7); res |= src; @@ -26223,18 +30584,21 @@ OPCODE(0x80BC) flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // ORaD OPCODE(0x809F) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, src) res = DREGu32((Opcode >> 9) & 7); res |= src; @@ -26243,19 +30607,21 @@ OPCODE(0x809F) flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(6) +#endif } // ORaD OPCODE(0x80A7) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, src) res = DREGu32((Opcode >> 9) & 7); res |= src; @@ -26264,19 +30630,21 @@ OPCODE(0x80A7) flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // ORDa OPCODE(0x8110) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) res |= src; flag_C = 0; @@ -26284,20 +30652,22 @@ OPCODE(0x8110) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // ORDa OPCODE(0x8118) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, res) res |= src; flag_C = 0; @@ -26305,20 +30675,22 @@ OPCODE(0x8118) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // ORDa OPCODE(0x8120) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, res) res |= src; flag_C = 0; @@ -26326,20 +30698,22 @@ OPCODE(0x8120) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // ORDa OPCODE(0x8128) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) res |= src; flag_C = 0; @@ -26347,20 +30721,22 @@ OPCODE(0x8128) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(9) +#endif } // ORDa OPCODE(0x8130) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) res |= src; flag_C = 0; @@ -26368,19 +30744,21 @@ OPCODE(0x8130) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(11) +#endif } // ORDa OPCODE(0x8138) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, res) res |= src; flag_C = 0; @@ -26388,19 +30766,21 @@ OPCODE(0x8138) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // ORDa OPCODE(0x8139) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, res) res |= src; flag_C = 0; @@ -26408,20 +30788,22 @@ OPCODE(0x8139) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // ORDa OPCODE(0x811F) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, res) res |= src; flag_C = 0; @@ -26429,20 +30811,22 @@ OPCODE(0x811F) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // ORDa OPCODE(0x8127) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, res) res |= src; flag_C = 0; @@ -26450,19 +30834,21 @@ OPCODE(0x8127) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // ORDa OPCODE(0x8150) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu16((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) res |= src; flag_C = 0; @@ -26470,20 +30856,22 @@ OPCODE(0x8150) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // ORDa OPCODE(0x8158) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu16((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, res) res |= src; flag_C = 0; @@ -26491,20 +30879,22 @@ OPCODE(0x8158) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // ORDa OPCODE(0x8160) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu16((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, res) res |= src; flag_C = 0; @@ -26512,20 +30902,22 @@ OPCODE(0x8160) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // ORDa OPCODE(0x8168) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu16((Opcode >> 9) & 7); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) res |= src; flag_C = 0; @@ -26533,20 +30925,22 @@ OPCODE(0x8168) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(9) +#endif } // ORDa OPCODE(0x8170) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu16((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, res) res |= src; flag_C = 0; @@ -26554,19 +30948,21 @@ OPCODE(0x8170) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(11) +#endif } // ORDa OPCODE(0x8178) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu16((Opcode >> 9) & 7); FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, res) res |= src; flag_C = 0; @@ -26574,19 +30970,21 @@ OPCODE(0x8178) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // ORDa OPCODE(0x8179) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu16((Opcode >> 9) & 7); FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, res) res |= src; flag_C = 0; @@ -26594,41 +30992,45 @@ OPCODE(0x8179) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // ORDa OPCODE(0x815F) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu16((Opcode >> 9) & 7); adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, res) res |= src; flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; - WRITE_WORD_F(adr, res) - POST_IO -RET(12) + WRITE_WORD_F(adr, res) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // ORDa OPCODE(0x8167) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu16((Opcode >> 9) & 7); adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, res) res |= src; flag_C = 0; @@ -26636,19 +31038,21 @@ OPCODE(0x8167) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // ORDa OPCODE(0x8190) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu32((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) res |= src; flag_C = 0; @@ -26656,20 +31060,22 @@ OPCODE(0x8190) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // ORDa OPCODE(0x8198) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu32((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, res) res |= src; flag_C = 0; @@ -26677,20 +31083,22 @@ OPCODE(0x8198) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // ORDa OPCODE(0x81A0) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu32((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, res) res |= src; flag_C = 0; @@ -26698,20 +31106,22 @@ OPCODE(0x81A0) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(9) +#endif } // ORDa OPCODE(0x81A8) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu32((Opcode >> 9) & 7); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) res |= src; flag_C = 0; @@ -26719,20 +31129,22 @@ OPCODE(0x81A8) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(9) +#endif } // ORDa OPCODE(0x81B0) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu32((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, res) res |= src; flag_C = 0; @@ -26740,19 +31152,21 @@ OPCODE(0x81B0) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(11) +#endif } // ORDa OPCODE(0x81B8) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu32((Opcode >> 9) & 7); FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, res) res |= src; flag_C = 0; @@ -26760,19 +31174,21 @@ OPCODE(0x81B8) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(8) +#endif } // ORDa OPCODE(0x81B9) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu32((Opcode >> 9) & 7); FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, res) res |= src; flag_C = 0; @@ -26780,20 +31196,22 @@ OPCODE(0x81B9) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(8) +#endif } // ORDa OPCODE(0x819F) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu32((Opcode >> 9) & 7); adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, res) res |= src; flag_C = 0; @@ -26801,20 +31219,22 @@ OPCODE(0x819F) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // ORDa OPCODE(0x81A7) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu32((Opcode >> 9) & 7); adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, res) res |= src; flag_C = 0; @@ -26822,17 +31242,203 @@ OPCODE(0x81A7) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(9) +#endif +} + +#ifdef OPCODES_M68020 +// PACK Dn,Dn - 68020+ +OPCODE(0x8140) +{ + u16 src, dst; + + FETCH_WORD(src) + src += DREGu16((Opcode /*>> 0*/) & 7); + dst = ((src >> 4) & 0x00F0) | (src & 0x000F); + DREGu8((Opcode >> 9) & 7) = dst; + RET(6) +} + +// PACK -(An),-(An) - 68020+ +OPCODE(0x8148) +{ + u32 adr, res; + u16 src, dst; + + FETCH_WORD(src) + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + READ_BYTE_F(adr, dst) + adr -= 1; + READ_BYTE_F(adr, res); + AREG((Opcode /*>> 0*/) & 7) = adr; + dst = (dst | (res << 8)) + src; + dst = ((dst >> 4) & 0xF0) | (dst & 0x0F); + adr = AREG((Opcode >> 9) & 7) - 1; + AREG((Opcode >> 9) & 7) = adr; + WRITE_BYTE_F(adr, dst) + RET(13) +} + +// PACK -(A7),-(An) - 68020+ +OPCODE(0x814F) +{ + u32 adr, res; + u16 src, dst; + + FETCH_WORD(src) + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + READ_BYTE_F(adr, dst) + adr -= 2; + READ_BYTE_F(adr, res); + AREG((Opcode /*>> 0*/) & 7) = adr; + dst = (dst | (res << 8)) + src; + dst = ((dst >> 4) & 0xF0) | (dst & 0x0F); + adr = AREG((Opcode >> 9) & 7) - 1; + AREG((Opcode >> 9) & 7) = adr; + WRITE_BYTE_F(adr, dst) + RET(13) +} + +// PACK -(An),-(A7) - 68020+ +OPCODE(0x8F48) +{ + u32 adr, res; + u16 src, dst; + + FETCH_WORD(src) + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + READ_BYTE_F(adr, dst) + adr -= 1; + READ_BYTE_F(adr, res); + AREG((Opcode /*>> 0*/) & 7) = adr; + dst = (dst | (res << 8)) + src; + dst = ((dst >> 4) & 0xF0) | (dst & 0x0F); + adr = AREG((Opcode >> 9) & 7) - 2; + AREG((Opcode >> 9) & 7) = adr; + WRITE_BYTE_F(adr, dst) + RET(13) +} + +// PACK -(A7),-(A7) - 68020+ +OPCODE(0x8F4F) +{ + u32 adr, res; + u16 src, dst; + + FETCH_WORD(src) + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + READ_BYTE_F(adr, dst) + adr -= 2; + READ_BYTE_F(adr, res); + AREG((Opcode /*>> 0*/) & 7) = adr; + dst = (dst | (res << 8)) + src; + dst = ((dst >> 4) & 0xF0) | (dst & 0x0F); + adr = AREG((Opcode >> 9) & 7) - 2; + AREG((Opcode >> 9) & 7) = adr; + WRITE_BYTE_F(adr, dst) + RET(13) +} + +// UNPK Dn,Dn - 68020+ +OPCODE(0x8180) +{ + u16 src, dst; + + FETCH_WORD(src) + dst = DREGu16((Opcode /*>> 0*/) & 7); + dst = (((dst << 4) & 0x0F00) | (dst & 0x000F)) + src; + DREGu16((Opcode >> 9) & 7) = dst; + RET(8) +} + +// UNPK -(An),-(An) - 68020+ +OPCODE(0x8188) +{ + u32 adr; + u16 src, dst; + + FETCH_WORD(src) + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; + READ_BYTE_F(adr, dst) + dst = (((dst << 4) & 0x0F00) | (dst & 0x000F)) + src; + adr = AREG((Opcode >> 9) & 7) - 1; + WRITE_BYTE_F(adr, dst) + adr -= 1; + AREG((Opcode >> 9) & 7) = adr; + WRITE_BYTE_F(adr, dst >> 8) + RET(13) +} + +// UNPK -(A7),-(An) - 68020+ +OPCODE(0x8F88) +{ + u32 adr; + u16 src, dst; + + FETCH_WORD(src) + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; + READ_BYTE_F(adr, dst) + dst = (((dst << 4) & 0x0F00) | (dst & 0x000F)) + src; + adr = AREG((Opcode >> 9) & 7) - 2; + WRITE_BYTE_F(adr, dst) + adr -= 2; + AREG((Opcode >> 9) & 7) = adr; + WRITE_BYTE_F(adr, dst >> 8) + RET(13) +} + +// UNPK -(An),-(A7) - 68020+ +OPCODE(0x818F) +{ + u32 adr; + u16 src, dst; + + FETCH_WORD(src) + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; + READ_BYTE_F(adr, dst) + dst = (((dst << 4) & 0x0F00) | (dst & 0x000F)) + src; + adr = AREG((Opcode >> 9) & 7) - 1; + WRITE_BYTE_F(adr, dst) + adr -= 1; + AREG((Opcode >> 9) & 7) = adr; + WRITE_BYTE_F(adr, dst >> 8) + RET(13) +} + +// UNPK -(A7),-(A7) - 68020+ +OPCODE(0x8F8F) +{ + u32 adr; + u16 src, dst; + + FETCH_WORD(src) + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; + READ_BYTE_F(adr, dst) + dst = (((dst << 4) & 0x0F00) | (dst & 0x000F)) + src; + adr = AREG((Opcode >> 9) & 7) - 2; + WRITE_BYTE_F(adr, dst) + adr -= 2; + AREG((Opcode >> 9) & 7) = adr; + WRITE_BYTE_F(adr, dst >> 8) + RET(13) } +#endif + // SBCD OPCODE(0x8100) { - u32 adr, res; + u32 res; u32 src, dst; - - src = DREGu8((Opcode >> 0) & 7); + + src = DREGu8((Opcode /*>> 0*/) & 7); dst = DREGu8((Opcode >> 9) & 7); res = (dst & 0xF) - (src & 0xF) - ((flag_X >> M68K_SR_X_SFT) & 1); if (res > 9) res -= 6; @@ -26846,7 +31452,11 @@ OPCODE(0x8100) flag_NotZ |= res & 0xFF; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; -RET(6) +#ifdef OPCODES_M68000 + RET(6) +#else + RET(4) +#endif } // SBCDM @@ -26854,10 +31464,9 @@ OPCODE(0x8108) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, src) adr = AREG((Opcode >> 9) & 7) - 1; AREG((Opcode >> 9) & 7) = adr; @@ -26874,8 +31483,11 @@ OPCODE(0x8108) flag_NotZ |= res & 0xFF; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(16) +#endif } // SBCD7M @@ -26883,10 +31495,9 @@ OPCODE(0x810F) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, src) adr = AREG((Opcode >> 9) & 7) - 1; AREG((Opcode >> 9) & 7) = adr; @@ -26903,8 +31514,11 @@ OPCODE(0x810F) flag_NotZ |= res & 0xFF; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(16) +#endif } // SBCDM7 @@ -26912,10 +31526,9 @@ OPCODE(0x8F08) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, src) adr = AREG(7) - 2; AREG(7) = adr; @@ -26932,8 +31545,11 @@ OPCODE(0x8F08) flag_NotZ |= res & 0xFF; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(16) +#endif } // SBCD7M7 @@ -26941,10 +31557,9 @@ OPCODE(0x8F0F) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, src) adr = AREG(7) - 2; AREG(7) = adr; @@ -26961,40 +31576,43 @@ OPCODE(0x8F0F) flag_NotZ |= res & 0xFF; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(16) +#endif } // DIVU OPCODE(0x80C0) { - u32 adr, res; + u32 res; u32 src, dst; - - src = DREGu16((Opcode >> 0) & 7); + + src = DREGu16((Opcode /*>> 0*/) & 7); if (src == 0) { execute_exception(M68K_ZERO_DIVIDE_EX); -#ifdef USE_CYCLONE_TIMING_DIV -RET(140) +#ifdef OPCODES_M68000 + RET(4 + 0) // Cycles for fetch of operants #else -RET(10) + RET(2 + 0) #endif } dst = DREGu32((Opcode >> 9) & 7); { u32 q, r; - + q = dst / src; r = dst % src; - + if (q & 0xFFFF0000) { flag_V = M68K_SR_V; -#ifdef USE_CYCLONE_TIMING_DIV -RET(140) +#ifdef OPCODES_M68000 + RET(10 + 0) #else -RET(70) + RET(10 + 0) #endif } q &= 0x0000FFFF; @@ -27002,12 +31620,12 @@ RET(70) flag_N = q >> 8; flag_V = flag_C = 0; res = q | (r << 16); - DREGu32((Opcode >> 9) & 7) = res; + DREGu32((Opcode >> 9) & 7) = res; } -#ifdef USE_CYCLONE_TIMING_DIV -RET(140) +#ifdef OPCODES_M68000 + RET(getDivu68kCycles(dst, src) + 0) #else -RET(90) + RET(44 + 0) #endif } @@ -27016,33 +31634,32 @@ OPCODE(0x80D0) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) if (src == 0) { execute_exception(M68K_ZERO_DIVIDE_EX); -#ifdef USE_CYCLONE_TIMING_DIV -RET(144) +#ifdef OPCODES_M68000 + RET(4 + 4) // Cycles for fetch of operants #else -RET(14) + RET(2 + 4) #endif } dst = DREGu32((Opcode >> 9) & 7); { u32 q, r; - + q = dst / src; r = dst % src; - + if (q & 0xFFFF0000) { flag_V = M68K_SR_V; -#ifdef USE_CYCLONE_TIMING_DIV -RET(144) +#ifdef OPCODES_M68000 + RET(10 + 4) #else - RET(74) + RET(10 + 4) #endif } q &= 0x0000FFFF; @@ -27050,12 +31667,12 @@ RET(144) flag_N = q >> 8; flag_V = flag_C = 0; res = q | (r << 16); - DREGu32((Opcode >> 9) & 7) = res; + DREGu32((Opcode >> 9) & 7) = res; } -#ifdef USE_CYCLONE_TIMING_DIV -RET(144) +#ifdef OPCODES_M68000 + RET(getDivu68kCycles(dst, src) + 4) #else -RET(94) + RET(44 + 4) #endif } @@ -27064,34 +31681,33 @@ OPCODE(0x80D8) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, src) if (src == 0) { execute_exception(M68K_ZERO_DIVIDE_EX); -#ifdef USE_CYCLONE_TIMING_DIV -RET(144) +#ifdef OPCODES_M68000 + RET(4 + 4) // Cycles for fetch of operants #else -RET(14) + RET(2 + 4) #endif } dst = DREGu32((Opcode >> 9) & 7); { u32 q, r; - + q = dst / src; r = dst % src; - + if (q & 0xFFFF0000) { flag_V = M68K_SR_V; -#ifdef USE_CYCLONE_TIMING_DIV -RET(144) +#ifdef OPCODES_M68000 + RET(10 + 4) #else - RET(74) + RET(10 + 4) #endif } q &= 0x0000FFFF; @@ -27099,12 +31715,12 @@ RET(144) flag_N = q >> 8; flag_V = flag_C = 0; res = q | (r << 16); - DREGu32((Opcode >> 9) & 7) = res; + DREGu32((Opcode >> 9) & 7) = res; } -#ifdef USE_CYCLONE_TIMING_DIV -RET(144) +#ifdef OPCODES_M68000 + RET(getDivu68kCycles(dst, src) + 4) #else -RET(94) + RET(44 + 4) #endif } @@ -27113,34 +31729,33 @@ OPCODE(0x80E0) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, src) if (src == 0) { execute_exception(M68K_ZERO_DIVIDE_EX); -#ifdef USE_CYCLONE_TIMING_DIV -RET(146) +#ifdef OPCODES_M68000 + RET(4 + 6) // Cycles for fetch of operants #else -RET(16) + RET(2 + 5) #endif } dst = DREGu32((Opcode >> 9) & 7); { u32 q, r; - + q = dst / src; r = dst % src; - + if (q & 0xFFFF0000) { flag_V = M68K_SR_V; -#ifdef USE_CYCLONE_TIMING_DIV -RET(146) +#ifdef OPCODES_M68000 + RET(10 + 6) #else - RET(76) + RET(10 + 5) #endif } q &= 0x0000FFFF; @@ -27148,12 +31763,12 @@ RET(146) flag_N = q >> 8; flag_V = flag_C = 0; res = q | (r << 16); - DREGu32((Opcode >> 9) & 7) = res; + DREGu32((Opcode >> 9) & 7) = res; } -#ifdef USE_CYCLONE_TIMING_DIV -RET(146) +#ifdef OPCODES_M68000 + RET(getDivu68kCycles(dst, src) + 6) #else -RET(96) + RET(44 + 5) #endif } @@ -27162,34 +31777,33 @@ OPCODE(0x80E8) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) if (src == 0) { execute_exception(M68K_ZERO_DIVIDE_EX); -#ifdef USE_CYCLONE_TIMING_DIV -RET(148) +#ifdef OPCODES_M68000 + RET(4 + 8) // Cycles for fetch of operants #else -RET(18) + RET(2 + 5) #endif } dst = DREGu32((Opcode >> 9) & 7); { u32 q, r; - + q = dst / src; r = dst % src; - + if (q & 0xFFFF0000) { flag_V = M68K_SR_V; -#ifdef USE_CYCLONE_TIMING_DIV -RET(148) +#ifdef OPCODES_M68000 + RET(10 + 8) #else - RET(78) + RET(10 + 5) #endif } q &= 0x0000FFFF; @@ -27197,12 +31811,12 @@ RET(148) flag_N = q >> 8; flag_V = flag_C = 0; res = q | (r << 16); - DREGu32((Opcode >> 9) & 7) = res; + DREGu32((Opcode >> 9) & 7) = res; } -#ifdef USE_CYCLONE_TIMING_DIV -RET(148) +#ifdef OPCODES_M68000 + RET(getDivu68kCycles(dst, src) + 8) #else -RET(98) + RET(44 + 5) #endif } @@ -27211,34 +31825,33 @@ OPCODE(0x80F0) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, src) if (src == 0) { execute_exception(M68K_ZERO_DIVIDE_EX); -#ifdef USE_CYCLONE_TIMING_DIV -RET(150) +#ifdef OPCODES_M68000 + RET(4 + 10) // Cycles for fetch of operants #else -RET(20) + RET(2 + 7) #endif } dst = DREGu32((Opcode >> 9) & 7); { u32 q, r; - + q = dst / src; r = dst % src; - + if (q & 0xFFFF0000) { flag_V = M68K_SR_V; -#ifdef USE_CYCLONE_TIMING_DIV -RET(150) +#ifdef OPCODES_M68000 + RET(10 + 10) #else - RET(80) + RET(10 + 7) #endif } q &= 0x0000FFFF; @@ -27246,12 +31859,12 @@ RET(150) flag_N = q >> 8; flag_V = flag_C = 0; res = q | (r << 16); - DREGu32((Opcode >> 9) & 7) = res; + DREGu32((Opcode >> 9) & 7) = res; } -#ifdef USE_CYCLONE_TIMING_DIV -RET(150) +#ifdef OPCODES_M68000 + RET(getDivu68kCycles(dst, src) + 10) #else -RET(100) + RET(44 + 7) #endif } @@ -27260,33 +31873,32 @@ OPCODE(0x80F8) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, src) if (src == 0) { execute_exception(M68K_ZERO_DIVIDE_EX); -#ifdef USE_CYCLONE_TIMING_DIV -RET(148) +#ifdef OPCODES_M68000 + RET(4 + 8) // Cycles for fetch of operants #else -RET(18) + RET(2 + 4) #endif } dst = DREGu32((Opcode >> 9) & 7); { u32 q, r; - + q = dst / src; r = dst % src; - + if (q & 0xFFFF0000) { flag_V = M68K_SR_V; -#ifdef USE_CYCLONE_TIMING_DIV -RET(148) +#ifdef OPCODES_M68000 + RET(10 + 8) #else - RET(78) + RET(10 + 4) #endif } q &= 0x0000FFFF; @@ -27294,12 +31906,12 @@ RET(148) flag_N = q >> 8; flag_V = flag_C = 0; res = q | (r << 16); - DREGu32((Opcode >> 9) & 7) = res; + DREGu32((Opcode >> 9) & 7) = res; } -#ifdef USE_CYCLONE_TIMING_DIV -RET(148) +#ifdef OPCODES_M68000 + RET(getDivu68kCycles(dst, src) + 8) #else -RET(98) + RET(44 + 4) #endif } @@ -27308,33 +31920,32 @@ OPCODE(0x80F9) { u32 adr, res; u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, src) if (src == 0) { execute_exception(M68K_ZERO_DIVIDE_EX); -#ifdef USE_CYCLONE_TIMING_DIV -RET(162) +#ifdef OPCODES_M68000 + RET(4 + 12) // Cycles for fetch of operants #else -RET(22) + RET(2 + 4) #endif } dst = DREGu32((Opcode >> 9) & 7); { u32 q, r; - + q = dst / src; r = dst % src; - + if (q & 0xFFFF0000) { flag_V = M68K_SR_V; -#ifdef USE_CYCLONE_TIMING_DIV -RET(162) +#ifdef OPCODES_M68000 + RET(10 + 12) #else - RET(82) + RET(10 + 4) #endif } q &= 0x0000FFFF; @@ -27342,12 +31953,12 @@ RET(162) flag_N = q >> 8; flag_V = flag_C = 0; res = q | (r << 16); - DREGu32((Opcode >> 9) & 7) = res; + DREGu32((Opcode >> 9) & 7) = res; } -#ifdef USE_CYCLONE_TIMING_DIV -RET(162) +#ifdef OPCODES_M68000 + RET(getDivu68kCycles(dst, src) + 12) #else -RET(102) + RET(44 + 4) #endif } @@ -27356,34 +31967,33 @@ OPCODE(0x80FA) { u32 adr, res; u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_WORD_F(adr, src) if (src == 0) { execute_exception(M68K_ZERO_DIVIDE_EX); -#ifdef USE_CYCLONE_TIMING_DIV -RET(148) +#ifdef OPCODES_M68000 + RET(4 + 8) // Cycles for fetch of operants #else -RET(18) + RET(2 + 5) #endif } dst = DREGu32((Opcode >> 9) & 7); { u32 q, r; - + q = dst / src; r = dst % src; - + if (q & 0xFFFF0000) { flag_V = M68K_SR_V; -#ifdef USE_CYCLONE_TIMING_DIV -RET(148) +#ifdef OPCODES_M68000 + RET(10 + 8) #else - RET(78) + RET(10 + 5) #endif } q &= 0x0000FFFF; @@ -27391,12 +32001,12 @@ RET(148) flag_N = q >> 8; flag_V = flag_C = 0; res = q | (r << 16); - DREGu32((Opcode >> 9) & 7) = res; + DREGu32((Opcode >> 9) & 7) = res; } -#ifdef USE_CYCLONE_TIMING_DIV -RET(148) +#ifdef OPCODES_M68000 + RET(getDivu68kCycles(dst, src) + 8) #else -RET(98) + RET(44 + 5) #endif } @@ -27405,34 +32015,33 @@ OPCODE(0x80FB) { u32 adr, res; u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, src) if (src == 0) { execute_exception(M68K_ZERO_DIVIDE_EX); -#ifdef USE_CYCLONE_TIMING_DIV -RET(160) +#ifdef OPCODES_M68000 + RET(4 + 10) // Cycles for fetch of operants #else -RET(20) + RET(2 + 7) #endif } dst = DREGu32((Opcode >> 9) & 7); { u32 q, r; - + q = dst / src; r = dst % src; - + if (q & 0xFFFF0000) { flag_V = M68K_SR_V; -#ifdef USE_CYCLONE_TIMING_DIV -RET(160) +#ifdef OPCODES_M68000 + RET(10 + 10) #else - RET(80) + RET(10 + 7) #endif } q &= 0x0000FFFF; @@ -27440,45 +32049,45 @@ RET(160) flag_N = q >> 8; flag_V = flag_C = 0; res = q | (r << 16); - DREGu32((Opcode >> 9) & 7) = res; + DREGu32((Opcode >> 9) & 7) = res; } -#ifdef USE_CYCLONE_TIMING_DIV -RET(160) +#ifdef OPCODES_M68000 + RET(getDivu68kCycles(dst, src) + 10) #else -RET(100) + RET(44 + 7) #endif } // DIVU OPCODE(0x80FC) { - u32 adr, res; + u32 res; u32 src, dst; - + FETCH_WORD(src); if (src == 0) { execute_exception(M68K_ZERO_DIVIDE_EX); -#ifdef USE_CYCLONE_TIMING_DIV -RET(144) +#ifdef OPCODES_M68000 + RET(4 + 4) // Cycles for fetch of operants #else -RET(14) + RET(2 + 2) #endif } dst = DREGu32((Opcode >> 9) & 7); { u32 q, r; - + q = dst / src; r = dst % src; - + if (q & 0xFFFF0000) { flag_V = M68K_SR_V; -#ifdef USE_CYCLONE_TIMING_DIV -RET(144) +#ifdef OPCODES_M68000 + RET(10 + 4) #else - RET(74) + RET(10 + 2) #endif } q &= 0x0000FFFF; @@ -27486,12 +32095,12 @@ RET(144) flag_N = q >> 8; flag_V = flag_C = 0; res = q | (r << 16); - DREGu32((Opcode >> 9) & 7) = res; + DREGu32((Opcode >> 9) & 7) = res; } -#ifdef USE_CYCLONE_TIMING_DIV -RET(144) +#ifdef OPCODES_M68000 + RET(getDivu68kCycles(dst, src) + 4) #else -RET(94) + RET(44 + 2) #endif } @@ -27500,34 +32109,33 @@ OPCODE(0x80DF) { u32 adr, res; u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, src) if (src == 0) { execute_exception(M68K_ZERO_DIVIDE_EX); -#ifdef USE_CYCLONE_TIMING_DIV -RET(144) +#ifdef OPCODES_M68000 + RET(4 + 4) // Cycles for fetch of operants #else -RET(14) + RET(2 + 4) #endif } dst = DREGu32((Opcode >> 9) & 7); { u32 q, r; - + q = dst / src; r = dst % src; - + if (q & 0xFFFF0000) { flag_V = M68K_SR_V; -#ifdef USE_CYCLONE_TIMING_DIV -RET(144) +#ifdef OPCODES_M68000 + RET(10 + 4) #else - RET(74) + RET(10 + 4) #endif } q &= 0x0000FFFF; @@ -27535,12 +32143,12 @@ RET(144) flag_N = q >> 8; flag_V = flag_C = 0; res = q | (r << 16); - DREGu32((Opcode >> 9) & 7) = res; + DREGu32((Opcode >> 9) & 7) = res; } -#ifdef USE_CYCLONE_TIMING_DIV -RET(144) +#ifdef OPCODES_M68000 + RET(getDivu68kCycles(dst, src) + 4) #else -RET(94) + RET(44 + 4) #endif } @@ -27549,34 +32157,33 @@ OPCODE(0x80E7) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, src) if (src == 0) { execute_exception(M68K_ZERO_DIVIDE_EX); -#ifdef USE_CYCLONE_TIMING_DIV -RET(146) +#ifdef OPCODES_M68000 + RET(4 + 6) // Cycles for fetch of operants #else -RET(16) + RET(2 + 5) #endif } dst = DREGu32((Opcode >> 9) & 7); { u32 q, r; - + q = dst / src; r = dst % src; - + if (q & 0xFFFF0000) { flag_V = M68K_SR_V; -#ifdef USE_CYCLONE_TIMING_DIV -RET(146) +#ifdef OPCODES_M68000 + RET(10 + 6) #else - RET(76) + RET(10 + 5) #endif } q &= 0x0000FFFF; @@ -27584,29 +32191,30 @@ RET(146) flag_N = q >> 8; flag_V = flag_C = 0; res = q | (r << 16); - DREGu32((Opcode >> 9) & 7) = res; + DREGu32((Opcode >> 9) & 7) = res; } -#ifdef USE_CYCLONE_TIMING_DIV -RET(146) +#ifdef OPCODES_M68000 + RET(getDivu68kCycles(dst, src) + 6) #else -RET(96) + RET(44 + 5) #endif } // DIVS OPCODE(0x81C0) { - u32 adr, res; + u32 res; u32 src, dst; - - src = (s32)DREGs16((Opcode >> 0) & 7); + + src = (s32)DREGs16((Opcode /*>> 0*/) & 7); if (src == 0) { execute_exception(M68K_ZERO_DIVIDE_EX); -#ifdef USE_CYCLONE_TIMING_DIV -goto end; +#ifdef OPCODES_M68000 + RET(4 + 0) // Cycles for fetch of operants +#else + RET(2 + 0) #endif - RET(10) } dst = DREGu32((Opcode >> 9) & 7); if ((dst == 0x80000000) && (src == (u32)-1)) @@ -27614,37 +32222,40 @@ goto end; flag_NotZ = flag_N = 0; flag_V = flag_C = 0; res = 0; - DREGu32((Opcode >> 9) & 7) = res; -#ifdef USE_CYCLONE_TIMING_DIV -goto end; + DREGu32((Opcode >> 9) & 7) = res; +#ifdef OPCODES_M68000 + RET(getDivs68kCycles(dst, src) + 0) +#else + RET(56 + 0) #endif - RET(50) } { s32 q, r; - + q = (s32)dst / (s32)src; r = (s32)dst % (s32)src; - + if ((q > 0x7FFF) || (q < -0x8000)) { flag_V = M68K_SR_V; -#ifdef USE_CYCLONE_TIMING_DIV -goto end; +#ifdef OPCODES_M68000 + RET(18 + 0) +#else + RET(18 + 0) #endif - RET(80) } q &= 0x0000FFFF; flag_NotZ = q; flag_N = q >> 8; flag_V = flag_C = 0; res = q | (r << 16); - DREGu32((Opcode >> 9) & 7) = res; + DREGu32((Opcode >> 9) & 7) = res; } -#ifdef USE_CYCLONE_TIMING_DIV -end: io_cycle_counter -= 50; +#ifdef OPCODES_M68000 + RET(getDivs68kCycles(dst, src) + 0) +#else + RET(56 + 0) #endif -RET(108) } // DIVS @@ -27652,17 +32263,17 @@ OPCODE(0x81D0) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READSX_WORD_F(adr, src) if (src == 0) { execute_exception(M68K_ZERO_DIVIDE_EX); -#ifdef USE_CYCLONE_TIMING_DIV -goto end; +#ifdef OPCODES_M68000 + RET(4 + 4) // Cycles for fetch of operants +#else + RET(2 + 4) #endif - RET(14) } dst = DREGu32((Opcode >> 9) & 7); if ((dst == 0x80000000) && (src == (u32)-1)) @@ -27670,37 +32281,40 @@ goto end; flag_NotZ = flag_N = 0; flag_V = flag_C = 0; res = 0; - DREGu32((Opcode >> 9) & 7) = res; -#ifdef USE_CYCLONE_TIMING_DIV -goto end; + DREGu32((Opcode >> 9) & 7) = res; +#ifdef OPCODES_M68000 + RET(getDivs68kCycles(dst, src) + 4) +#else + RET(56 + 4) #endif - RET(54) } { s32 q, r; - + q = (s32)dst / (s32)src; r = (s32)dst % (s32)src; - + if ((q > 0x7FFF) || (q < -0x8000)) { flag_V = M68K_SR_V; -#ifdef USE_CYCLONE_TIMING_DIV -goto end; +#ifdef OPCODES_M68000 + RET(18 + 4) +#else + RET(18 + 4) #endif - RET(84) } q &= 0x0000FFFF; flag_NotZ = q; flag_N = q >> 8; flag_V = flag_C = 0; res = q | (r << 16); - DREGu32((Opcode >> 9) & 7) = res; + DREGu32((Opcode >> 9) & 7) = res; } -#ifdef USE_CYCLONE_TIMING_DIV -end: io_cycle_counter -= 50; +#ifdef OPCODES_M68000 + RET(getDivs68kCycles(dst, src) + 4) +#else + RET(56 + 4) #endif -RET(112) } // DIVS @@ -27708,18 +32322,18 @@ OPCODE(0x81D8) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READSX_WORD_F(adr, src) if (src == 0) { execute_exception(M68K_ZERO_DIVIDE_EX); -#ifdef USE_CYCLONE_TIMING_DIV -goto end; +#ifdef OPCODES_M68000 + RET(4 + 4) // Cycles for fetch of operants +#else + RET(2 + 4) #endif - RET(14) } dst = DREGu32((Opcode >> 9) & 7); if ((dst == 0x80000000) && (src == (u32)-1)) @@ -27727,37 +32341,40 @@ goto end; flag_NotZ = flag_N = 0; flag_V = flag_C = 0; res = 0; - DREGu32((Opcode >> 9) & 7) = res; -#ifdef USE_CYCLONE_TIMING_DIV -goto end; + DREGu32((Opcode >> 9) & 7) = res; +#ifdef OPCODES_M68000 + RET(getDivs68kCycles(dst, src) + 4) +#else + RET(56 + 4) #endif - RET(54) } { s32 q, r; - + q = (s32)dst / (s32)src; r = (s32)dst % (s32)src; - + if ((q > 0x7FFF) || (q < -0x8000)) { flag_V = M68K_SR_V; -#ifdef USE_CYCLONE_TIMING_DIV -goto end; +#ifdef OPCODES_M68000 + RET(18 + 4) +#else + RET(18 + 4) #endif - RET(84) } q &= 0x0000FFFF; flag_NotZ = q; flag_N = q >> 8; flag_V = flag_C = 0; res = q | (r << 16); - DREGu32((Opcode >> 9) & 7) = res; + DREGu32((Opcode >> 9) & 7) = res; } -#ifdef USE_CYCLONE_TIMING_DIV -end: io_cycle_counter -= 50; +#ifdef OPCODES_M68000 + RET(getDivs68kCycles(dst, src) + 4) +#else + RET(56 + 4) #endif -RET(112) } // DIVS @@ -27765,18 +32382,18 @@ OPCODE(0x81E0) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READSX_WORD_F(adr, src) if (src == 0) { execute_exception(M68K_ZERO_DIVIDE_EX); -#ifdef USE_CYCLONE_TIMING_DIV -goto end; +#ifdef OPCODES_M68000 + RET(4 + 6) // Cycles for fetch of operants +#else + RET(2 + 5) #endif - RET(16) } dst = DREGu32((Opcode >> 9) & 7); if ((dst == 0x80000000) && (src == (u32)-1)) @@ -27784,37 +32401,40 @@ goto end; flag_NotZ = flag_N = 0; flag_V = flag_C = 0; res = 0; - DREGu32((Opcode >> 9) & 7) = res; -#ifdef USE_CYCLONE_TIMING_DIV -goto end; + DREGu32((Opcode >> 9) & 7) = res; +#ifdef OPCODES_M68000 + RET(getDivs68kCycles(dst, src) + 6) +#else + RET(56 + 5) #endif - RET(56) } { s32 q, r; - + q = (s32)dst / (s32)src; r = (s32)dst % (s32)src; - + if ((q > 0x7FFF) || (q < -0x8000)) { flag_V = M68K_SR_V; -#ifdef USE_CYCLONE_TIMING_DIV -goto end; +#ifdef OPCODES_M68000 + RET(18 + 6) +#else + RET(18 + 5) #endif - RET(86) } q &= 0x0000FFFF; flag_NotZ = q; flag_N = q >> 8; flag_V = flag_C = 0; res = q | (r << 16); - DREGu32((Opcode >> 9) & 7) = res; + DREGu32((Opcode >> 9) & 7) = res; } -#ifdef USE_CYCLONE_TIMING_DIV -end: io_cycle_counter -= 50; +#ifdef OPCODES_M68000 + RET(getDivs68kCycles(dst, src) + 6) +#else + RET(56 + 5) #endif -RET(114) } // DIVS @@ -27822,18 +32442,18 @@ OPCODE(0x81E8) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READSX_WORD_F(adr, src) if (src == 0) { execute_exception(M68K_ZERO_DIVIDE_EX); -#ifdef USE_CYCLONE_TIMING_DIV -goto end; +#ifdef OPCODES_M68000 + RET(4 + 8) // Cycles for fetch of operants +#else + RET(2 + 5) #endif - RET(18) } dst = DREGu32((Opcode >> 9) & 7); if ((dst == 0x80000000) && (src == (u32)-1)) @@ -27841,37 +32461,40 @@ goto end; flag_NotZ = flag_N = 0; flag_V = flag_C = 0; res = 0; - DREGu32((Opcode >> 9) & 7) = res; -#ifdef USE_CYCLONE_TIMING_DIV -goto end; + DREGu32((Opcode >> 9) & 7) = res; +#ifdef OPCODES_M68000 + RET(getDivs68kCycles(dst, src) + 8) +#else + RET(56 + 5) #endif - RET(58) } { s32 q, r; - + q = (s32)dst / (s32)src; r = (s32)dst % (s32)src; - + if ((q > 0x7FFF) || (q < -0x8000)) { flag_V = M68K_SR_V; -#ifdef USE_CYCLONE_TIMING_DIV -goto end; +#ifdef OPCODES_M68000 + RET(18 + 8) +#else + RET(18 + 5) #endif - RET(88) } q &= 0x0000FFFF; flag_NotZ = q; flag_N = q >> 8; flag_V = flag_C = 0; res = q | (r << 16); - DREGu32((Opcode >> 9) & 7) = res; + DREGu32((Opcode >> 9) & 7) = res; } -#ifdef USE_CYCLONE_TIMING_DIV -end: io_cycle_counter -= 50; +#ifdef OPCODES_M68000 + RET(getDivs68kCycles(dst, src) + 8) +#else + RET(56 + 5) #endif -RET(116) } // DIVS @@ -27879,18 +32502,18 @@ OPCODE(0x81F0) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READSX_WORD_F(adr, src) if (src == 0) { execute_exception(M68K_ZERO_DIVIDE_EX); -#ifdef USE_CYCLONE_TIMING_DIV -goto end; +#ifdef OPCODES_M68000 + RET(4 + 10) // Cycles for fetch of operants +#else + RET(2 + 7) #endif - RET(20) } dst = DREGu32((Opcode >> 9) & 7); if ((dst == 0x80000000) && (src == (u32)-1)) @@ -27898,37 +32521,40 @@ goto end; flag_NotZ = flag_N = 0; flag_V = flag_C = 0; res = 0; - DREGu32((Opcode >> 9) & 7) = res; -#ifdef USE_CYCLONE_TIMING_DIV -goto end; + DREGu32((Opcode >> 9) & 7) = res; +#ifdef OPCODES_M68000 + RET(getDivs68kCycles(dst, src) + 10) +#else + RET(56 + 7) #endif - RET(60) } { s32 q, r; - + q = (s32)dst / (s32)src; r = (s32)dst % (s32)src; - + if ((q > 0x7FFF) || (q < -0x8000)) { flag_V = M68K_SR_V; -#ifdef USE_CYCLONE_TIMING_DIV -goto end; +#ifdef OPCODES_M68000 + RET(18 + 10) +#else + RET(18 + 7) #endif - RET(90) } q &= 0x0000FFFF; flag_NotZ = q; flag_N = q >> 8; flag_V = flag_C = 0; res = q | (r << 16); - DREGu32((Opcode >> 9) & 7) = res; + DREGu32((Opcode >> 9) & 7) = res; } -#ifdef USE_CYCLONE_TIMING_DIV -end: io_cycle_counter -= 50; +#ifdef OPCODES_M68000 + RET(getDivs68kCycles(dst, src) + 10) +#else + RET(56 + 7) #endif -RET(118) } // DIVS @@ -27936,17 +32562,17 @@ OPCODE(0x81F8) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READSX_WORD_F(adr, src) if (src == 0) { execute_exception(M68K_ZERO_DIVIDE_EX); -#ifdef USE_CYCLONE_TIMING_DIV -goto end; +#ifdef OPCODES_M68000 + RET(4 + 8) // Cycles for fetch of operants +#else + RET(2 + 4) #endif - RET(18) } dst = DREGu32((Opcode >> 9) & 7); if ((dst == 0x80000000) && (src == (u32)-1)) @@ -27954,37 +32580,40 @@ goto end; flag_NotZ = flag_N = 0; flag_V = flag_C = 0; res = 0; - DREGu32((Opcode >> 9) & 7) = res; -#ifdef USE_CYCLONE_TIMING_DIV -goto end; + DREGu32((Opcode >> 9) & 7) = res; +#ifdef OPCODES_M68000 + RET(getDivs68kCycles(dst, src) + 8) +#else + RET(56 + 4) #endif - RET(58) } { s32 q, r; - + q = (s32)dst / (s32)src; r = (s32)dst % (s32)src; - + if ((q > 0x7FFF) || (q < -0x8000)) { flag_V = M68K_SR_V; -#ifdef USE_CYCLONE_TIMING_DIV -goto end; +#ifdef OPCODES_M68000 + RET(18 + 8) +#else + RET(18 + 4) #endif - RET(88) } q &= 0x0000FFFF; flag_NotZ = q; flag_N = q >> 8; flag_V = flag_C = 0; res = q | (r << 16); - DREGu32((Opcode >> 9) & 7) = res; + DREGu32((Opcode >> 9) & 7) = res; } -#ifdef USE_CYCLONE_TIMING_DIV -end: io_cycle_counter -= 50; +#ifdef OPCODES_M68000 + RET(getDivs68kCycles(dst, src) + 8) +#else + RET(56 + 4) #endif -RET(116) } // DIVS @@ -27992,17 +32621,17 @@ OPCODE(0x81F9) { u32 adr, res; u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READSX_WORD_F(adr, src) if (src == 0) { execute_exception(M68K_ZERO_DIVIDE_EX); -#ifdef USE_CYCLONE_TIMING_DIV -goto end; +#ifdef OPCODES_M68000 + RET(4 + 12) // Cycles for fetch of operants +#else + RET(2 + 4) #endif - RET(22) } dst = DREGu32((Opcode >> 9) & 7); if ((dst == 0x80000000) && (src == (u32)-1)) @@ -28010,37 +32639,40 @@ goto end; flag_NotZ = flag_N = 0; flag_V = flag_C = 0; res = 0; - DREGu32((Opcode >> 9) & 7) = res; -#ifdef USE_CYCLONE_TIMING_DIV -goto end; + DREGu32((Opcode >> 9) & 7) = res; +#ifdef OPCODES_M68000 + RET(getDivs68kCycles(dst, src) + 12) +#else + RET(56 + 4) #endif - RET(62) } { s32 q, r; - + q = (s32)dst / (s32)src; r = (s32)dst % (s32)src; - + if ((q > 0x7FFF) || (q < -0x8000)) { flag_V = M68K_SR_V; -#ifdef USE_CYCLONE_TIMING_DIV -goto end; +#ifdef OPCODES_M68000 + RET(18 + 12) +#else + RET(18 + 4) #endif - RET(92) } q &= 0x0000FFFF; flag_NotZ = q; flag_N = q >> 8; flag_V = flag_C = 0; res = q | (r << 16); - DREGu32((Opcode >> 9) & 7) = res; + DREGu32((Opcode >> 9) & 7) = res; } -#ifdef USE_CYCLONE_TIMING_DIV -end: io_cycle_counter -= 50; +#ifdef OPCODES_M68000 + RET(getDivs68kCycles(dst, src) + 12) +#else + RET(56 + 4) #endif -RET(120) } // DIVS @@ -28048,18 +32680,18 @@ OPCODE(0x81FA) { u32 adr, res; u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READSX_WORD_F(adr, src) if (src == 0) { execute_exception(M68K_ZERO_DIVIDE_EX); -#ifdef USE_CYCLONE_TIMING_DIV -goto end; +#ifdef OPCODES_M68000 + RET(4 + 8) // Cycles for fetch of operants +#else + RET(2 + 5) #endif - RET(18) } dst = DREGu32((Opcode >> 9) & 7); if ((dst == 0x80000000) && (src == (u32)-1)) @@ -28067,37 +32699,40 @@ goto end; flag_NotZ = flag_N = 0; flag_V = flag_C = 0; res = 0; - DREGu32((Opcode >> 9) & 7) = res; -#ifdef USE_CYCLONE_TIMING_DIV -goto end; + DREGu32((Opcode >> 9) & 7) = res; +#ifdef OPCODES_M68000 + RET(getDivs68kCycles(dst, src) + 8) +#else + RET(56 + 5) #endif - RET(58) } { s32 q, r; - + q = (s32)dst / (s32)src; r = (s32)dst % (s32)src; - + if ((q > 0x7FFF) || (q < -0x8000)) { flag_V = M68K_SR_V; -#ifdef USE_CYCLONE_TIMING_DIV -goto end; +#ifdef OPCODES_M68000 + RET(18 + 8) +#else + RET(18 + 5) #endif - RET(88) } q &= 0x0000FFFF; flag_NotZ = q; flag_N = q >> 8; flag_V = flag_C = 0; res = q | (r << 16); - DREGu32((Opcode >> 9) & 7) = res; + DREGu32((Opcode >> 9) & 7) = res; } -#ifdef USE_CYCLONE_TIMING_DIV -end: io_cycle_counter -= 50; +#ifdef OPCODES_M68000 + RET(getDivs68kCycles(dst, src) + 8) +#else + RET(56 + 5) #endif -RET(116) } // DIVS @@ -28105,18 +32740,18 @@ OPCODE(0x81FB) { u32 adr, res; u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READSX_WORD_F(adr, src) if (src == 0) { execute_exception(M68K_ZERO_DIVIDE_EX); -#ifdef USE_CYCLONE_TIMING_DIV -goto end; +#ifdef OPCODES_M68000 + RET(4 + 10) // Cycles for fetch of operants +#else + RET(2 + 7) #endif - RET(20) } dst = DREGu32((Opcode >> 9) & 7); if ((dst == 0x80000000) && (src == (u32)-1)) @@ -28124,53 +32759,57 @@ goto end; flag_NotZ = flag_N = 0; flag_V = flag_C = 0; res = 0; - DREGu32((Opcode >> 9) & 7) = res; -#ifdef USE_CYCLONE_TIMING_DIV -goto end; + DREGu32((Opcode >> 9) & 7) = res; +#ifdef OPCODES_M68000 + RET(getDivs68kCycles(dst, src) + 10) +#else + RET(56 + 7) #endif - RET(60) } { s32 q, r; - + q = (s32)dst / (s32)src; r = (s32)dst % (s32)src; - + if ((q > 0x7FFF) || (q < -0x8000)) { flag_V = M68K_SR_V; -#ifdef USE_CYCLONE_TIMING_DIV -goto end; +#ifdef OPCODES_M68000 + RET(18 + 10) +#else + RET(18 + 7) #endif - RET(90) } q &= 0x0000FFFF; flag_NotZ = q; flag_N = q >> 8; flag_V = flag_C = 0; res = q | (r << 16); - DREGu32((Opcode >> 9) & 7) = res; + DREGu32((Opcode >> 9) & 7) = res; } -#ifdef USE_CYCLONE_TIMING_DIV -end: io_cycle_counter -= 50; +#ifdef OPCODES_M68000 + RET(getDivs68kCycles(dst, src) + 10) +#else + RET(56 + 7) #endif -RET(118) } // DIVS OPCODE(0x81FC) { - u32 adr, res; + u32 res; u32 src, dst; - + FETCH_SWORD(src); if (src == 0) { execute_exception(M68K_ZERO_DIVIDE_EX); -#ifdef USE_CYCLONE_TIMING_DIV -goto end; +#ifdef OPCODES_M68000 + RET(4 + 4) // Cycles for fetch of operants +#else + RET(2 + 2) #endif - RET(14) } dst = DREGu32((Opcode >> 9) & 7); if ((dst == 0x80000000) && (src == (u32)-1)) @@ -28178,37 +32817,40 @@ goto end; flag_NotZ = flag_N = 0; flag_V = flag_C = 0; res = 0; - DREGu32((Opcode >> 9) & 7) = res; -#ifdef USE_CYCLONE_TIMING_DIV -goto end; + DREGu32((Opcode >> 9) & 7) = res; +#ifdef OPCODES_M68000 + RET(getDivs68kCycles(dst, src) + 4) +#else + RET(56 + 2) #endif - RET(54) } { s32 q, r; - + q = (s32)dst / (s32)src; r = (s32)dst % (s32)src; - + if ((q > 0x7FFF) || (q < -0x8000)) { flag_V = M68K_SR_V; -#ifdef USE_CYCLONE_TIMING_DIV -goto end; +#ifdef OPCODES_M68000 + RET(18 + 4) +#else + RET(18 + 2) #endif - RET(84) } q &= 0x0000FFFF; flag_NotZ = q; flag_N = q >> 8; flag_V = flag_C = 0; res = q | (r << 16); - DREGu32((Opcode >> 9) & 7) = res; + DREGu32((Opcode >> 9) & 7) = res; } -#ifdef USE_CYCLONE_TIMING_DIV -end: io_cycle_counter -= 50; +#ifdef OPCODES_M68000 + RET(getDivs68kCycles(dst, src) + 4) +#else + RET(56 + 2) #endif -RET(112) } // DIVS @@ -28216,18 +32858,18 @@ OPCODE(0x81DF) { u32 adr, res; u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READSX_WORD_F(adr, src) if (src == 0) { execute_exception(M68K_ZERO_DIVIDE_EX); -#ifdef USE_CYCLONE_TIMING_DIV -goto end; +#ifdef OPCODES_M68000 + RET(4 + 4) // Cycles for fetch of operants +#else + RET(2 + 4) #endif - RET(14) } dst = DREGu32((Opcode >> 9) & 7); if ((dst == 0x80000000) && (src == (u32)-1)) @@ -28235,37 +32877,40 @@ goto end; flag_NotZ = flag_N = 0; flag_V = flag_C = 0; res = 0; - DREGu32((Opcode >> 9) & 7) = res; -#ifdef USE_CYCLONE_TIMING_DIV -goto end; + DREGu32((Opcode >> 9) & 7) = res; +#ifdef OPCODES_M68000 + RET(getDivs68kCycles(dst, src) + 4) +#else + RET(56 + 4) #endif - RET(54) } { s32 q, r; - + q = (s32)dst / (s32)src; r = (s32)dst % (s32)src; - + if ((q > 0x7FFF) || (q < -0x8000)) { flag_V = M68K_SR_V; -#ifdef USE_CYCLONE_TIMING_DIV -goto end; +#ifdef OPCODES_M68000 + RET(18 + 4) +#else + RET(18 + 4) #endif - RET(84) } q &= 0x0000FFFF; flag_NotZ = q; flag_N = q >> 8; flag_V = flag_C = 0; res = q | (r << 16); - DREGu32((Opcode >> 9) & 7) = res; + DREGu32((Opcode >> 9) & 7) = res; } -#ifdef USE_CYCLONE_TIMING_DIV -end: io_cycle_counter -= 50; +#ifdef OPCODES_M68000 + RET(getDivs68kCycles(dst, src) + 4) +#else + RET(56 + 4) #endif -RET(112) } // DIVS @@ -28273,18 +32918,18 @@ OPCODE(0x81E7) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READSX_WORD_F(adr, src) if (src == 0) { execute_exception(M68K_ZERO_DIVIDE_EX); -#ifdef USE_CYCLONE_TIMING_DIV -goto end; +#ifdef OPCODES_M68000 + RET(4 + 6) // Cycles for fetch of operants +#else + RET(2 + 5) #endif - RET(16) } dst = DREGu32((Opcode >> 9) & 7); if ((dst == 0x80000000) && (src == (u32)-1)) @@ -28292,74 +32937,74 @@ goto end; flag_NotZ = flag_N = 0; flag_V = flag_C = 0; res = 0; - DREGu32((Opcode >> 9) & 7) = res; -#ifdef USE_CYCLONE_TIMING_DIV -goto end; + DREGu32((Opcode >> 9) & 7) = res; +#ifdef OPCODES_M68000 + RET(getDivs68kCycles(dst, src) + 6) +#else + RET(56 + 5) #endif - RET(56) } { s32 q, r; - + q = (s32)dst / (s32)src; r = (s32)dst % (s32)src; - + if ((q > 0x7FFF) || (q < -0x8000)) { flag_V = M68K_SR_V; -#ifdef USE_CYCLONE_TIMING_DIV -goto end; +#ifdef OPCODES_M68000 + RET(18 + 6) +#else + RET(18 + 5) #endif - RET(86) } q &= 0x0000FFFF; flag_NotZ = q; flag_N = q >> 8; flag_V = flag_C = 0; res = q | (r << 16); - DREGu32((Opcode >> 9) & 7) = res; + DREGu32((Opcode >> 9) & 7) = res; } -#ifdef USE_CYCLONE_TIMING_DIV -end: io_cycle_counter -= 50; +#ifdef OPCODES_M68000 + RET(getDivs68kCycles(dst, src) + 6) +#else + RET(56 + 5) #endif -RET(114) } // SUBaD OPCODE(0x9000) { - u32 adr, res; + u32 res; u32 src, dst; - - src = DREGu8((Opcode >> 0) & 7); + + src = DREGu8((Opcode /*>> 0*/) & 7); dst = DREGu8((Opcode >> 9) & 7); res = dst - src; flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; DREGu8((Opcode >> 9) & 7) = res; -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // SUBaD OPCODE(0x9008) { - u32 adr, res; - u32 src, dst; - // can't read byte from Ax registers ! m68kcontext.execinfo |= M68K_FAULTED; - io_cycle_counter = 0; -/* - goto famec_Exec_End; - dst = DREGu8((Opcode >> 9) & 7); - res = dst - src; - flag_N = flag_X = flag_C = res; - flag_V = (src ^ dst) & (res ^ dst); - flag_NotZ = res & 0xFF; - DREGu8((Opcode >> 9) & 7) = res; -*/ -RET(4) +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter = 4; + RET(4) +#else + m68kcontext.io_cycle_counter = 2; + RET(2) +#endif } // SUBaD @@ -28367,9 +33012,8 @@ OPCODE(0x9010) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst - src; @@ -28377,8 +33021,11 @@ OPCODE(0x9010) flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // SUBaD @@ -28386,10 +33033,9 @@ OPCODE(0x9018) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst - src; @@ -28397,8 +33043,11 @@ OPCODE(0x9018) flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // SUBaD @@ -28406,10 +33055,9 @@ OPCODE(0x9020) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst - src; @@ -28417,8 +33065,11 @@ OPCODE(0x9020) flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(7) +#endif } // SUBaD @@ -28426,10 +33077,9 @@ OPCODE(0x9028) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst - src; @@ -28437,8 +33087,11 @@ OPCODE(0x9028) flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // SUBaD @@ -28446,10 +33099,9 @@ OPCODE(0x9030) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst - src; @@ -28457,8 +33109,11 @@ OPCODE(0x9030) flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // SUBaD @@ -28466,9 +33121,8 @@ OPCODE(0x9038) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst - src; @@ -28476,8 +33130,11 @@ OPCODE(0x9038) flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // SUBaD @@ -28485,9 +33142,8 @@ OPCODE(0x9039) { u32 adr, res; u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst - src; @@ -28495,8 +33151,11 @@ OPCODE(0x9039) flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // SUBaD @@ -28504,10 +33163,9 @@ OPCODE(0x903A) { u32 adr, res; u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst - src; @@ -28515,8 +33173,11 @@ OPCODE(0x903A) flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // SUBaD @@ -28524,10 +33185,9 @@ OPCODE(0x903B) { u32 adr, res; u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst - src; @@ -28535,16 +33195,19 @@ OPCODE(0x903B) flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // SUBaD OPCODE(0x903C) { - u32 adr, res; + u32 res; u32 src, dst; - + FETCH_BYTE(src); dst = DREGu8((Opcode >> 9) & 7); res = dst - src; @@ -28552,7 +33215,11 @@ OPCODE(0x903C) flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; DREGu8((Opcode >> 9) & 7) = res; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // SUBaD @@ -28560,10 +33227,9 @@ OPCODE(0x901F) { u32 adr, res; u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst - src; @@ -28571,8 +33237,11 @@ OPCODE(0x901F) flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // SUBaD @@ -28580,10 +33249,9 @@ OPCODE(0x9027) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst - src; @@ -28591,40 +33259,51 @@ OPCODE(0x9027) flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(7) +#endif } // SUBaD OPCODE(0x9040) { - u32 adr, res; + u32 res; u32 src, dst; - - src = DREGu16((Opcode >> 0) & 7); + + src = DREGu16((Opcode /*>> 0*/) & 7); dst = DREGu16((Opcode >> 9) & 7); res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; DREGu16((Opcode >> 9) & 7) = res; -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // SUBaD OPCODE(0x9048) { - u32 adr, res; + u32 res; u32 src, dst; - - src = AREGu16((Opcode >> 0) & 7); + + src = AREGu16((Opcode /*>> 0*/) & 7); dst = DREGu16((Opcode >> 9) & 7); res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; DREGu16((Opcode >> 9) & 7) = res; -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // SUBaD @@ -28632,9 +33311,8 @@ OPCODE(0x9050) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst - src; @@ -28642,8 +33320,11 @@ OPCODE(0x9050) flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // SUBaD @@ -28651,10 +33332,9 @@ OPCODE(0x9058) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst - src; @@ -28662,8 +33342,11 @@ OPCODE(0x9058) flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // SUBaD @@ -28671,10 +33354,9 @@ OPCODE(0x9060) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst - src; @@ -28682,8 +33364,11 @@ OPCODE(0x9060) flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(7) +#endif } // SUBaD @@ -28691,10 +33376,9 @@ OPCODE(0x9068) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst - src; @@ -28702,8 +33386,11 @@ OPCODE(0x9068) flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // SUBaD @@ -28711,10 +33398,9 @@ OPCODE(0x9070) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst - src; @@ -28722,8 +33408,11 @@ OPCODE(0x9070) flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // SUBaD @@ -28731,9 +33420,8 @@ OPCODE(0x9078) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst - src; @@ -28741,8 +33429,11 @@ OPCODE(0x9078) flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // SUBaD @@ -28750,9 +33441,8 @@ OPCODE(0x9079) { u32 adr, res; u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst - src; @@ -28760,8 +33450,11 @@ OPCODE(0x9079) flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // SUBaD @@ -28769,10 +33462,9 @@ OPCODE(0x907A) { u32 adr, res; u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst - src; @@ -28780,8 +33472,11 @@ OPCODE(0x907A) flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // SUBaD @@ -28789,10 +33484,9 @@ OPCODE(0x907B) { u32 adr, res; u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst - src; @@ -28800,16 +33494,19 @@ OPCODE(0x907B) flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // SUBaD OPCODE(0x907C) { - u32 adr, res; + u32 res; u32 src, dst; - + FETCH_WORD(src); dst = DREGu16((Opcode >> 9) & 7); res = dst - src; @@ -28817,7 +33514,11 @@ OPCODE(0x907C) flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; DREGu16((Opcode >> 9) & 7) = res; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // SUBaD @@ -28825,10 +33526,9 @@ OPCODE(0x905F) { u32 adr, res; u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst - src; @@ -28836,8 +33536,11 @@ OPCODE(0x905F) flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // SUBaD @@ -28845,10 +33548,9 @@ OPCODE(0x9067) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst - src; @@ -28856,17 +33558,20 @@ OPCODE(0x9067) flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(7) +#endif } // SUBaD OPCODE(0x9080) { - u32 adr, res; + u32 res; u32 src, dst; - - src = DREGu32((Opcode >> 0) & 7); + + src = DREGu32((Opcode /*>> 0*/) & 7); dst = DREGu32((Opcode >> 9) & 7); res = dst - src; flag_NotZ = res; @@ -28874,16 +33579,20 @@ OPCODE(0x9080) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(2) +#endif } // SUBaD OPCODE(0x9088) { - u32 adr, res; + u32 res; u32 src, dst; - - src = AREGu32((Opcode >> 0) & 7); + + src = AREGu32((Opcode /*>> 0*/) & 7); dst = DREGu32((Opcode >> 9) & 7); res = dst - src; flag_NotZ = res; @@ -28891,7 +33600,11 @@ OPCODE(0x9088) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(2) +#endif } // SUBaD @@ -28899,9 +33612,8 @@ OPCODE(0x9090) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst - src; @@ -28910,8 +33622,11 @@ OPCODE(0x9090) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(6) +#endif } // SUBaD @@ -28919,10 +33634,9 @@ OPCODE(0x9098) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst - src; @@ -28931,8 +33645,11 @@ OPCODE(0x9098) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(6) +#endif } // SUBaD @@ -28940,10 +33657,9 @@ OPCODE(0x90A0) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst - src; @@ -28952,8 +33668,11 @@ OPCODE(0x90A0) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // SUBaD @@ -28961,10 +33680,9 @@ OPCODE(0x90A8) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst - src; @@ -28973,8 +33691,11 @@ OPCODE(0x90A8) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(7) +#endif } // SUBaD @@ -28982,10 +33703,9 @@ OPCODE(0x90B0) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst - src; @@ -28994,8 +33714,11 @@ OPCODE(0x90B0) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // SUBaD @@ -29003,9 +33726,8 @@ OPCODE(0x90B8) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst - src; @@ -29014,8 +33736,11 @@ OPCODE(0x90B8) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(6) +#endif } // SUBaD @@ -29023,9 +33748,8 @@ OPCODE(0x90B9) { u32 adr, res; u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst - src; @@ -29034,8 +33758,11 @@ OPCODE(0x90B9) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(6) +#endif } // SUBaD @@ -29043,10 +33770,9 @@ OPCODE(0x90BA) { u32 adr, res; u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst - src; @@ -29055,8 +33781,11 @@ OPCODE(0x90BA) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(7) +#endif } // SUBaD @@ -29064,10 +33793,9 @@ OPCODE(0x90BB) { u32 adr, res; u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst - src; @@ -29076,16 +33804,19 @@ OPCODE(0x90BB) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // SUBaD OPCODE(0x90BC) { - u32 adr, res; + u32 res; u32 src, dst; - + FETCH_LONG(src); dst = DREGu32((Opcode >> 9) & 7); res = dst - src; @@ -29094,7 +33825,11 @@ OPCODE(0x90BC) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // SUBaD @@ -29102,10 +33837,9 @@ OPCODE(0x909F) { u32 adr, res; u32 src, dst; - + adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst - src; @@ -29114,8 +33848,11 @@ OPCODE(0x909F) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(6) +#endif } // SUBaD @@ -29123,10 +33860,9 @@ OPCODE(0x90A7) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst - src; @@ -29135,8 +33871,11 @@ OPCODE(0x90A7) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // SUBDa @@ -29144,18 +33883,20 @@ OPCODE(0x9110) { u32 adr, res; u32 src, dst; - + src = DREGu8((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // SUBDa @@ -29163,19 +33904,21 @@ OPCODE(0x9118) { u32 adr, res; u32 src, dst; - + src = DREGu8((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // SUBDa @@ -29183,19 +33926,21 @@ OPCODE(0x9120) { u32 adr, res; u32 src, dst; - + src = DREGu8((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // SUBDa @@ -29203,19 +33948,21 @@ OPCODE(0x9128) { u32 adr, res; u32 src, dst; - + src = DREGu8((Opcode >> 9) & 7); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(9) +#endif } // SUBDa @@ -29223,19 +33970,21 @@ OPCODE(0x9130) { u32 adr, res; u32 src, dst; - + src = DREGu8((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(11) +#endif } // SUBDa @@ -29243,18 +33992,20 @@ OPCODE(0x9138) { u32 adr, res; u32 src, dst; - + src = DREGu8((Opcode >> 9) & 7); FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // SUBDa @@ -29262,18 +34013,20 @@ OPCODE(0x9139) { u32 adr, res; u32 src, dst; - + src = DREGu8((Opcode >> 9) & 7); FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // SUBDa @@ -29281,19 +34034,21 @@ OPCODE(0x911F) { u32 adr, res; u32 src, dst; - + src = DREGu8((Opcode >> 9) & 7); adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // SUBDa @@ -29301,19 +34056,21 @@ OPCODE(0x9127) { u32 adr, res; u32 src, dst; - + src = DREGu8((Opcode >> 9) & 7); adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, dst) res = dst - src; flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // SUBDa @@ -29321,18 +34078,20 @@ OPCODE(0x9150) { u32 adr, res; u32 src, dst; - + src = DREGu16((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // SUBDa @@ -29340,19 +34099,21 @@ OPCODE(0x9158) { u32 adr, res; u32 src, dst; - + src = DREGu16((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // SUBDa @@ -29360,19 +34121,21 @@ OPCODE(0x9160) { u32 adr, res; u32 src, dst; - + src = DREGu16((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // SUBDa @@ -29380,19 +34143,21 @@ OPCODE(0x9168) { u32 adr, res; u32 src, dst; - + src = DREGu16((Opcode >> 9) & 7); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(9) +#endif } // SUBDa @@ -29400,19 +34165,21 @@ OPCODE(0x9170) { u32 adr, res; u32 src, dst; - + src = DREGu16((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(11) +#endif } // SUBDa @@ -29420,18 +34187,20 @@ OPCODE(0x9178) { u32 adr, res; u32 src, dst; - + src = DREGu16((Opcode >> 9) & 7); FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // SUBDa @@ -29439,18 +34208,20 @@ OPCODE(0x9179) { u32 adr, res; u32 src, dst; - + src = DREGu16((Opcode >> 9) & 7); FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // SUBDa @@ -29458,19 +34229,21 @@ OPCODE(0x915F) { u32 adr, res; u32 src, dst; - + src = DREGu16((Opcode >> 9) & 7); adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // SUBDa @@ -29478,19 +34251,21 @@ OPCODE(0x9167) { u32 adr, res; u32 src, dst; - + src = DREGu16((Opcode >> 9) & 7); adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, dst) res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // SUBDa @@ -29498,10 +34273,9 @@ OPCODE(0x9190) { u32 adr, res; u32 src, dst; - + src = DREGu32((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; @@ -29509,8 +34283,11 @@ OPCODE(0x9190) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // SUBDa @@ -29518,11 +34295,10 @@ OPCODE(0x9198) { u32 adr, res; u32 src, dst; - + src = DREGu32((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; @@ -29530,8 +34306,11 @@ OPCODE(0x9198) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // SUBDa @@ -29539,11 +34318,10 @@ OPCODE(0x91A0) { u32 adr, res; u32 src, dst; - + src = DREGu32((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; @@ -29551,8 +34329,11 @@ OPCODE(0x91A0) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(9) +#endif } // SUBDa @@ -29560,11 +34341,10 @@ OPCODE(0x91A8) { u32 adr, res; u32 src, dst; - + src = DREGu32((Opcode >> 9) & 7); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; @@ -29572,8 +34352,11 @@ OPCODE(0x91A8) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(9) +#endif } // SUBDa @@ -29581,11 +34364,10 @@ OPCODE(0x91B0) { u32 adr, res; u32 src, dst; - + src = DREGu32((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; @@ -29593,8 +34375,11 @@ OPCODE(0x91B0) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(11) +#endif } // SUBDa @@ -29602,10 +34387,9 @@ OPCODE(0x91B8) { u32 adr, res; u32 src, dst; - + src = DREGu32((Opcode >> 9) & 7); FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; @@ -29613,8 +34397,11 @@ OPCODE(0x91B8) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(8) +#endif } // SUBDa @@ -29622,10 +34409,9 @@ OPCODE(0x91B9) { u32 adr, res; u32 src, dst; - + src = DREGu32((Opcode >> 9) & 7); FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; @@ -29633,8 +34419,11 @@ OPCODE(0x91B9) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(8) +#endif } // SUBDa @@ -29642,11 +34431,10 @@ OPCODE(0x919F) { u32 adr, res; u32 src, dst; - + src = DREGu32((Opcode >> 9) & 7); adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; @@ -29654,8 +34442,11 @@ OPCODE(0x919F) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // SUBDa @@ -29663,11 +34454,10 @@ OPCODE(0x91A7) { u32 adr, res; u32 src, dst; - + src = DREGu32((Opcode >> 9) & 7); adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, dst) res = dst - src; flag_NotZ = res; @@ -29675,49 +34465,60 @@ OPCODE(0x91A7) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(9) +#endif } // SUBX OPCODE(0x9100) { - u32 adr, res; + u32 res; u32 src, dst; - - src = DREGu8((Opcode >> 0) & 7); + + src = DREGu8((Opcode /*>> 0*/) & 7); dst = DREGu8((Opcode >> 9) & 7); res = dst - src - ((flag_X >> 8) & 1); flag_N = flag_X = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ |= res & 0xFF; DREGu8((Opcode >> 9) & 7) = res; -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // SUBX OPCODE(0x9140) { - u32 adr, res; + u32 res; u32 src, dst; - - src = DREGu16((Opcode >> 0) & 7); + + src = DREGu16((Opcode /*>> 0*/) & 7); dst = DREGu16((Opcode >> 9) & 7); res = dst - src - ((flag_X >> 8) & 1); flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ |= res & 0xFFFF; DREGu16((Opcode >> 9) & 7) = res; -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // SUBX OPCODE(0x9180) { - u32 adr, res; + u32 res; u32 src, dst; - - src = DREGu32((Opcode >> 0) & 7); + + src = DREGu32((Opcode /*>> 0*/) & 7); dst = DREGu32((Opcode >> 9) & 7); res = dst - src - ((flag_X >> 8) & 1); flag_NotZ |= res; @@ -29725,7 +34526,11 @@ OPCODE(0x9180) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(2) +#endif } // SUBXM @@ -29733,10 +34538,9 @@ OPCODE(0x9108) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, src) adr = AREG((Opcode >> 9) & 7) - 1; AREG((Opcode >> 9) & 7) = adr; @@ -29746,8 +34550,11 @@ OPCODE(0x9108) flag_V = (src ^ dst) & (res ^ dst); flag_NotZ |= res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(12) +#endif } // SUBXM @@ -29755,10 +34562,9 @@ OPCODE(0x9148) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, src) adr = AREG((Opcode >> 9) & 7) - 2; AREG((Opcode >> 9) & 7) = adr; @@ -29768,8 +34574,11 @@ OPCODE(0x9148) flag_N = flag_X = flag_C = res >> 8; flag_NotZ |= res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(12) +#endif } // SUBXM @@ -29777,10 +34586,9 @@ OPCODE(0x9188) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, src) adr = AREG((Opcode >> 9) & 7) - 4; AREG((Opcode >> 9) & 7) = adr; @@ -29791,8 +34599,11 @@ OPCODE(0x9188) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(30) +#ifdef OPCODES_M68000 + RET(30) +#else + RET(12) +#endif } // SUBX7M @@ -29800,10 +34611,9 @@ OPCODE(0x910F) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, src) adr = AREG((Opcode >> 9) & 7) - 1; AREG((Opcode >> 9) & 7) = adr; @@ -29813,8 +34623,11 @@ OPCODE(0x910F) flag_V = (src ^ dst) & (res ^ dst); flag_NotZ |= res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(12) +#endif } // SUBX7M @@ -29822,10 +34635,9 @@ OPCODE(0x914F) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, src) adr = AREG((Opcode >> 9) & 7) - 2; AREG((Opcode >> 9) & 7) = adr; @@ -29835,8 +34647,11 @@ OPCODE(0x914F) flag_N = flag_X = flag_C = res >> 8; flag_NotZ |= res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(12) +#endif } // SUBX7M @@ -29844,10 +34659,9 @@ OPCODE(0x918F) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, src) adr = AREG((Opcode >> 9) & 7) - 4; AREG((Opcode >> 9) & 7) = adr; @@ -29858,8 +34672,11 @@ OPCODE(0x918F) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(30) +#ifdef OPCODES_M68000 + RET(30) +#else + RET(12) +#endif } // SUBXM7 @@ -29867,10 +34684,9 @@ OPCODE(0x9F08) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, src) adr = AREG(7) - 2; AREG(7) = adr; @@ -29880,8 +34696,11 @@ OPCODE(0x9F08) flag_V = (src ^ dst) & (res ^ dst); flag_NotZ |= res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(12) +#endif } // SUBXM7 @@ -29889,10 +34708,9 @@ OPCODE(0x9F48) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, src) adr = AREG(7) - 2; AREG(7) = adr; @@ -29902,8 +34720,11 @@ OPCODE(0x9F48) flag_N = flag_X = flag_C = res >> 8; flag_NotZ |= res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(12) +#endif } // SUBXM7 @@ -29911,10 +34732,9 @@ OPCODE(0x9F88) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, src) adr = AREG(7) - 4; AREG(7) = adr; @@ -29925,8 +34745,11 @@ OPCODE(0x9F88) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(30) +#ifdef OPCODES_M68000 + RET(30) +#else + RET(12) +#endif } // SUBX7M7 @@ -29934,10 +34757,9 @@ OPCODE(0x9F0F) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, src) adr = AREG(7) - 2; AREG(7) = adr; @@ -29947,8 +34769,11 @@ OPCODE(0x9F0F) flag_V = (src ^ dst) & (res ^ dst); flag_NotZ |= res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(12) +#endif } // SUBX7M7 @@ -29956,10 +34781,9 @@ OPCODE(0x9F4F) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, src) adr = AREG(7) - 2; AREG(7) = adr; @@ -29969,8 +34793,11 @@ OPCODE(0x9F4F) flag_N = flag_X = flag_C = res >> 8; flag_NotZ |= res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(12) +#endif } // SUBX7M7 @@ -29978,10 +34805,9 @@ OPCODE(0x9F8F) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, src) adr = AREG(7) - 4; AREG(7) = adr; @@ -29992,34 +34818,45 @@ OPCODE(0x9F8F) flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(30) +#ifdef OPCODES_M68000 + RET(30) +#else + RET(12) +#endif } // SUBA OPCODE(0x90C0) { - u32 adr, res; + u32 res; u32 src, dst; - - src = (s32)DREGs16((Opcode >> 0) & 7); + + src = (s32)DREGs16((Opcode /*>> 0*/) & 7); dst = AREGu32((Opcode >> 9) & 7); res = dst - src; AREG((Opcode >> 9) & 7) = res; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(2) +#endif } // SUBA OPCODE(0x90C8) { - u32 adr, res; + u32 res; u32 src, dst; - - src = (s32)AREGs16((Opcode >> 0) & 7); + + src = (s32)AREGs16((Opcode /*>> 0*/) & 7); dst = AREGu32((Opcode >> 9) & 7); res = dst - src; AREG((Opcode >> 9) & 7) = res; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(2) +#endif } // SUBA @@ -30027,15 +34864,17 @@ OPCODE(0x90D0) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // SUBA @@ -30043,16 +34882,18 @@ OPCODE(0x90D8) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // SUBA @@ -30060,16 +34901,18 @@ OPCODE(0x90E0) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(7) +#endif } // SUBA @@ -30077,16 +34920,18 @@ OPCODE(0x90E8) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // SUBA @@ -30094,16 +34939,18 @@ OPCODE(0x90F0) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // SUBA @@ -30111,15 +34958,17 @@ OPCODE(0x90F8) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // SUBA @@ -30127,15 +34976,17 @@ OPCODE(0x90F9) { u32 adr, res; u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(6) +#endif } // SUBA @@ -30143,16 +34994,18 @@ OPCODE(0x90FA) { u32 adr, res; u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // SUBA @@ -30160,29 +35013,35 @@ OPCODE(0x90FB) { u32 adr, res; u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // SUBA OPCODE(0x90FC) { - u32 adr, res; + u32 res; u32 src, dst; - + FETCH_SWORD(src); dst = AREGu32((Opcode >> 9) & 7); res = dst - src; AREG((Opcode >> 9) & 7) = res; -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(4) +#endif } // SUBA @@ -30190,16 +35049,18 @@ OPCODE(0x90DF) { u32 adr, res; u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // SUBA @@ -30207,49 +35068,51 @@ OPCODE(0x90E7) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(7) +#endif } // SUBA OPCODE(0x91C0) { - u32 adr, res; + u32 res; u32 src, dst; - - src = (s32)DREGs32((Opcode >> 0) & 7); + + src = (s32)DREGs32((Opcode /*>> 0*/) & 7); dst = AREGu32((Opcode >> 9) & 7); res = dst - src; AREG((Opcode >> 9) & 7) = res; -#ifdef USE_CYCLONE_TIMING -RET(8) +#ifdef OPCODES_M68000 + RET(8) #else -RET(6) + RET(2) #endif } // SUBA OPCODE(0x91C8) { - u32 adr, res; + u32 res; u32 src, dst; - - src = (s32)AREGs32((Opcode >> 0) & 7); + + src = (s32)AREGs32((Opcode /*>> 0*/) & 7); dst = AREGu32((Opcode >> 9) & 7); res = dst - src; AREG((Opcode >> 9) & 7) = res; -#ifdef USE_CYCLONE_TIMING -RET(8) +#ifdef OPCODES_M68000 + RET(8) #else -RET(6) + RET(2) #endif } @@ -30258,15 +35121,17 @@ OPCODE(0x91D0) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(6) +#endif } // SUBA @@ -30274,16 +35139,18 @@ OPCODE(0x91D8) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(6) +#endif } // SUBA @@ -30291,16 +35158,18 @@ OPCODE(0x91E0) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // SUBA @@ -30308,16 +35177,18 @@ OPCODE(0x91E8) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(7) +#endif } // SUBA @@ -30325,16 +35196,18 @@ OPCODE(0x91F0) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // SUBA @@ -30342,15 +35215,17 @@ OPCODE(0x91F8) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(6) +#endif } // SUBA @@ -30358,15 +35233,17 @@ OPCODE(0x91F9) { u32 adr, res; u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(6) +#endif } // SUBA @@ -30374,16 +35251,18 @@ OPCODE(0x91FA) { u32 adr, res; u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(7) +#endif } // SUBA @@ -30391,32 +35270,34 @@ OPCODE(0x91FB) { u32 adr, res; u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // SUBA OPCODE(0x91FC) { - u32 adr, res; + u32 res; u32 src, dst; - + FETCH_LONG(src); dst = AREGu32((Opcode >> 9) & 7); res = dst - src; AREG((Opcode >> 9) & 7) = res; -#ifdef USE_CYCLONE_TIMING -RET(16) +#ifdef OPCODES_M68000 + RET(16) #else -RET(14) + RET(6) #endif } @@ -30425,16 +35306,18 @@ OPCODE(0x91DF) { u32 adr, res; u32 src, dst; - + adr = AREG(7); AREG(7) += 4; - PRE_IO READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(6) +#endif } // SUBA @@ -30442,51 +35325,51 @@ OPCODE(0x91E7) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // CMP OPCODE(0xB000) { - u32 adr, res; + u32 res; u32 src, dst; - - src = DREGu8((Opcode >> 0) & 7); + + src = DREGu8((Opcode /*>> 0*/) & 7); dst = DREGu8((Opcode >> 9) & 7); res = dst - src; flag_N = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // CMP OPCODE(0xB008) { - u32 adr, res; - u32 src, dst; - // can't read byte from Ax registers ! m68kcontext.execinfo |= M68K_FAULTED; - io_cycle_counter = 0; -/* - goto famec_Exec_End; - dst = DREGu8((Opcode >> 9) & 7); - res = dst - src; - flag_N = flag_C = res; - flag_V = (src ^ dst) & (res ^ dst); - flag_NotZ = res & 0xFF; -*/ -RET(4) +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter = 4; + RET(4) +#else + m68kcontext.io_cycle_counter = 2; + RET(2) +#endif } // CMP @@ -30494,17 +35377,19 @@ OPCODE(0xB010) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst - src; flag_N = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // CMP @@ -30512,18 +35397,20 @@ OPCODE(0xB018) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst - src; flag_N = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // CMP @@ -30531,18 +35418,20 @@ OPCODE(0xB020) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst - src; flag_N = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(7) +#endif } // CMP @@ -30550,18 +35439,20 @@ OPCODE(0xB028) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst - src; flag_N = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // CMP @@ -30569,18 +35460,20 @@ OPCODE(0xB030) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst - src; flag_N = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // CMP @@ -30588,17 +35481,19 @@ OPCODE(0xB038) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst - src; flag_N = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // CMP @@ -30606,17 +35501,19 @@ OPCODE(0xB039) { u32 adr, res; u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst - src; flag_N = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // CMP @@ -30624,18 +35521,20 @@ OPCODE(0xB03A) { u32 adr, res; u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst - src; flag_N = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // CMP @@ -30643,33 +35542,39 @@ OPCODE(0xB03B) { u32 adr, res; u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst - src; flag_N = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // CMP OPCODE(0xB03C) { - u32 adr, res; + u32 res; u32 src, dst; - + FETCH_BYTE(src); dst = DREGu8((Opcode >> 9) & 7); res = dst - src; flag_N = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // CMP @@ -30677,18 +35582,20 @@ OPCODE(0xB01F) { u32 adr, res; u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst - src; flag_N = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // CMP @@ -30696,48 +35603,58 @@ OPCODE(0xB027) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst - src; flag_N = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(7) +#endif } // CMP OPCODE(0xB040) { - u32 adr, res; + u32 res; u32 src, dst; - - src = DREGu16((Opcode >> 0) & 7); + + src = DREGu16((Opcode /*>> 0*/) & 7); dst = DREGu16((Opcode >> 9) & 7); res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // CMP OPCODE(0xB048) { - u32 adr, res; + u32 res; u32 src, dst; - - src = AREGu16((Opcode >> 0) & 7); + + src = AREGu16((Opcode /*>> 0*/) & 7); dst = DREGu16((Opcode >> 9) & 7); res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // CMP @@ -30745,17 +35662,19 @@ OPCODE(0xB050) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // CMP @@ -30763,18 +35682,20 @@ OPCODE(0xB058) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // CMP @@ -30782,18 +35703,20 @@ OPCODE(0xB060) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(7) +#endif } // CMP @@ -30801,18 +35724,20 @@ OPCODE(0xB068) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // CMP @@ -30820,18 +35745,20 @@ OPCODE(0xB070) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // CMP @@ -30839,17 +35766,19 @@ OPCODE(0xB078) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // CMP @@ -30857,17 +35786,19 @@ OPCODE(0xB079) { u32 adr, res; u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // CMP @@ -30875,18 +35806,20 @@ OPCODE(0xB07A) { u32 adr, res; u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // CMP @@ -30894,33 +35827,39 @@ OPCODE(0xB07B) { u32 adr, res; u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // CMP OPCODE(0xB07C) { - u32 adr, res; + u32 res; u32 src, dst; - + FETCH_WORD(src); dst = DREGu16((Opcode >> 9) & 7); res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // CMP @@ -30928,18 +35867,20 @@ OPCODE(0xB05F) { u32 adr, res; u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // CMP @@ -30947,50 +35888,60 @@ OPCODE(0xB067) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst - src; flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(7) +#endif } // CMP OPCODE(0xB080) { - u32 adr, res; + u32 res; u32 src, dst; - - src = DREGu32((Opcode >> 0) & 7); + + src = DREGu32((Opcode /*>> 0*/) & 7); dst = DREGu32((Opcode >> 9) & 7); res = dst - src; flag_NotZ = res; flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; -RET(6) +#ifdef OPCODES_M68000 + RET(6) +#else + RET(2) +#endif } // CMP OPCODE(0xB088) { - u32 adr, res; + u32 res; u32 src, dst; - - src = AREGu32((Opcode >> 0) & 7); + + src = AREGu32((Opcode /*>> 0*/) & 7); dst = DREGu32((Opcode >> 9) & 7); res = dst - src; flag_NotZ = res; flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; -RET(6) +#ifdef OPCODES_M68000 + RET(6) +#else + RET(2) +#endif } // CMP @@ -30998,9 +35949,8 @@ OPCODE(0xB090) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst - src; @@ -31008,8 +35958,11 @@ OPCODE(0xB090) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(6) +#endif } // CMP @@ -31017,10 +35970,9 @@ OPCODE(0xB098) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst - src; @@ -31028,8 +35980,11 @@ OPCODE(0xB098) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(6) +#endif } // CMP @@ -31037,10 +35992,9 @@ OPCODE(0xB0A0) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst - src; @@ -31048,8 +36002,11 @@ OPCODE(0xB0A0) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // CMP @@ -31057,10 +36014,9 @@ OPCODE(0xB0A8) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst - src; @@ -31068,8 +36024,11 @@ OPCODE(0xB0A8) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(7) +#endif } // CMP @@ -31077,10 +36036,9 @@ OPCODE(0xB0B0) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst - src; @@ -31088,8 +36046,11 @@ OPCODE(0xB0B0) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // CMP @@ -31097,9 +36058,8 @@ OPCODE(0xB0B8) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst - src; @@ -31107,8 +36067,11 @@ OPCODE(0xB0B8) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(6) +#endif } // CMP @@ -31116,9 +36079,8 @@ OPCODE(0xB0B9) { u32 adr, res; u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst - src; @@ -31126,8 +36088,11 @@ OPCODE(0xB0B9) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(6) +#endif } // CMP @@ -31135,10 +36100,9 @@ OPCODE(0xB0BA) { u32 adr, res; u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst - src; @@ -31146,8 +36110,11 @@ OPCODE(0xB0BA) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(7) +#endif } // CMP @@ -31155,10 +36122,9 @@ OPCODE(0xB0BB) { u32 adr, res; u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst - src; @@ -31166,16 +36132,19 @@ OPCODE(0xB0BB) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // CMP OPCODE(0xB0BC) { - u32 adr, res; + u32 res; u32 src, dst; - + FETCH_LONG(src); dst = DREGu32((Opcode >> 9) & 7); res = dst - src; @@ -31183,7 +36152,11 @@ OPCODE(0xB0BC) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(6) +#endif } // CMP @@ -31191,10 +36164,9 @@ OPCODE(0xB09F) { u32 adr, res; u32 src, dst; - + adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst - src; @@ -31202,8 +36174,11 @@ OPCODE(0xB09F) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(6) +#endif } // CMP @@ -31211,10 +36186,9 @@ OPCODE(0xB0A7) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst - src; @@ -31222,8 +36196,11 @@ OPCODE(0xB0A7) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // CMPM @@ -31231,10 +36208,9 @@ OPCODE(0xB108) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, src) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 1; @@ -31243,8 +36219,11 @@ OPCODE(0xB108) flag_N = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(9) +#endif } // CMPM @@ -31252,10 +36231,9 @@ OPCODE(0xB148) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, src) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 2; @@ -31264,8 +36242,11 @@ OPCODE(0xB148) flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(9) +#endif } // CMPM @@ -31273,10 +36254,9 @@ OPCODE(0xB188) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, src) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 4; @@ -31286,8 +36266,11 @@ OPCODE(0xB188) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // CMP7M @@ -31295,10 +36278,9 @@ OPCODE(0xB10F) { u32 adr, res; u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, src) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 1; @@ -31307,8 +36289,11 @@ OPCODE(0xB10F) flag_N = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(9) +#endif } // CMP7M @@ -31316,10 +36301,9 @@ OPCODE(0xB14F) { u32 adr, res; u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, src) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 2; @@ -31328,8 +36312,11 @@ OPCODE(0xB14F) flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(9) +#endif } // CMP7M @@ -31337,10 +36324,9 @@ OPCODE(0xB18F) { u32 adr, res; u32 src, dst; - + adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, src) adr = AREG((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) += 4; @@ -31350,8 +36336,11 @@ OPCODE(0xB18F) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // CMPM7 @@ -31359,10 +36348,9 @@ OPCODE(0xBF08) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, src) adr = AREG(7); AREG(7) += 2; @@ -31371,8 +36359,11 @@ OPCODE(0xBF08) flag_N = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(9) +#endif } // CMPM7 @@ -31380,10 +36371,9 @@ OPCODE(0xBF48) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, src) adr = AREG(7); AREG(7) += 2; @@ -31392,8 +36382,11 @@ OPCODE(0xBF48) flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(9) +#endif } // CMPM7 @@ -31401,10 +36394,9 @@ OPCODE(0xBF88) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, src) adr = AREG(7); AREG(7) += 4; @@ -31414,8 +36406,11 @@ OPCODE(0xBF88) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // CMP7M7 @@ -31423,10 +36418,9 @@ OPCODE(0xBF0F) { u32 adr, res; u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, src) adr = AREG(7); AREG(7) += 2; @@ -31435,8 +36429,11 @@ OPCODE(0xBF0F) flag_N = flag_C = res; flag_V = (src ^ dst) & (res ^ dst); flag_NotZ = res & 0xFF; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(9) +#endif } // CMP7M7 @@ -31444,10 +36441,9 @@ OPCODE(0xBF4F) { u32 adr, res; u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, src) adr = AREG(7); AREG(7) += 2; @@ -31456,8 +36452,11 @@ OPCODE(0xBF4F) flag_V = ((src ^ dst) & (res ^ dst)) >> 8; flag_N = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(9) +#endif } // CMP7M7 @@ -31465,10 +36464,9 @@ OPCODE(0xBF8F) { u32 adr, res; u32 src, dst; - + adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, src) adr = AREG(7); AREG(7) += 4; @@ -31478,36 +36476,42 @@ OPCODE(0xBF8F) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // EORDa OPCODE(0xB100) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; + src = DREGu8((Opcode >> 9) & 7); - res = DREGu8((Opcode >> 0) & 7); + res = DREGu8((Opcode /*>> 0*/) & 7); res ^= src; flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res; - DREGu8((Opcode >> 0) & 7) = res; -RET(4) + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // EORDa OPCODE(0xB110) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) res ^= src; flag_C = 0; @@ -31515,20 +36519,22 @@ OPCODE(0xB110) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // EORDa OPCODE(0xB118) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, res) res ^= src; flag_C = 0; @@ -31536,20 +36542,22 @@ OPCODE(0xB118) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // EORDa OPCODE(0xB120) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, res) res ^= src; flag_C = 0; @@ -31557,20 +36565,22 @@ OPCODE(0xB120) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // EORDa OPCODE(0xB128) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) res ^= src; flag_C = 0; @@ -31578,20 +36588,22 @@ OPCODE(0xB128) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(9) +#endif } // EORDa OPCODE(0xB130) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) res ^= src; flag_C = 0; @@ -31599,19 +36611,21 @@ OPCODE(0xB130) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(11) +#endif } // EORDa OPCODE(0xB138) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, res) res ^= src; flag_C = 0; @@ -31619,19 +36633,21 @@ OPCODE(0xB138) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // EORDa OPCODE(0xB139) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, res) res ^= src; flag_C = 0; @@ -31639,20 +36655,22 @@ OPCODE(0xB139) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // EORDa OPCODE(0xB11F) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, res) res ^= src; flag_C = 0; @@ -31660,20 +36678,22 @@ OPCODE(0xB11F) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // EORDa OPCODE(0xB127) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, res) res ^= src; flag_C = 0; @@ -31681,36 +36701,42 @@ OPCODE(0xB127) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // EORDa OPCODE(0xB140) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; + src = DREGu16((Opcode >> 9) & 7); - res = DREGu16((Opcode >> 0) & 7); + res = DREGu16((Opcode /*>> 0*/) & 7); res ^= src; flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 8; - DREGu16((Opcode >> 0) & 7) = res; -RET(4) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // EORDa OPCODE(0xB150) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu16((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) res ^= src; flag_C = 0; @@ -31718,20 +36744,22 @@ OPCODE(0xB150) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // EORDa OPCODE(0xB158) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu16((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, res) res ^= src; flag_C = 0; @@ -31739,20 +36767,22 @@ OPCODE(0xB158) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // EORDa OPCODE(0xB160) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu16((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, res) res ^= src; flag_C = 0; @@ -31760,20 +36790,22 @@ OPCODE(0xB160) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // EORDa OPCODE(0xB168) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu16((Opcode >> 9) & 7); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) res ^= src; flag_C = 0; @@ -31781,20 +36813,22 @@ OPCODE(0xB168) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(9) +#endif } // EORDa OPCODE(0xB170) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu16((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, res) res ^= src; flag_C = 0; @@ -31802,19 +36836,21 @@ OPCODE(0xB170) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(11) +#endif } // EORDa OPCODE(0xB178) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu16((Opcode >> 9) & 7); FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, res) res ^= src; flag_C = 0; @@ -31822,19 +36858,21 @@ OPCODE(0xB178) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // EORDa OPCODE(0xB179) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu16((Opcode >> 9) & 7); FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, res) res ^= src; flag_C = 0; @@ -31842,20 +36880,22 @@ OPCODE(0xB179) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // EORDa OPCODE(0xB15F) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu16((Opcode >> 9) & 7); adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, res) res ^= src; flag_C = 0; @@ -31863,20 +36903,22 @@ OPCODE(0xB15F) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // EORDa OPCODE(0xB167) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu16((Opcode >> 9) & 7); adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, res) res ^= src; flag_C = 0; @@ -31884,36 +36926,42 @@ OPCODE(0xB167) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // EORDa OPCODE(0xB180) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; + src = DREGu32((Opcode >> 9) & 7); - res = DREGu32((Opcode >> 0) & 7); + res = DREGu32((Opcode /*>> 0*/) & 7); res ^= src; flag_C = 0; flag_V = 0; flag_NotZ = res; flag_N = res >> 24; - DREGu32((Opcode >> 0) & 7) = res; -RET(8) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8) +#else + RET(2) +#endif } // EORDa OPCODE(0xB190) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu32((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) res ^= src; flag_C = 0; @@ -31921,20 +36969,22 @@ OPCODE(0xB190) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // EORDa OPCODE(0xB198) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu32((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, res) res ^= src; flag_C = 0; @@ -31942,20 +36992,22 @@ OPCODE(0xB198) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // EORDa OPCODE(0xB1A0) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu32((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, res) res ^= src; flag_C = 0; @@ -31963,20 +37015,22 @@ OPCODE(0xB1A0) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(9) +#endif } // EORDa OPCODE(0xB1A8) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu32((Opcode >> 9) & 7); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) res ^= src; flag_C = 0; @@ -31984,20 +37038,22 @@ OPCODE(0xB1A8) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(9) +#endif } // EORDa OPCODE(0xB1B0) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu32((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, res) res ^= src; flag_C = 0; @@ -32005,19 +37061,21 @@ OPCODE(0xB1B0) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(11) +#endif } // EORDa OPCODE(0xB1B8) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu32((Opcode >> 9) & 7); FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, res) res ^= src; flag_C = 0; @@ -32025,19 +37083,21 @@ OPCODE(0xB1B8) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(8) +#endif } // EORDa OPCODE(0xB1B9) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu32((Opcode >> 9) & 7); FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, res) res ^= src; flag_C = 0; @@ -32045,20 +37105,22 @@ OPCODE(0xB1B9) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(8) +#endif } // EORDa OPCODE(0xB19F) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu32((Opcode >> 9) & 7); adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, res) res ^= src; flag_C = 0; @@ -32066,20 +37128,22 @@ OPCODE(0xB19F) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // EORDa OPCODE(0xB1A7) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu32((Opcode >> 9) & 7); adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, res) res ^= src; flag_C = 0; @@ -32087,40 +37151,51 @@ OPCODE(0xB1A7) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(9) +#endif } // CMPA OPCODE(0xB0C0) { - u32 adr, res; + u32 res; u32 src, dst; - - src = (s32)DREGs16((Opcode >> 0) & 7); + + src = (s32)DREGs16((Opcode /*>> 0*/) & 7); dst = AREGu32((Opcode >> 9) & 7); res = dst - src; flag_NotZ = res; flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; -RET(6) +#ifdef OPCODES_M68000 + RET(6) +#else + RET(4) +#endif } // CMPA OPCODE(0xB0C8) { - u32 adr, res; + u32 res; u32 src, dst; - - src = (s32)AREGs16((Opcode >> 0) & 7); + + src = (s32)AREGs16((Opcode /*>> 0*/) & 7); dst = AREGu32((Opcode >> 9) & 7); res = dst - src; flag_NotZ = res; flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; -RET(6) +#ifdef OPCODES_M68000 + RET(6) +#else + RET(4) +#endif } // CMPA @@ -32128,9 +37203,8 @@ OPCODE(0xB0D0) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; @@ -32138,8 +37212,11 @@ OPCODE(0xB0D0) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(8) +#endif } // CMPA @@ -32147,10 +37224,9 @@ OPCODE(0xB0D8) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; @@ -32158,8 +37234,11 @@ OPCODE(0xB0D8) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(8) +#endif } // CMPA @@ -32167,10 +37246,9 @@ OPCODE(0xB0E0) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; @@ -32178,8 +37256,11 @@ OPCODE(0xB0E0) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(9) +#endif } // CMPA @@ -32187,10 +37268,9 @@ OPCODE(0xB0E8) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; @@ -32198,8 +37278,11 @@ OPCODE(0xB0E8) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // CMPA @@ -32207,10 +37290,9 @@ OPCODE(0xB0F0) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; @@ -32218,8 +37300,11 @@ OPCODE(0xB0F0) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(11) +#endif } // CMPA @@ -32227,9 +37312,8 @@ OPCODE(0xB0F8) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; @@ -32237,8 +37321,11 @@ OPCODE(0xB0F8) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } // CMPA @@ -32246,9 +37333,8 @@ OPCODE(0xB0F9) { u32 adr, res; u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; @@ -32256,8 +37342,11 @@ OPCODE(0xB0F9) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(8) +#endif } // CMPA @@ -32265,10 +37354,9 @@ OPCODE(0xB0FA) { u32 adr, res; u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; @@ -32276,8 +37364,11 @@ OPCODE(0xB0FA) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // CMPA @@ -32285,10 +37376,9 @@ OPCODE(0xB0FB) { u32 adr, res; u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; @@ -32296,16 +37386,19 @@ OPCODE(0xB0FB) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(11) +#endif } // CMPA OPCODE(0xB0FC) { - u32 adr, res; + u32 res; u32 src, dst; - + FETCH_SWORD(src); dst = AREGu32((Opcode >> 9) & 7); res = dst - src; @@ -32313,7 +37406,11 @@ OPCODE(0xB0FC) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(6) +#endif } // CMPA @@ -32321,10 +37418,9 @@ OPCODE(0xB0DF) { u32 adr, res; u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; @@ -32332,8 +37428,11 @@ OPCODE(0xB0DF) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(8) +#endif } // CMPA @@ -32341,10 +37440,9 @@ OPCODE(0xB0E7) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; @@ -32352,40 +37450,51 @@ OPCODE(0xB0E7) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(9) +#endif } // CMPA OPCODE(0xB1C0) { - u32 adr, res; + u32 res; u32 src, dst; - - src = (s32)DREGs32((Opcode >> 0) & 7); + + src = (s32)DREGs32((Opcode /*>> 0*/) & 7); dst = AREGu32((Opcode >> 9) & 7); res = dst - src; flag_NotZ = res; flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; -RET(6) +#ifdef OPCODES_M68000 + RET(6) +#else + RET(4) +#endif } // CMPA OPCODE(0xB1C8) { - u32 adr, res; + u32 res; u32 src, dst; - - src = (s32)AREGs32((Opcode >> 0) & 7); + + src = (s32)AREGs32((Opcode /*>> 0*/) & 7); dst = AREGu32((Opcode >> 9) & 7); res = dst - src; flag_NotZ = res; flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; -RET(6) +#ifdef OPCODES_M68000 + RET(6) +#else + RET(4) +#endif } // CMPA @@ -32393,9 +37502,8 @@ OPCODE(0xB1D0) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; @@ -32403,8 +37511,11 @@ OPCODE(0xB1D0) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } // CMPA @@ -32412,10 +37523,9 @@ OPCODE(0xB1D8) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; @@ -32423,8 +37533,11 @@ OPCODE(0xB1D8) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } // CMPA @@ -32432,10 +37545,9 @@ OPCODE(0xB1E0) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; @@ -32443,8 +37555,11 @@ OPCODE(0xB1E0) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(9) +#endif } // CMPA @@ -32452,10 +37567,9 @@ OPCODE(0xB1E8) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; @@ -32463,8 +37577,11 @@ OPCODE(0xB1E8) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // CMPA @@ -32472,10 +37589,9 @@ OPCODE(0xB1F0) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; @@ -32483,8 +37599,11 @@ OPCODE(0xB1F0) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(11) +#endif } // CMPA @@ -32492,9 +37611,8 @@ OPCODE(0xB1F8) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; @@ -32502,8 +37620,11 @@ OPCODE(0xB1F8) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(8) +#endif } // CMPA @@ -32511,9 +37632,8 @@ OPCODE(0xB1F9) { u32 adr, res; u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; @@ -32521,8 +37641,11 @@ OPCODE(0xB1F9) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(8) +#endif } // CMPA @@ -32530,10 +37653,9 @@ OPCODE(0xB1FA) { u32 adr, res; u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; @@ -32541,8 +37663,11 @@ OPCODE(0xB1FA) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // CMPA @@ -32550,10 +37675,9 @@ OPCODE(0xB1FB) { u32 adr, res; u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; @@ -32561,16 +37685,19 @@ OPCODE(0xB1FB) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(11) +#endif } // CMPA OPCODE(0xB1FC) { - u32 adr, res; + u32 res; u32 src, dst; - + FETCH_LONG(src); dst = AREGu32((Opcode >> 9) & 7); res = dst - src; @@ -32578,7 +37705,11 @@ OPCODE(0xB1FC) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } // CMPA @@ -32586,10 +37717,9 @@ OPCODE(0xB1DF) { u32 adr, res; u32 src, dst; - + adr = AREG(7); AREG(7) += 4; - PRE_IO READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; @@ -32597,8 +37727,11 @@ OPCODE(0xB1DF) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(8) +#endif } // CMPA @@ -32606,10 +37739,9 @@ OPCODE(0xB1E7) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst - src; @@ -32617,17 +37749,20 @@ OPCODE(0xB1E7) flag_C = ((src & res & 1) + (src >> 1) + (res >> 1)) >> 23; flag_V = ((src ^ dst) & (res ^ dst)) >> 24; flag_N = res >> 24; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(9) +#endif } // ANDaD OPCODE(0xC000) { - u32 adr, res; - u32 src, dst; - - src = DREGu8((Opcode >> 0) & 7); + u32 res; + u32 src; + + src = DREGu8((Opcode /*>> 0*/) & 7); res = DREGu8((Opcode >> 9) & 7); res &= src; flag_C = 0; @@ -32635,17 +37770,20 @@ OPCODE(0xC000) flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // ANDaD OPCODE(0xC010) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, src) res = DREGu8((Opcode >> 9) & 7); res &= src; @@ -32654,19 +37792,21 @@ OPCODE(0xC010) flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // ANDaD OPCODE(0xC018) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, src) res = DREGu8((Opcode >> 9) & 7); res &= src; @@ -32675,19 +37815,21 @@ OPCODE(0xC018) flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // ANDaD OPCODE(0xC020) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, src) res = DREGu8((Opcode >> 9) & 7); res &= src; @@ -32696,19 +37838,21 @@ OPCODE(0xC020) flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(7) +#endif } // ANDaD OPCODE(0xC028) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, src) res = DREGu8((Opcode >> 9) & 7); res &= src; @@ -32717,19 +37861,21 @@ OPCODE(0xC028) flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // ANDaD OPCODE(0xC030) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, src) res = DREGu8((Opcode >> 9) & 7); res &= src; @@ -32738,18 +37884,20 @@ OPCODE(0xC030) flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // ANDaD OPCODE(0xC038) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, src) res = DREGu8((Opcode >> 9) & 7); res &= src; @@ -32758,18 +37906,20 @@ OPCODE(0xC038) flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // ANDaD OPCODE(0xC039) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, src) res = DREGu8((Opcode >> 9) & 7); res &= src; @@ -32778,19 +37928,21 @@ OPCODE(0xC039) flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // ANDaD OPCODE(0xC03A) { - u32 adr, res; - u32 src, dst; - + u32 adr, res; + u32 src; + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_BYTE_F(adr, src) res = DREGu8((Opcode >> 9) & 7); res &= src; @@ -32799,19 +37951,21 @@ OPCODE(0xC03A) flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // ANDaD OPCODE(0xC03B) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, src) res = DREGu8((Opcode >> 9) & 7); res &= src; @@ -32820,16 +37974,19 @@ OPCODE(0xC03B) flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // ANDaD OPCODE(0xC03C) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; + FETCH_BYTE(src); res = DREGu8((Opcode >> 9) & 7); res &= src; @@ -32838,18 +37995,21 @@ OPCODE(0xC03C) flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // ANDaD OPCODE(0xC01F) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, src) res = DREGu8((Opcode >> 9) & 7); res &= src; @@ -32858,19 +38018,21 @@ OPCODE(0xC01F) flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // ANDaD OPCODE(0xC027) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, src) res = DREGu8((Opcode >> 9) & 7); res &= src; @@ -32879,17 +38041,20 @@ OPCODE(0xC027) flag_NotZ = res; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(7) +#endif } // ANDaD OPCODE(0xC040) { - u32 adr, res; - u32 src, dst; - - src = DREGu16((Opcode >> 0) & 7); + u32 res; + u32 src; + + src = DREGu16((Opcode /*>> 0*/) & 7); res = DREGu16((Opcode >> 9) & 7); res &= src; flag_C = 0; @@ -32897,17 +38062,20 @@ OPCODE(0xC040) flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // ANDaD OPCODE(0xC050) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res &= src; @@ -32916,19 +38084,21 @@ OPCODE(0xC050) flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // ANDaD OPCODE(0xC058) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res &= src; @@ -32937,19 +38107,21 @@ OPCODE(0xC058) flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // ANDaD OPCODE(0xC060) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res &= src; @@ -32958,19 +38130,21 @@ OPCODE(0xC060) flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(7) +#endif } // ANDaD OPCODE(0xC068) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res &= src; @@ -32979,19 +38153,21 @@ OPCODE(0xC068) flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // ANDaD OPCODE(0xC070) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res &= src; @@ -33000,18 +38176,20 @@ OPCODE(0xC070) flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // ANDaD OPCODE(0xC078) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res &= src; @@ -33020,18 +38198,20 @@ OPCODE(0xC078) flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // ANDaD OPCODE(0xC079) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res &= src; @@ -33040,19 +38220,21 @@ OPCODE(0xC079) flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // ANDaD OPCODE(0xC07A) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res &= src; @@ -33061,19 +38243,21 @@ OPCODE(0xC07A) flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // ANDaD OPCODE(0xC07B) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res &= src; @@ -33082,16 +38266,19 @@ OPCODE(0xC07B) flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // ANDaD OPCODE(0xC07C) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; + FETCH_WORD(src); res = DREGu16((Opcode >> 9) & 7); res &= src; @@ -33100,18 +38287,21 @@ OPCODE(0xC07C) flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // ANDaD OPCODE(0xC05F) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res &= src; @@ -33120,19 +38310,21 @@ OPCODE(0xC05F) flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // ANDaD OPCODE(0xC067) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res &= src; @@ -33141,17 +38333,20 @@ OPCODE(0xC067) flag_NotZ = res; flag_N = res >> 8; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(7) +#endif } // ANDaD OPCODE(0xC080) { - u32 adr, res; - u32 src, dst; - - src = DREGu32((Opcode >> 0) & 7); + u32 res; + u32 src; + + src = DREGu32((Opcode /*>> 0*/) & 7); res = DREGu32((Opcode >> 9) & 7); res &= src; flag_C = 0; @@ -33159,17 +38354,20 @@ OPCODE(0xC080) flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(2) +#endif } // ANDaD OPCODE(0xC090) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, src) res = DREGu32((Opcode >> 9) & 7); res &= src; @@ -33178,19 +38376,21 @@ OPCODE(0xC090) flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(6) +#endif } // ANDaD OPCODE(0xC098) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, src) res = DREGu32((Opcode >> 9) & 7); res &= src; @@ -33199,19 +38399,21 @@ OPCODE(0xC098) flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(6) +#endif } // ANDaD OPCODE(0xC0A0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, src) res = DREGu32((Opcode >> 9) & 7); res &= src; @@ -33220,19 +38422,21 @@ OPCODE(0xC0A0) flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // ANDaD OPCODE(0xC0A8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, src) res = DREGu32((Opcode >> 9) & 7); res &= src; @@ -33241,19 +38445,21 @@ OPCODE(0xC0A8) flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(7) +#endif } // ANDaD OPCODE(0xC0B0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, src) res = DREGu32((Opcode >> 9) & 7); res &= src; @@ -33262,18 +38468,20 @@ OPCODE(0xC0B0) flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // ANDaD OPCODE(0xC0B8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, src) res = DREGu32((Opcode >> 9) & 7); res &= src; @@ -33282,18 +38490,20 @@ OPCODE(0xC0B8) flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(6) +#endif } // ANDaD OPCODE(0xC0B9) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, src) res = DREGu32((Opcode >> 9) & 7); res &= src; @@ -33302,19 +38512,21 @@ OPCODE(0xC0B9) flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(6) +#endif } // ANDaD OPCODE(0xC0BA) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_LONG_F(adr, src) res = DREGu32((Opcode >> 9) & 7); res &= src; @@ -33323,19 +38535,21 @@ OPCODE(0xC0BA) flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(7) +#endif } // ANDaD OPCODE(0xC0BB) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, src) res = DREGu32((Opcode >> 9) & 7); res &= src; @@ -33344,16 +38558,19 @@ OPCODE(0xC0BB) flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // ANDaD OPCODE(0xC0BC) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; + FETCH_LONG(src); res = DREGu32((Opcode >> 9) & 7); res &= src; @@ -33362,18 +38579,21 @@ OPCODE(0xC0BC) flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // ANDaD OPCODE(0xC09F) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, src) res = DREGu32((Opcode >> 9) & 7); res &= src; @@ -33382,19 +38602,21 @@ OPCODE(0xC09F) flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(6) +#endif } // ANDaD OPCODE(0xC0A7) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, src) res = DREGu32((Opcode >> 9) & 7); res &= src; @@ -33403,19 +38625,21 @@ OPCODE(0xC0A7) flag_NotZ = res; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // ANDDa OPCODE(0xC110) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) res &= src; flag_C = 0; @@ -33423,20 +38647,22 @@ OPCODE(0xC110) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // ANDDa OPCODE(0xC118) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, res) res &= src; flag_C = 0; @@ -33444,20 +38670,22 @@ OPCODE(0xC118) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // ANDDa OPCODE(0xC120) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, res) res &= src; flag_C = 0; @@ -33465,20 +38693,22 @@ OPCODE(0xC120) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // ANDDa OPCODE(0xC128) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, res) res &= src; flag_C = 0; @@ -33486,20 +38716,22 @@ OPCODE(0xC128) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(9) +#endif } // ANDDa OPCODE(0xC130) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, res) res &= src; flag_C = 0; @@ -33507,19 +38739,21 @@ OPCODE(0xC130) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(11) +#endif } // ANDDa OPCODE(0xC138) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, res) res &= src; flag_C = 0; @@ -33527,19 +38761,21 @@ OPCODE(0xC138) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // ANDDa OPCODE(0xC139) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, res) res &= src; flag_C = 0; @@ -33547,20 +38783,22 @@ OPCODE(0xC139) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // ANDDa OPCODE(0xC11F) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, res) res &= src; flag_C = 0; @@ -33568,20 +38806,22 @@ OPCODE(0xC11F) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // ANDDa OPCODE(0xC127) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu8((Opcode >> 9) & 7); adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, res) res &= src; flag_C = 0; @@ -33589,19 +38829,21 @@ OPCODE(0xC127) flag_NotZ = res; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // ANDDa OPCODE(0xC150) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu16((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) res &= src; flag_C = 0; @@ -33609,20 +38851,22 @@ OPCODE(0xC150) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // ANDDa OPCODE(0xC158) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu16((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, res) res &= src; flag_C = 0; @@ -33630,20 +38874,22 @@ OPCODE(0xC158) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // ANDDa OPCODE(0xC160) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu16((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, res) res &= src; flag_C = 0; @@ -33651,20 +38897,22 @@ OPCODE(0xC160) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // ANDDa OPCODE(0xC168) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu16((Opcode >> 9) & 7); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, res) res &= src; flag_C = 0; @@ -33672,20 +38920,22 @@ OPCODE(0xC168) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(9) +#endif } // ANDDa OPCODE(0xC170) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu16((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, res) res &= src; flag_C = 0; @@ -33693,19 +38943,21 @@ OPCODE(0xC170) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(11) +#endif } // ANDDa OPCODE(0xC178) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu16((Opcode >> 9) & 7); FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, res) res &= src; flag_C = 0; @@ -33713,19 +38965,21 @@ OPCODE(0xC178) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // ANDDa OPCODE(0xC179) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu16((Opcode >> 9) & 7); FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, res) res &= src; flag_C = 0; @@ -33733,20 +38987,22 @@ OPCODE(0xC179) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // ANDDa OPCODE(0xC15F) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu16((Opcode >> 9) & 7); adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, res) res &= src; flag_C = 0; @@ -33754,20 +39010,22 @@ OPCODE(0xC15F) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // ANDDa OPCODE(0xC167) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu16((Opcode >> 9) & 7); adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, res) res &= src; flag_C = 0; @@ -33775,19 +39033,21 @@ OPCODE(0xC167) flag_NotZ = res; flag_N = res >> 8; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // ANDDa OPCODE(0xC190) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu32((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) res &= src; flag_C = 0; @@ -33795,20 +39055,22 @@ OPCODE(0xC190) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // ANDDa OPCODE(0xC198) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu32((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, res) res &= src; flag_C = 0; @@ -33816,20 +39078,22 @@ OPCODE(0xC198) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // ANDDa OPCODE(0xC1A0) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu32((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, res) res &= src; flag_C = 0; @@ -33837,20 +39101,22 @@ OPCODE(0xC1A0) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(9) +#endif } // ANDDa OPCODE(0xC1A8) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu32((Opcode >> 9) & 7); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, res) res &= src; flag_C = 0; @@ -33858,20 +39124,22 @@ OPCODE(0xC1A8) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(9) +#endif } // ANDDa OPCODE(0xC1B0) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu32((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, res) res &= src; flag_C = 0; @@ -33879,19 +39147,21 @@ OPCODE(0xC1B0) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(11) +#endif } // ANDDa OPCODE(0xC1B8) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu32((Opcode >> 9) & 7); FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, res) res &= src; flag_C = 0; @@ -33899,19 +39169,21 @@ OPCODE(0xC1B8) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(8) +#endif } // ANDDa OPCODE(0xC1B9) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu32((Opcode >> 9) & 7); FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, res) res &= src; flag_C = 0; @@ -33919,20 +39191,22 @@ OPCODE(0xC1B9) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(8) +#endif } // ANDDa OPCODE(0xC19F) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu32((Opcode >> 9) & 7); adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, res) res &= src; flag_C = 0; @@ -33940,20 +39214,22 @@ OPCODE(0xC19F) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // ANDDa OPCODE(0xC1A7) { u32 adr, res; - u32 src, dst; - + u32 src; + src = DREGu32((Opcode >> 9) & 7); adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, res) res &= src; flag_C = 0; @@ -33961,17 +39237,20 @@ OPCODE(0xC1A7) flag_NotZ = res; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(9) +#endif } // ABCD OPCODE(0xC100) { - u32 adr, res; + u32 res; u32 src, dst; - - src = DREGu8((Opcode >> 0) & 7); + + src = DREGu8((Opcode /*>> 0*/) & 7); dst = DREGu8((Opcode >> 9) & 7); res = (dst & 0xF) + (src & 0xF) + ((flag_X >> M68K_SR_X_SFT) & 1); if (res > 9) res += 6; @@ -33985,7 +39264,11 @@ OPCODE(0xC100) flag_NotZ |= res & 0xFF; flag_N = res; DREGu8((Opcode >> 9) & 7) = res; -RET(6) +#ifdef OPCODES_M68000 + RET(6) +#else + RET(4) +#endif } // ABCDM @@ -33993,10 +39276,9 @@ OPCODE(0xC108) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, src) adr = AREG((Opcode >> 9) & 7) - 1; AREG((Opcode >> 9) & 7) = adr; @@ -34013,8 +39295,11 @@ OPCODE(0xC108) flag_NotZ |= res & 0xFF; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(16) +#endif } // ABCD7M @@ -34022,10 +39307,9 @@ OPCODE(0xC10F) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, src) adr = AREG((Opcode >> 9) & 7) - 1; AREG((Opcode >> 9) & 7) = adr; @@ -34042,8 +39326,11 @@ OPCODE(0xC10F) flag_NotZ |= res & 0xFF; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(16) +#endif } // ABCDM7 @@ -34051,10 +39338,9 @@ OPCODE(0xCF08) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, src) adr = AREG(7) - 2; AREG(7) = adr; @@ -34071,8 +39357,11 @@ OPCODE(0xCF08) flag_NotZ |= res & 0xFF; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(16) +#endif } // ABCD7M7 @@ -34080,10 +39369,9 @@ OPCODE(0xCF0F) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, src) adr = AREG(7) - 2; AREG(7) = adr; @@ -34100,27 +39388,30 @@ OPCODE(0xCF0F) flag_NotZ |= res & 0xFF; flag_N = res; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(16) +#endif } // MULU OPCODE(0xC0C0) { - u32 adr, res; - u32 src, dst; - - src = DREGu16((Opcode >> 0) & 7); + u32 res; + u32 src; + + src = DREGu16((Opcode /*>> 0*/) & 7); res = DREGu16((Opcode >> 9) & 7); res *= src; flag_N = res >> 24; flag_NotZ = res; flag_V = flag_C = 0; DREGu32((Opcode >> 9) & 7) = res; -#ifdef USE_CYCLONE_TIMING -RET(54) +#ifdef OPCODES_M68000 + RET(38 + bitset_count(src & 0xFFFF) * 2) #else -RET(50) + RET(27) #endif } @@ -34128,10 +39419,9 @@ RET(50) OPCODE(0xC0D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res *= src; @@ -34139,11 +39429,10 @@ OPCODE(0xC0D0) flag_NotZ = res; flag_V = flag_C = 0; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -#ifdef USE_CYCLONE_TIMING -RET(58) +#ifdef OPCODES_M68000 + RET(42 + bitset_count(src & 0xFFFF) * 2) #else -RET(54) + RET(31) #endif } @@ -34151,11 +39440,10 @@ RET(54) OPCODE(0xC0D8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res *= src; @@ -34163,11 +39451,10 @@ OPCODE(0xC0D8) flag_NotZ = res; flag_V = flag_C = 0; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -#ifdef USE_CYCLONE_TIMING -RET(58) +#ifdef OPCODES_M68000 + RET(42 + bitset_count(src & 0xFFFF) * 2) #else -RET(54) + RET(31) #endif } @@ -34175,11 +39462,10 @@ RET(54) OPCODE(0xC0E0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res *= src; @@ -34187,11 +39473,10 @@ OPCODE(0xC0E0) flag_NotZ = res; flag_V = flag_C = 0; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -#ifdef USE_CYCLONE_TIMING -RET(60) +#ifdef OPCODES_M68000 + RET(44 + bitset_count(src & 0xFFFF) * 2) #else -RET(56) + RET(32) #endif } @@ -34199,11 +39484,10 @@ RET(56) OPCODE(0xC0E8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res *= src; @@ -34211,11 +39495,10 @@ OPCODE(0xC0E8) flag_NotZ = res; flag_V = flag_C = 0; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -#ifdef USE_CYCLONE_TIMING -RET(62) +#ifdef OPCODES_M68000 + RET(46 + bitset_count(src & 0xFFFF) * 2) #else -RET(58) + RET(32) #endif } @@ -34223,11 +39506,10 @@ RET(58) OPCODE(0xC0F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res *= src; @@ -34235,11 +39517,10 @@ OPCODE(0xC0F0) flag_NotZ = res; flag_V = flag_C = 0; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -#ifdef USE_CYCLONE_TIMING -RET(64) +#ifdef OPCODES_M68000 + RET(48 + bitset_count(src & 0xFFFF) * 2) #else -RET(60) + RET(34) #endif } @@ -34247,10 +39528,9 @@ RET(60) OPCODE(0xC0F8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res *= src; @@ -34258,11 +39538,10 @@ OPCODE(0xC0F8) flag_NotZ = res; flag_V = flag_C = 0; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -#ifdef USE_CYCLONE_TIMING -RET(62) +#ifdef OPCODES_M68000 + RET(46 + bitset_count(src & 0xFFFF) * 2) #else -RET(58) + RET(31) #endif } @@ -34270,10 +39549,9 @@ RET(58) OPCODE(0xC0F9) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res *= src; @@ -34281,11 +39559,10 @@ OPCODE(0xC0F9) flag_NotZ = res; flag_V = flag_C = 0; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -#ifdef USE_CYCLONE_TIMING -RET(66) +#ifdef OPCODES_M68000 + RET(50 + bitset_count(src & 0xFFFF) * 2) #else -RET(62) + RET(31) #endif } @@ -34293,11 +39570,10 @@ RET(62) OPCODE(0xC0FA) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res *= src; @@ -34305,11 +39581,10 @@ OPCODE(0xC0FA) flag_NotZ = res; flag_V = flag_C = 0; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -#ifdef USE_CYCLONE_TIMING -RET(62) +#ifdef OPCODES_M68000 + RET(46 + bitset_count(src & 0xFFFF) * 2) #else -RET(58) + RET(32) #endif } @@ -34317,11 +39592,10 @@ RET(58) OPCODE(0xC0FB) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res *= src; @@ -34329,20 +39603,19 @@ OPCODE(0xC0FB) flag_NotZ = res; flag_V = flag_C = 0; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -#ifdef USE_CYCLONE_TIMING -RET(64) +#ifdef OPCODES_M68000 + RET(48 + bitset_count(src & 0xFFFF) * 2) #else -RET(60) + RET(34) #endif } // MULU OPCODE(0xC0FC) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; + FETCH_WORD(src); res = DREGu16((Opcode >> 9) & 7); res *= src; @@ -34350,10 +39623,10 @@ OPCODE(0xC0FC) flag_NotZ = res; flag_V = flag_C = 0; DREGu32((Opcode >> 9) & 7) = res; -#ifdef USE_CYCLONE_TIMING -RET(58) +#ifdef OPCODES_M68000 + RET(42 + bitset_count(src & 0xFFFF) * 2) #else -RET(54) + RET(29) #endif } @@ -34361,11 +39634,10 @@ RET(54) OPCODE(0xC0DF) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res *= src; @@ -34373,11 +39645,10 @@ OPCODE(0xC0DF) flag_NotZ = res; flag_V = flag_C = 0; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -#ifdef USE_CYCLONE_TIMING -RET(58) +#ifdef OPCODES_M68000 + RET(42 + bitset_count(src & 0xFFFF) * 2) #else -RET(54) + RET(31) #endif } @@ -34385,11 +39656,10 @@ RET(54) OPCODE(0xC0E7) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, src) res = DREGu16((Opcode >> 9) & 7); res *= src; @@ -34397,31 +39667,30 @@ OPCODE(0xC0E7) flag_NotZ = res; flag_V = flag_C = 0; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -#ifdef USE_CYCLONE_TIMING -RET(60) +#ifdef OPCODES_M68000 + RET(44 + bitset_count(src & 0xFFFF) * 2) #else -RET(56) + RET(32) #endif } // MULS OPCODE(0xC1C0) { - u32 adr, res; - u32 src, dst; - - src = (s32)DREGs16((Opcode >> 0) & 7); + u32 res; + u32 src; + + src = (s32)DREGs16((Opcode /*>> 0*/) & 7); res = (s32)DREGs16((Opcode >> 9) & 7); res = ((s32)res) * ((s32)src); flag_N = res >> 24; flag_NotZ = res; flag_V = flag_C = 0; DREGu32((Opcode >> 9) & 7) = res; -#ifdef USE_CYCLONE_TIMING -RET(54) +#ifdef OPCODES_M68000 + RET(38 + bitset_count(src ^ (src << 1)) * 2) #else -RET(50) + RET(27) #endif } @@ -34429,10 +39698,9 @@ RET(50) OPCODE(0xC1D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); READSX_WORD_F(adr, src) res = (s32)DREGs16((Opcode >> 9) & 7); res = ((s32)res) * ((s32)src); @@ -34440,11 +39708,10 @@ OPCODE(0xC1D0) flag_NotZ = res; flag_V = flag_C = 0; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -#ifdef USE_CYCLONE_TIMING -RET(58) +#ifdef OPCODES_M68000 + RET(42 + bitset_count(src ^ (src << 1)) * 2) #else -RET(54) + RET(31) #endif } @@ -34452,11 +39719,10 @@ RET(54) OPCODE(0xC1D8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READSX_WORD_F(adr, src) res = (s32)DREGs16((Opcode >> 9) & 7); res = ((s32)res) * ((s32)src); @@ -34464,11 +39730,10 @@ OPCODE(0xC1D8) flag_NotZ = res; flag_V = flag_C = 0; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -#ifdef USE_CYCLONE_TIMING -RET(58) +#ifdef OPCODES_M68000 + RET(42 + bitset_count(src ^ (src << 1)) * 2) #else -RET(54) + RET(31) #endif } @@ -34476,11 +39741,10 @@ RET(54) OPCODE(0xC1E0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READSX_WORD_F(adr, src) res = (s32)DREGs16((Opcode >> 9) & 7); res = ((s32)res) * ((s32)src); @@ -34488,11 +39752,10 @@ OPCODE(0xC1E0) flag_NotZ = res; flag_V = flag_C = 0; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -#ifdef USE_CYCLONE_TIMING -RET(60) +#ifdef OPCODES_M68000 + RET(44 + bitset_count(src ^ (src << 1)) * 2) #else -RET(56) + RET(32) #endif } @@ -34500,11 +39763,10 @@ RET(56) OPCODE(0xC1E8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READSX_WORD_F(adr, src) res = (s32)DREGs16((Opcode >> 9) & 7); res = ((s32)res) * ((s32)src); @@ -34512,11 +39774,10 @@ OPCODE(0xC1E8) flag_NotZ = res; flag_V = flag_C = 0; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -#ifdef USE_CYCLONE_TIMING -RET(62) +#ifdef OPCODES_M68000 + RET(46 + bitset_count(src ^ (src << 1)) * 2) #else -RET(58) + RET(32) #endif } @@ -34524,11 +39785,10 @@ RET(58) OPCODE(0xC1F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READSX_WORD_F(adr, src) res = (s32)DREGs16((Opcode >> 9) & 7); res = ((s32)res) * ((s32)src); @@ -34536,11 +39796,10 @@ OPCODE(0xC1F0) flag_NotZ = res; flag_V = flag_C = 0; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -#ifdef USE_CYCLONE_TIMING -RET(64) +#ifdef OPCODES_M68000 + RET(48 + bitset_count(src ^ (src << 1)) * 2) #else -RET(60) + RET(34) #endif } @@ -34548,10 +39807,9 @@ RET(60) OPCODE(0xC1F8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - PRE_IO READSX_WORD_F(adr, src) res = (s32)DREGs16((Opcode >> 9) & 7); res = ((s32)res) * ((s32)src); @@ -34559,11 +39817,10 @@ OPCODE(0xC1F8) flag_NotZ = res; flag_V = flag_C = 0; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -#ifdef USE_CYCLONE_TIMING -RET(62) +#ifdef OPCODES_M68000 + RET(46 + bitset_count(src ^ (src << 1)) * 2) #else -RET(58) + RET(31) #endif } @@ -34571,10 +39828,9 @@ RET(58) OPCODE(0xC1F9) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(adr); - PRE_IO READSX_WORD_F(adr, src) res = (s32)DREGs16((Opcode >> 9) & 7); res = ((s32)res) * ((s32)src); @@ -34582,11 +39838,10 @@ OPCODE(0xC1F9) flag_NotZ = res; flag_V = flag_C = 0; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -#ifdef USE_CYCLONE_TIMING -RET(66) +#ifdef OPCODES_M68000 + RET(50 + bitset_count(src ^ (src << 1)) * 2) #else -RET(62) + RET(31) #endif } @@ -34594,11 +39849,10 @@ RET(62) OPCODE(0xC1FA) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READSX_WORD_F(adr, src) res = (s32)DREGs16((Opcode >> 9) & 7); res = ((s32)res) * ((s32)src); @@ -34606,11 +39860,10 @@ OPCODE(0xC1FA) flag_NotZ = res; flag_V = flag_C = 0; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -#ifdef USE_CYCLONE_TIMING -RET(62) +#ifdef OPCODES_M68000 + RET(46 + bitset_count(src ^ (src << 1)) * 2) #else -RET(58) + RET(32) #endif } @@ -34618,11 +39871,10 @@ RET(58) OPCODE(0xC1FB) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READSX_WORD_F(adr, src) res = (s32)DREGs16((Opcode >> 9) & 7); res = ((s32)res) * ((s32)src); @@ -34630,20 +39882,19 @@ OPCODE(0xC1FB) flag_NotZ = res; flag_V = flag_C = 0; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -#ifdef USE_CYCLONE_TIMING -RET(64) +#ifdef OPCODES_M68000 + RET(48 + bitset_count(src ^ (src << 1)) * 2) #else -RET(60) + RET(34) #endif } // MULS OPCODE(0xC1FC) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; + FETCH_SWORD(src); res = (s32)DREGs16((Opcode >> 9) & 7); res = ((s32)res) * ((s32)src); @@ -34651,10 +39902,10 @@ OPCODE(0xC1FC) flag_NotZ = res; flag_V = flag_C = 0; DREGu32((Opcode >> 9) & 7) = res; -#ifdef USE_CYCLONE_TIMING -RET(58) +#ifdef OPCODES_M68000 + RET(42 + bitset_count(src ^ (src << 1)) * 2) #else -RET(54) + RET(29) #endif } @@ -34662,11 +39913,10 @@ RET(54) OPCODE(0xC1DF) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7); AREG(7) += 2; - PRE_IO READSX_WORD_F(adr, src) res = (s32)DREGs16((Opcode >> 9) & 7); res = ((s32)res) * ((s32)src); @@ -34674,11 +39924,10 @@ OPCODE(0xC1DF) flag_NotZ = res; flag_V = flag_C = 0; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -#ifdef USE_CYCLONE_TIMING -RET(58) +#ifdef OPCODES_M68000 + RET(42 + bitset_count(src ^ (src << 1)) * 2) #else -RET(54) + RET(31) #endif } @@ -34686,11 +39935,10 @@ RET(54) OPCODE(0xC1E7) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READSX_WORD_F(adr, src) res = (s32)DREGs16((Opcode >> 9) & 7); res = ((s32)res) * ((s32)src); @@ -34698,91 +39946,99 @@ OPCODE(0xC1E7) flag_NotZ = res; flag_V = flag_C = 0; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -#ifdef USE_CYCLONE_TIMING -RET(60) +#ifdef OPCODES_M68000 + RET(44 + bitset_count(src ^ (src << 1)) * 2) #else -RET(56) + RET(32) #endif } // EXGDD OPCODE(0xC140) { - u32 adr, res; - u32 src, dst; - - res = DREGu32((Opcode >> 0) & 7); + u32 res; + u32 src; + + res = DREGu32((Opcode /*>> 0*/) & 7); src = DREGu32((Opcode >> 9) & 7); DREGu32((Opcode >> 9) & 7) = res; res = src; - DREGu32((Opcode >> 0) & 7) = res; -RET(6) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6) +#else + RET(2) +#endif } // EXGAA OPCODE(0xC148) { - u32 adr, res; - u32 src, dst; - - res = AREGu32((Opcode >> 0) & 7); + u32 res; + u32 src; + + res = AREGu32((Opcode /*>> 0*/) & 7); src = AREGu32((Opcode >> 9) & 7); AREG((Opcode >> 9) & 7) = res; res = src; - AREG((Opcode >> 0) & 7) = res; -RET(6) + AREG((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6) +#else + RET(2) +#endif } // EXGAD OPCODE(0xC188) { - u32 adr, res; - u32 src, dst; - - res = AREGu32((Opcode >> 0) & 7); + u32 res; + u32 src; + + res = AREGu32((Opcode /*>> 0*/) & 7); src = DREGu32((Opcode >> 9) & 7); DREGu32((Opcode >> 9) & 7) = res; res = src; - AREG((Opcode >> 0) & 7) = res; -RET(6) + AREG((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6) +#else + RET(2) +#endif } // ADDaD OPCODE(0xD000) { - u32 adr, res; + u32 res; u32 src, dst; - - src = DREGu8((Opcode >> 0) & 7); + + src = DREGu8((Opcode /*>> 0*/) & 7); dst = DREGu8((Opcode >> 9) & 7); res = dst + src; flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; DREGu8((Opcode >> 9) & 7) = res; -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // ADDaD OPCODE(0xD008) { - u32 adr, res; - u32 src, dst; - // can't read byte from Ax registers ! m68kcontext.execinfo |= M68K_FAULTED; - io_cycle_counter = 0; -/* - goto famec_Exec_End; - dst = DREGu8((Opcode >> 9) & 7); - res = dst + src; - flag_N = flag_X = flag_C = res; - flag_V = (src ^ res) & (dst ^ res); - flag_NotZ = res & 0xFF; - DREGu8((Opcode >> 9) & 7) = res; -*/ -RET(4) +#ifdef OPCODES_M68000 + m68kcontext.io_cycle_counter = 4; + RET(4) +#else + m68kcontext.io_cycle_counter = 2; + RET(2) +#endif } // ADDaD @@ -34790,9 +40046,8 @@ OPCODE(0xD010) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst + src; @@ -34800,8 +40055,11 @@ OPCODE(0xD010) flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // ADDaD @@ -34809,10 +40067,9 @@ OPCODE(0xD018) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst + src; @@ -34820,8 +40077,11 @@ OPCODE(0xD018) flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // ADDaD @@ -34829,10 +40089,9 @@ OPCODE(0xD020) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst + src; @@ -34840,8 +40099,11 @@ OPCODE(0xD020) flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(7) +#endif } // ADDaD @@ -34849,10 +40111,9 @@ OPCODE(0xD028) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst + src; @@ -34860,8 +40121,11 @@ OPCODE(0xD028) flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // ADDaD @@ -34869,10 +40133,9 @@ OPCODE(0xD030) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst + src; @@ -34880,8 +40143,11 @@ OPCODE(0xD030) flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // ADDaD @@ -34889,9 +40155,8 @@ OPCODE(0xD038) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst + src; @@ -34899,8 +40164,11 @@ OPCODE(0xD038) flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // ADDaD @@ -34908,9 +40176,8 @@ OPCODE(0xD039) { u32 adr, res; u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst + src; @@ -34918,8 +40185,11 @@ OPCODE(0xD039) flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // ADDaD @@ -34927,10 +40197,9 @@ OPCODE(0xD03A) { u32 adr, res; u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst + src; @@ -34938,8 +40207,11 @@ OPCODE(0xD03A) flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // ADDaD @@ -34947,10 +40219,9 @@ OPCODE(0xD03B) { u32 adr, res; u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst + src; @@ -34958,16 +40229,19 @@ OPCODE(0xD03B) flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // ADDaD OPCODE(0xD03C) { - u32 adr, res; + u32 res; u32 src, dst; - + FETCH_BYTE(src); dst = DREGu8((Opcode >> 9) & 7); res = dst + src; @@ -34975,7 +40249,11 @@ OPCODE(0xD03C) flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; DREGu8((Opcode >> 9) & 7) = res; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // ADDaD @@ -34983,10 +40261,9 @@ OPCODE(0xD01F) { u32 adr, res; u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst + src; @@ -34994,8 +40271,11 @@ OPCODE(0xD01F) flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // ADDaD @@ -35003,10 +40283,9 @@ OPCODE(0xD027) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, src) dst = DREGu8((Opcode >> 9) & 7); res = dst + src; @@ -35014,40 +40293,51 @@ OPCODE(0xD027) flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; DREGu8((Opcode >> 9) & 7) = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(7) +#endif } // ADDaD OPCODE(0xD040) { - u32 adr, res; + u32 res; u32 src, dst; - - src = DREGu16((Opcode >> 0) & 7); + + src = DREGu16((Opcode /*>> 0*/) & 7); dst = DREGu16((Opcode >> 9) & 7); res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; DREGu16((Opcode >> 9) & 7) = res; -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // ADDaD OPCODE(0xD048) { - u32 adr, res; + u32 res; u32 src, dst; - - src = AREGu16((Opcode >> 0) & 7); + + src = AREGu16((Opcode /*>> 0*/) & 7); dst = DREGu16((Opcode >> 9) & 7); res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; DREGu16((Opcode >> 9) & 7) = res; -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // ADDaD @@ -35055,9 +40345,8 @@ OPCODE(0xD050) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst + src; @@ -35065,8 +40354,11 @@ OPCODE(0xD050) flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // ADDaD @@ -35074,10 +40366,9 @@ OPCODE(0xD058) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst + src; @@ -35085,8 +40376,11 @@ OPCODE(0xD058) flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // ADDaD @@ -35094,10 +40388,9 @@ OPCODE(0xD060) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst + src; @@ -35105,8 +40398,11 @@ OPCODE(0xD060) flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(7) +#endif } // ADDaD @@ -35114,10 +40410,9 @@ OPCODE(0xD068) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst + src; @@ -35125,8 +40420,11 @@ OPCODE(0xD068) flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // ADDaD @@ -35134,10 +40432,9 @@ OPCODE(0xD070) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst + src; @@ -35145,8 +40442,11 @@ OPCODE(0xD070) flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // ADDaD @@ -35154,9 +40454,8 @@ OPCODE(0xD078) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst + src; @@ -35164,8 +40463,11 @@ OPCODE(0xD078) flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // ADDaD @@ -35173,9 +40475,8 @@ OPCODE(0xD079) { u32 adr, res; u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst + src; @@ -35183,8 +40484,11 @@ OPCODE(0xD079) flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // ADDaD @@ -35192,10 +40496,9 @@ OPCODE(0xD07A) { u32 adr, res; u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst + src; @@ -35203,8 +40506,11 @@ OPCODE(0xD07A) flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(7) +#endif } // ADDaD @@ -35212,10 +40518,9 @@ OPCODE(0xD07B) { u32 adr, res; u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst + src; @@ -35223,16 +40528,19 @@ OPCODE(0xD07B) flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // ADDaD OPCODE(0xD07C) { - u32 adr, res; + u32 res; u32 src, dst; - + FETCH_WORD(src); dst = DREGu16((Opcode >> 9) & 7); res = dst + src; @@ -35240,7 +40548,11 @@ OPCODE(0xD07C) flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; DREGu16((Opcode >> 9) & 7) = res; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(4) +#endif } // ADDaD @@ -35248,10 +40560,9 @@ OPCODE(0xD05F) { u32 adr, res; u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst + src; @@ -35259,8 +40570,11 @@ OPCODE(0xD05F) flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // ADDaD @@ -35268,10 +40582,9 @@ OPCODE(0xD067) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, src) dst = DREGu16((Opcode >> 9) & 7); res = dst + src; @@ -35279,17 +40592,20 @@ OPCODE(0xD067) flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; DREGu16((Opcode >> 9) & 7) = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(10) +#else + RET(7) +#endif } // ADDaD OPCODE(0xD080) { - u32 adr, res; + u32 res; u32 src, dst; - - src = DREGu32((Opcode >> 0) & 7); + + src = DREGu32((Opcode /*>> 0*/) & 7); dst = DREGu32((Opcode >> 9) & 7); res = dst + src; flag_NotZ = res; @@ -35297,16 +40613,20 @@ OPCODE(0xD080) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(2) +#endif } // ADDaD OPCODE(0xD088) { - u32 adr, res; + u32 res; u32 src, dst; - - src = AREGu32((Opcode >> 0) & 7); + + src = AREGu32((Opcode /*>> 0*/) & 7); dst = DREGu32((Opcode >> 9) & 7); res = dst + src; flag_NotZ = res; @@ -35314,7 +40634,11 @@ OPCODE(0xD088) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(2) +#endif } // ADDaD @@ -35322,9 +40646,8 @@ OPCODE(0xD090) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst + src; @@ -35333,8 +40656,11 @@ OPCODE(0xD090) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(6) +#endif } // ADDaD @@ -35342,10 +40668,9 @@ OPCODE(0xD098) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst + src; @@ -35354,8 +40679,11 @@ OPCODE(0xD098) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(6) +#endif } // ADDaD @@ -35363,10 +40691,9 @@ OPCODE(0xD0A0) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst + src; @@ -35375,8 +40702,11 @@ OPCODE(0xD0A0) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // ADDaD @@ -35384,10 +40714,9 @@ OPCODE(0xD0A8) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst + src; @@ -35396,8 +40725,11 @@ OPCODE(0xD0A8) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(7) +#endif } // ADDaD @@ -35405,10 +40737,9 @@ OPCODE(0xD0B0) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst + src; @@ -35417,8 +40748,11 @@ OPCODE(0xD0B0) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // ADDaD @@ -35426,9 +40760,8 @@ OPCODE(0xD0B8) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst + src; @@ -35437,8 +40770,11 @@ OPCODE(0xD0B8) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(6) +#endif } // ADDaD @@ -35446,9 +40782,8 @@ OPCODE(0xD0B9) { u32 adr, res; u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst + src; @@ -35457,8 +40792,11 @@ OPCODE(0xD0B9) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(6) +#endif } // ADDaD @@ -35466,10 +40804,9 @@ OPCODE(0xD0BA) { u32 adr, res; u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst + src; @@ -35478,8 +40815,11 @@ OPCODE(0xD0BA) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(7) +#endif } // ADDaD @@ -35487,10 +40827,9 @@ OPCODE(0xD0BB) { u32 adr, res; u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst + src; @@ -35499,16 +40838,19 @@ OPCODE(0xD0BB) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // ADDaD OPCODE(0xD0BC) { - u32 adr, res; + u32 res; u32 src, dst; - + FETCH_LONG(src); dst = DREGu32((Opcode >> 9) & 7); res = dst + src; @@ -35517,7 +40859,11 @@ OPCODE(0xD0BC) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // ADDaD @@ -35525,10 +40871,9 @@ OPCODE(0xD09F) { u32 adr, res; u32 src, dst; - + adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst + src; @@ -35537,8 +40882,11 @@ OPCODE(0xD09F) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(6) +#endif } // ADDaD @@ -35546,10 +40894,9 @@ OPCODE(0xD0A7) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, src) dst = DREGu32((Opcode >> 9) & 7); res = dst + src; @@ -35558,8 +40905,11 @@ OPCODE(0xD0A7) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // ADDDa @@ -35567,18 +40917,20 @@ OPCODE(0xD110) { u32 adr, res; u32 src, dst; - + src = DREGu8((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, dst) res = dst + src; flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // ADDDa @@ -35586,19 +40938,21 @@ OPCODE(0xD118) { u32 adr, res; u32 src, dst; - + src = DREGu8((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 1; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 1; READ_BYTE_F(adr, dst) res = dst + src; flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // ADDDa @@ -35606,19 +40960,21 @@ OPCODE(0xD120) { u32 adr, res; u32 src, dst; - + src = DREGu8((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, dst) res = dst + src; flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // ADDDa @@ -35626,19 +40982,21 @@ OPCODE(0xD128) { u32 adr, res; u32 src, dst; - + src = DREGu8((Opcode >> 9) & 7); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_BYTE_F(adr, dst) res = dst + src; flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(9) +#endif } // ADDDa @@ -35646,19 +41004,21 @@ OPCODE(0xD130) { u32 adr, res; u32 src, dst; - + src = DREGu8((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_BYTE_F(adr, dst) res = dst + src; flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(11) +#endif } // ADDDa @@ -35666,18 +41026,20 @@ OPCODE(0xD138) { u32 adr, res; u32 src, dst; - + src = DREGu8((Opcode >> 9) & 7); FETCH_SWORD(adr); - PRE_IO READ_BYTE_F(adr, dst) res = dst + src; flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // ADDDa @@ -35685,18 +41047,20 @@ OPCODE(0xD139) { u32 adr, res; u32 src, dst; - + src = DREGu8((Opcode >> 9) & 7); FETCH_LONG(adr); - PRE_IO READ_BYTE_F(adr, dst) res = dst + src; flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // ADDDa @@ -35704,19 +41068,21 @@ OPCODE(0xD11F) { u32 adr, res; u32 src, dst; - + src = DREGu8((Opcode >> 9) & 7); adr = AREG(7); AREG(7) += 2; - PRE_IO READ_BYTE_F(adr, dst) res = dst + src; flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // ADDDa @@ -35724,19 +41090,21 @@ OPCODE(0xD127) { u32 adr, res; u32 src, dst; - + src = DREGu8((Opcode >> 9) & 7); adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, dst) res = dst + src; flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ = res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // ADDDa @@ -35744,18 +41112,20 @@ OPCODE(0xD150) { u32 adr, res; u32 src, dst; - + src = DREGu16((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, dst) res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // ADDDa @@ -35763,19 +41133,21 @@ OPCODE(0xD158) { u32 adr, res; u32 src, dst; - + src = DREGu16((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, dst) res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // ADDDa @@ -35783,19 +41155,21 @@ OPCODE(0xD160) { u32 adr, res; u32 src, dst; - + src = DREGu16((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, dst) res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // ADDDa @@ -35803,19 +41177,21 @@ OPCODE(0xD168) { u32 adr, res; u32 src, dst; - + src = DREGu16((Opcode >> 9) & 7); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, dst) res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(9) +#endif } // ADDDa @@ -35823,19 +41199,21 @@ OPCODE(0xD170) { u32 adr, res; u32 src, dst; - + src = DREGu16((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, dst) res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(11) +#endif } // ADDDa @@ -35843,18 +41221,20 @@ OPCODE(0xD178) { u32 adr, res; u32 src, dst; - + src = DREGu16((Opcode >> 9) & 7); FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, dst) res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(8) +#endif } // ADDDa @@ -35862,18 +41242,20 @@ OPCODE(0xD179) { u32 adr, res; u32 src, dst; - + src = DREGu16((Opcode >> 9) & 7); FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, dst) res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // ADDDa @@ -35881,19 +41263,21 @@ OPCODE(0xD15F) { u32 adr, res; u32 src, dst; - + src = DREGu16((Opcode >> 9) & 7); adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, dst) res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(8) +#endif } // ADDDa @@ -35901,19 +41285,21 @@ OPCODE(0xD167) { u32 adr, res; u32 src, dst; - + src = DREGu16((Opcode >> 9) & 7); adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, dst) res = dst + src; flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ = res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(9) +#endif } // ADDDa @@ -35921,10 +41307,9 @@ OPCODE(0xD190) { u32 adr, res; u32 src, dst; - + src = DREGu32((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, dst) res = dst + src; flag_NotZ = res; @@ -35932,8 +41317,11 @@ OPCODE(0xD190) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // ADDDa @@ -35941,11 +41329,10 @@ OPCODE(0xD198) { u32 adr, res; u32 src, dst; - + src = DREGu32((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READ_LONG_F(adr, dst) res = dst + src; flag_NotZ = res; @@ -35953,8 +41340,11 @@ OPCODE(0xD198) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // ADDDa @@ -35962,11 +41352,10 @@ OPCODE(0xD1A0) { u32 adr, res; u32 src, dst; - + src = DREGu32((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, dst) res = dst + src; flag_NotZ = res; @@ -35974,8 +41363,11 @@ OPCODE(0xD1A0) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(9) +#endif } // ADDDa @@ -35983,11 +41375,10 @@ OPCODE(0xD1A8) { u32 adr, res; u32 src, dst; - + src = DREGu32((Opcode >> 9) & 7); FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_LONG_F(adr, dst) res = dst + src; flag_NotZ = res; @@ -35995,8 +41386,11 @@ OPCODE(0xD1A8) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(9) +#endif } // ADDDa @@ -36004,11 +41398,10 @@ OPCODE(0xD1B0) { u32 adr, res; u32 src, dst; - + src = DREGu32((Opcode >> 9) & 7); - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_LONG_F(adr, dst) res = dst + src; flag_NotZ = res; @@ -36016,8 +41409,11 @@ OPCODE(0xD1B0) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(26) +#ifdef OPCODES_M68000 + RET(26) +#else + RET(11) +#endif } // ADDDa @@ -36025,10 +41421,9 @@ OPCODE(0xD1B8) { u32 adr, res; u32 src, dst; - + src = DREGu32((Opcode >> 9) & 7); FETCH_SWORD(adr); - PRE_IO READ_LONG_F(adr, dst) res = dst + src; flag_NotZ = res; @@ -36036,8 +41431,11 @@ OPCODE(0xD1B8) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(24) +#ifdef OPCODES_M68000 + RET(24) +#else + RET(8) +#endif } // ADDDa @@ -36045,10 +41443,9 @@ OPCODE(0xD1B9) { u32 adr, res; u32 src, dst; - + src = DREGu32((Opcode >> 9) & 7); FETCH_LONG(adr); - PRE_IO READ_LONG_F(adr, dst) res = dst + src; flag_NotZ = res; @@ -36056,8 +41453,11 @@ OPCODE(0xD1B9) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(28) +#ifdef OPCODES_M68000 + RET(28) +#else + RET(8) +#endif } // ADDDa @@ -36065,11 +41465,10 @@ OPCODE(0xD19F) { u32 adr, res; u32 src, dst; - + src = DREGu32((Opcode >> 9) & 7); adr = AREG(7); AREG(7) += 4; - PRE_IO READ_LONG_F(adr, dst) res = dst + src; flag_NotZ = res; @@ -36077,8 +41476,11 @@ OPCODE(0xD19F) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(8) +#endif } // ADDDa @@ -36086,11 +41488,10 @@ OPCODE(0xD1A7) { u32 adr, res; u32 src, dst; - + src = DREGu32((Opcode >> 9) & 7); adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, dst) res = dst + src; flag_NotZ = res; @@ -36098,49 +41499,60 @@ OPCODE(0xD1A7) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(9) +#endif } // ADDX OPCODE(0xD100) { - u32 adr, res; + u32 res; u32 src, dst; - - src = DREGu8((Opcode >> 0) & 7); + + src = DREGu8((Opcode /*>> 0*/) & 7); dst = DREGu8((Opcode >> 9) & 7); res = dst + src + ((flag_X >> 8) & 1); flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ |= res & 0xFF; DREGu8((Opcode >> 9) & 7) = res; -RET(4) +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // ADDX OPCODE(0xD140) { - u32 adr, res; + u32 res; u32 src, dst; - - src = DREGu16((Opcode >> 0) & 7); + + src = DREGu16((Opcode /*>> 0*/) & 7); dst = DREGu16((Opcode >> 9) & 7); res = dst + src + ((flag_X >> 8) & 1); flag_V = ((src ^ res) & (dst ^ res)) >> 8; flag_N = flag_X = flag_C = res >> 8; flag_NotZ |= res & 0xFFFF; - DREGu16((Opcode >> 9) & 7) = res; -RET(4) + DREGu16((Opcode >> 9) & 7) = res; +#ifdef OPCODES_M68000 + RET(4) +#else + RET(2) +#endif } // ADDX OPCODE(0xD180) { - u32 adr, res; + u32 res; u32 src, dst; - - src = DREGu32((Opcode >> 0) & 7); + + src = DREGu32((Opcode /*>> 0*/) & 7); dst = DREGu32((Opcode >> 9) & 7); res = dst + src + ((flag_X >> 8) & 1); flag_NotZ |= res; @@ -36148,7 +41560,11 @@ OPCODE(0xD180) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; DREGu32((Opcode >> 9) & 7) = res; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(2) +#endif } // ADDXM @@ -36156,10 +41572,9 @@ OPCODE(0xD108) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, src) adr = AREG((Opcode >> 9) & 7) - 1; AREG((Opcode >> 9) & 7) = adr; @@ -36169,8 +41584,11 @@ OPCODE(0xD108) flag_V = (src ^ res) & (dst ^ res); flag_NotZ |= res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(12) +#endif } // ADDXM @@ -36178,10 +41596,9 @@ OPCODE(0xD148) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, src) adr = AREG((Opcode >> 9) & 7) - 2; AREG((Opcode >> 9) & 7) = adr; @@ -36191,8 +41608,11 @@ OPCODE(0xD148) flag_N = flag_X = flag_C = res >> 8; flag_NotZ |= res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(12) +#endif } // ADDXM @@ -36200,10 +41620,9 @@ OPCODE(0xD188) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, src) adr = AREG((Opcode >> 9) & 7) - 4; AREG((Opcode >> 9) & 7) = adr; @@ -36214,8 +41633,11 @@ OPCODE(0xD188) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(30) +#ifdef OPCODES_M68000 + RET(30) +#else + RET(12) +#endif } // ADDX7M @@ -36223,10 +41645,9 @@ OPCODE(0xD10F) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, src) adr = AREG((Opcode >> 9) & 7) - 1; AREG((Opcode >> 9) & 7) = adr; @@ -36235,9 +41656,12 @@ OPCODE(0xD10F) flag_N = flag_X = flag_C = res; flag_V = (src ^ res) & (dst ^ res); flag_NotZ |= res & 0xFF; - WRITE_BYTE_F(adr, res) - POST_IO -RET(18) + WRITE_BYTE_F(adr, res) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(12) +#endif } // ADDX7M @@ -36245,10 +41669,9 @@ OPCODE(0xD14F) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, src) adr = AREG((Opcode >> 9) & 7) - 2; AREG((Opcode >> 9) & 7) = adr; @@ -36258,8 +41681,11 @@ OPCODE(0xD14F) flag_N = flag_X = flag_C = res >> 8; flag_NotZ |= res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(12) +#endif } // ADDX7M @@ -36267,10 +41693,9 @@ OPCODE(0xD18F) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, src) adr = AREG((Opcode >> 9) & 7) - 4; AREG((Opcode >> 9) & 7) = adr; @@ -36281,8 +41706,11 @@ OPCODE(0xD18F) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(30) +#ifdef OPCODES_M68000 + RET(30) +#else + RET(12) +#endif } // ADDXM7 @@ -36290,10 +41718,9 @@ OPCODE(0xDF08) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 1; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 1; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_BYTE_F(adr, src) adr = AREG(7) - 2; AREG(7) = adr; @@ -36303,8 +41730,11 @@ OPCODE(0xDF08) flag_V = (src ^ res) & (dst ^ res); flag_NotZ |= res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(12) +#endif } // ADDXM7 @@ -36312,10 +41742,9 @@ OPCODE(0xDF48) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, src) adr = AREG(7) - 2; AREG(7) = adr; @@ -36325,8 +41754,11 @@ OPCODE(0xDF48) flag_N = flag_X = flag_C = res >> 8; flag_NotZ |= res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(12) +#endif } // ADDXM7 @@ -36334,10 +41766,9 @@ OPCODE(0xDF88) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_LONG_F(adr, src) adr = AREG(7) - 4; AREG(7) = adr; @@ -36348,8 +41779,11 @@ OPCODE(0xDF88) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(30) +#ifdef OPCODES_M68000 + RET(30) +#else + RET(12) +#endif } // ADDX7M7 @@ -36357,10 +41791,9 @@ OPCODE(0xDF0F) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_BYTE_F(adr, src) adr = AREG(7) - 2; AREG(7) = adr; @@ -36370,8 +41803,11 @@ OPCODE(0xDF0F) flag_V = (src ^ res) & (dst ^ res); flag_NotZ |= res & 0xFF; WRITE_BYTE_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(12) +#endif } // ADDX7M7 @@ -36379,10 +41815,9 @@ OPCODE(0xDF4F) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, src) adr = AREG(7) - 2; AREG(7) = adr; @@ -36392,8 +41827,11 @@ OPCODE(0xDF4F) flag_N = flag_X = flag_C = res >> 8; flag_NotZ |= res & 0xFFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(12) +#endif } // ADDX7M7 @@ -36401,10 +41839,9 @@ OPCODE(0xDF8F) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READ_LONG_F(adr, src) adr = AREG(7) - 4; AREG(7) = adr; @@ -36415,34 +41852,45 @@ OPCODE(0xDF8F) flag_V = ((src ^ res) & (dst ^ res)) >> 24; flag_N = res >> 24; WRITE_LONG_F(adr, res) - POST_IO -RET(30) +#ifdef OPCODES_M68000 + RET(30) +#else + RET(12) +#endif } // ADDA OPCODE(0xD0C0) { - u32 adr, res; + u32 res; u32 src, dst; - - src = (s32)DREGs16((Opcode >> 0) & 7); + + src = (s32)DREGs16((Opcode /*>> 0*/) & 7); dst = AREGu32((Opcode >> 9) & 7); res = dst + src; AREG((Opcode >> 9) & 7) = res; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(2) +#endif } // ADDA OPCODE(0xD0C8) { - u32 adr, res; + u32 res; u32 src, dst; - - src = (s32)AREGs16((Opcode >> 0) & 7); + + src = (s32)AREGs16((Opcode /*>> 0*/) & 7); dst = AREGu32((Opcode >> 9) & 7); res = dst + src; AREG((Opcode >> 9) & 7) = res; -RET(8) +#ifdef OPCODES_M68000 + RET(8) +#else + RET(2) +#endif } // ADDA @@ -36450,15 +41898,17 @@ OPCODE(0xD0D0) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst + src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // ADDA @@ -36466,16 +41916,18 @@ OPCODE(0xD0D8) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst + src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // ADDA @@ -36483,16 +41935,18 @@ OPCODE(0xD0E0) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst + src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(7) +#endif } // ADDA @@ -36500,16 +41954,18 @@ OPCODE(0xD0E8) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst + src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // ADDA @@ -36517,16 +41973,18 @@ OPCODE(0xD0F0) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst + src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // ADDA @@ -36534,15 +41992,17 @@ OPCODE(0xD0F8) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst + src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(6) +#endif } // ADDA @@ -36550,15 +42010,17 @@ OPCODE(0xD0F9) { u32 adr, res; u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst + src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(6) +#endif } // ADDA @@ -36566,16 +42028,18 @@ OPCODE(0xD0FA) { u32 adr, res; u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst + src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // ADDA @@ -36583,29 +42047,35 @@ OPCODE(0xD0FB) { u32 adr, res; u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst + src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(9) +#endif } // ADDA OPCODE(0xD0FC) { - u32 adr, res; + u32 res; u32 src, dst; - + FETCH_SWORD(src); dst = AREGu32((Opcode >> 9) & 7); res = dst + src; AREG((Opcode >> 9) & 7) = res; -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(4) +#endif } // ADDA @@ -36613,16 +42083,18 @@ OPCODE(0xD0DF) { u32 adr, res; u32 src, dst; - + adr = AREG(7); AREG(7) += 2; - PRE_IO READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst + src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(10) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(6) +#endif } // ADDA @@ -36630,49 +42102,51 @@ OPCODE(0xD0E7) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READSX_WORD_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst + src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(7) +#endif } // ADDA OPCODE(0xD1C0) { - u32 adr, res; + u32 res; u32 src, dst; - - src = (s32)DREGs32((Opcode >> 0) & 7); + + src = (s32)DREGs32((Opcode /*>> 0*/) & 7); dst = AREGu32((Opcode >> 9) & 7); res = dst + src; AREG((Opcode >> 9) & 7) = res; -#ifdef USE_CYCLONE_TIMING -RET(8) +#ifdef OPCODES_M68000 + RET(8) #else -RET(6) + RET(2) #endif } // ADDA OPCODE(0xD1C8) { - u32 adr, res; + u32 res; u32 src, dst; - - src = (s32)AREGs32((Opcode >> 0) & 7); + + src = (s32)AREGs32((Opcode /*>> 0*/) & 7); dst = AREGu32((Opcode >> 9) & 7); res = dst + src; AREG((Opcode >> 9) & 7) = res; -#ifdef USE_CYCLONE_TIMING -RET(8) +#ifdef OPCODES_M68000 + RET(8) #else -RET(6) + RET(2) #endif } @@ -36681,15 +42155,17 @@ OPCODE(0xD1D0) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst + src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(6) +#endif } // ADDA @@ -36697,16 +42173,18 @@ OPCODE(0xD1D8) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 4; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 4; READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst + src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(6) +#endif } // ADDA @@ -36714,16 +42192,18 @@ OPCODE(0xD1E0) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 4; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7) - 4; + AREG((Opcode /*>> 0*/) & 7) = adr; READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst + src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // ADDA @@ -36731,16 +42211,18 @@ OPCODE(0xD1E8) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst + src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(7) +#endif } // ADDA @@ -36748,16 +42230,18 @@ OPCODE(0xD1F0) { u32 adr, res; u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst + src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // ADDA @@ -36765,15 +42249,17 @@ OPCODE(0xD1F8) { u32 adr, res; u32 src, dst; - + FETCH_SWORD(adr); - PRE_IO READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst + src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(6) +#endif } // ADDA @@ -36781,15 +42267,17 @@ OPCODE(0xD1F9) { u32 adr, res; u32 src, dst; - + FETCH_LONG(adr); - PRE_IO READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst + src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(22) +#ifdef OPCODES_M68000 + RET(22) +#else + RET(6) +#endif } // ADDA @@ -36797,16 +42285,18 @@ OPCODE(0xD1FA) { u32 adr, res; u32 src, dst; - + adr = GET_SWORD + ((u32)(PC) - BasePC); PC++; - PRE_IO READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst + src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(7) +#endif } // ADDA @@ -36814,16 +42304,18 @@ OPCODE(0xD1FB) { u32 adr, res; u32 src, dst; - + adr = (u32)(PC) - BasePC; - DECODE_EXT_WORD - PRE_IO + DECODE_EXT_WORD(&adr); READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst + src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // ADDA @@ -36831,15 +42323,15 @@ OPCODE(0xD1FC) { u32 adr, res; u32 src, dst; - + FETCH_LONG(src); dst = AREGu32((Opcode >> 9) & 7); res = dst + src; AREG((Opcode >> 9) & 7) = res; -#ifdef USE_CYCLONE_TIMING -RET(16) +#ifdef OPCODES_M68000 + RET(16) #else -RET(14) + RET(6) #endif } @@ -36848,16 +42340,18 @@ OPCODE(0xD1DF) { u32 adr, res; u32 src, dst; - + adr = AREG(7); AREG(7) += 4; - PRE_IO READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst + src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(6) +#endif } // ADDA @@ -36865,188 +42359,204 @@ OPCODE(0xD1E7) { u32 adr, res; u32 src, dst; - + adr = AREG(7) - 4; AREG(7) = adr; - PRE_IO READSX_LONG_F(adr, src) dst = AREGu32((Opcode >> 9) & 7); res = dst + src; AREG((Opcode >> 9) & 7) = res; - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(7) +#endif } // ASRk OPCODE(0xE000) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = (((Opcode >> 9) - 1) & 7) + 1; - io_cycle_counter -= sft * 2; - src = (s32)DREGs8((Opcode >> 0) & 7); + src = (s32)DREGs8((Opcode /*>> 0*/) & 7); flag_V = 0; flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft); res = ((s32)src) >> sft; flag_N = res >> 0; flag_NotZ = res; - DREGu8((Opcode >> 0) & 7) = res; -RET(6) + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(6) +#endif } // ASRk OPCODE(0xE040) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = (((Opcode >> 9) - 1) & 7) + 1; - io_cycle_counter -= sft * 2; - src = (s32)DREGs16((Opcode >> 0) & 7); + src = (s32)DREGs16((Opcode /*>> 0*/) & 7); flag_V = 0; flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft); res = ((s32)src) >> sft; flag_N = res >> 8; flag_NotZ = res; - DREGu16((Opcode >> 0) & 7) = res; -RET(6) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(6) +#endif } // ASRk OPCODE(0xE080) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = (((Opcode >> 9) - 1) & 7) + 1; - io_cycle_counter -= sft * 2; - src = (s32)DREGs32((Opcode >> 0) & 7); + src = (s32)DREGs32((Opcode /*>> 0*/) & 7); flag_V = 0; flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft); res = ((s32)src) >> sft; flag_N = res >> 24; flag_NotZ = res; - DREGu32((Opcode >> 0) & 7) = res; -RET(8) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8 + sft * 2) +#else + RET(6) +#endif } // LSRk OPCODE(0xE008) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = (((Opcode >> 9) - 1) & 7) + 1; - io_cycle_counter -= sft * 2; - src = DREGu8((Opcode >> 0) & 7); + src = DREGu8((Opcode /*>> 0*/) & 7); flag_N = flag_V = 0; flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft); res = src >> sft; flag_NotZ = res; - DREGu8((Opcode >> 0) & 7) = res; -RET(6) + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(6) +#endif } // LSRk OPCODE(0xE048) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = (((Opcode >> 9) - 1) & 7) + 1; - io_cycle_counter -= sft * 2; - src = DREGu16((Opcode >> 0) & 7); + src = DREGu16((Opcode /*>> 0*/) & 7); flag_N = flag_V = 0; flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft); res = src >> sft; flag_NotZ = res; - DREGu16((Opcode >> 0) & 7) = res; -RET(6) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(6) +#endif } // LSRk OPCODE(0xE088) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = (((Opcode >> 9) - 1) & 7) + 1; - io_cycle_counter -= sft * 2; - src = DREGu32((Opcode >> 0) & 7); + src = DREGu32((Opcode /*>> 0*/) & 7); flag_N = flag_V = 0; flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft); res = src >> sft; flag_NotZ = res; - DREGu32((Opcode >> 0) & 7) = res; -RET(8) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8 + sft * 2) +#else + RET(6) +#endif } // ROXRk OPCODE(0xE010) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = (((Opcode >> 9) - 1) & 7) + 1; - io_cycle_counter -= sft * 2; - src = DREGu8((Opcode >> 0) & 7); + src = DREGu8((Opcode /*>> 0*/) & 7); src |= (flag_X & M68K_SR_X) << 0; res = (src >> sft) | (src << (9 - sft)); flag_X = flag_C = res >> 0; flag_V = 0; flag_N = res >> 0; flag_NotZ = res & 0x000000FF; - DREGu8((Opcode >> 0) & 7) = res; -RET(6) + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(12) +#endif } // ROXRk OPCODE(0xE050) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = (((Opcode >> 9) - 1) & 7) + 1; - io_cycle_counter -= sft * 2; - src = DREGu16((Opcode >> 0) & 7); + src = DREGu16((Opcode /*>> 0*/) & 7); src |= (flag_X & M68K_SR_X) << 8; res = (src >> sft) | (src << (17 - sft)); flag_X = flag_C = res >> 8; flag_V = 0; flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; - DREGu16((Opcode >> 0) & 7) = res; -RET(6) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(12) +#endif } // ROXRk OPCODE(0xE090) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = (((Opcode >> 9) - 1) & 7) + 1; - io_cycle_counter -= sft * 2; - src = DREGu32((Opcode >> 0) & 7); + src = DREGu32((Opcode /*>> 0*/) & 7); flag_C = src << ((M68K_SR_C_SFT + 1) - sft); if (sft == 1) res = (src >> 1) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1))); else res = (src >> sft) | (src << (33 - sft)) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + sft))); @@ -37054,88 +42564,96 @@ OPCODE(0xE090) flag_V = 0; flag_N = res >> 24; flag_NotZ = res; - DREGu32((Opcode >> 0) & 7) = res; -RET(8) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8 + sft * 2) +#else + RET(12) +#endif } // RORk OPCODE(0xE018) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = (((Opcode >> 9) - 1) & 7) + 1; - io_cycle_counter -= sft * 2; - src = DREGu8((Opcode >> 0) & 7); + src = DREGu8((Opcode /*>> 0*/) & 7); flag_V = 0; flag_C = src << ((M68K_SR_C_SFT + 1) - sft); res = (src >> sft) | (src << (8 - sft)); flag_N = res >> 0; flag_NotZ = res & 0x000000FF; - DREGu8((Opcode >> 0) & 7) = res; -RET(6) + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(8) +#endif } // RORk OPCODE(0xE058) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = (((Opcode >> 9) - 1) & 7) + 1; - io_cycle_counter -= sft * 2; - src = DREGu16((Opcode >> 0) & 7); + src = DREGu16((Opcode /*>> 0*/) & 7); flag_V = 0; flag_C = src << ((M68K_SR_C_SFT + 1) - sft); res = (src >> sft) | (src << (16 - sft)); flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; - DREGu16((Opcode >> 0) & 7) = res; -RET(6) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(8) +#endif } // RORk OPCODE(0xE098) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = (((Opcode >> 9) - 1) & 7) + 1; - io_cycle_counter -= sft * 2; - src = DREGu32((Opcode >> 0) & 7); + src = DREGu32((Opcode /*>> 0*/) & 7); flag_V = 0; flag_C = src << ((M68K_SR_C_SFT + 1) - sft); res = (src >> sft) | (src << (32 - sft)); flag_N = res >> 24; flag_NotZ = res; - DREGu32((Opcode >> 0) & 7) = res; -RET(8) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8 + sft * 2) +#else + RET(8) +#endif } // ASLk OPCODE(0xE100) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = (((Opcode >> 9) - 1) & 7) + 1; - io_cycle_counter -= sft * 2; - src = DREGu8((Opcode >> 0) & 7); + src = DREGu8((Opcode /*>> 0*/) & 7); if (sft < 8) { flag_X = flag_C = src << (0 + sft); res = src << sft; flag_N = res >> 0; flag_NotZ = res & 0x000000FF; - DREGu8((Opcode >> 0) & 7) = res; + DREGu8((Opcode /*>> 0*/) & 7) = res; flag_V = 0; if ((sft > 7) && (src)) flag_V = M68K_SR_V; else @@ -37144,182 +42662,202 @@ OPCODE(0xE100) src &= msk; if ((src) && (src != msk)) flag_V = M68K_SR_V; } - RET(6) +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(8) +#endif } - + if (src) flag_V = M68K_SR_V; else flag_V = 0; flag_X = flag_C = src << M68K_SR_C_SFT; res = 0; - DREGu8((Opcode >> 0) & 7) = res; + DREGu8((Opcode /*>> 0*/) & 7) = res; flag_N = 0; flag_NotZ = 0; -RET(6) +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(8) +#endif } // ASLk OPCODE(0xE140) { - u32 adr, res; - u32 src, dst; - - u32 sft; - - sft = (((Opcode >> 9) - 1) & 7) + 1; - io_cycle_counter -= sft * 2; - src = DREGu16((Opcode >> 0) & 7); - flag_X = flag_C = src >> (8 - sft); - res = src << sft; - flag_N = res >> 8; - flag_NotZ = res & 0x0000FFFF; - DREGu16((Opcode >> 0) & 7) = res; - flag_V = 0; - { - u32 msk = (((s32)0x80000000) >> (sft + 16)) & 0x0000FFFF; - src &= msk; - if ((src) && (src != msk)) flag_V = M68K_SR_V; - } -RET(6) + u32 res; + u32 src; + u32 sft; + + sft = (((Opcode >> 9) - 1) & 7) + 1; + src = DREGu16((Opcode /*>> 0*/) & 7); + flag_X = flag_C = src >> (8 - sft); + res = src << sft; + flag_N = res >> 8; + flag_NotZ = res & 0x0000FFFF; + DREGu16((Opcode /*>> 0*/) & 7) = res; + flag_V = 0; + { + u32 msk = (((s32)0x80000000) >> (sft + 16)) & 0x0000FFFF; + src &= msk; + if ((src) && (src != msk)) flag_V = M68K_SR_V; + } +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(8) +#endif } // ASLk OPCODE(0xE180) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = (((Opcode >> 9) - 1) & 7) + 1; - io_cycle_counter -= sft * 2; - src = DREGu32((Opcode >> 0) & 7); - flag_X = flag_C = src >> (24 - sft); - res = src << sft; - flag_N = res >> 24; - flag_NotZ = res & 0xFFFFFFFF; - DREGu32((Opcode >> 0) & 7) = res; - flag_V = 0; - { - u32 msk = (((s32)0x80000000) >> (sft + 0)) & 0xFFFFFFFF; - src &= msk; - if ((src) && (src != msk)) flag_V = M68K_SR_V; - } -RET(8) + src = DREGu32((Opcode /*>> 0*/) & 7); + flag_X = flag_C = src >> (24 - sft); + res = src << sft; + flag_N = res >> 24; + flag_NotZ = res & 0xFFFFFFFF; + DREGu32((Opcode /*>> 0*/) & 7) = res; + flag_V = 0; + { + u32 msk = (((s32)0x80000000) >> (sft + 0)) & 0xFFFFFFFF; + src &= msk; + if ((src) && (src != msk)) flag_V = M68K_SR_V; + } +#ifdef OPCODES_M68000 + RET(8 + sft * 2) +#else + RET(8) +#endif } // LSLk OPCODE(0xE108) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = (((Opcode >> 9) - 1) & 7) + 1; - io_cycle_counter -= sft * 2; - src = DREGu8((Opcode >> 0) & 7); + src = DREGu8((Opcode /*>> 0*/) & 7); flag_V = 0; flag_X = flag_C = src << (0 + sft); res = src << sft; flag_N = res >> 0; flag_NotZ = res & 0x000000FF; - DREGu8((Opcode >> 0) & 7) = res; -RET(6) + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(6) +#endif } // LSLk OPCODE(0xE148) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = (((Opcode >> 9) - 1) & 7) + 1; - io_cycle_counter -= sft * 2; - src = DREGu16((Opcode >> 0) & 7); + src = DREGu16((Opcode /*>> 0*/) & 7); flag_V = 0; flag_X = flag_C = src >> (8 - sft); res = src << sft; flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; - DREGu16((Opcode >> 0) & 7) = res; -RET(6) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(6) +#endif } // LSLk OPCODE(0xE188) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = (((Opcode >> 9) - 1) & 7) + 1; - io_cycle_counter -= sft * 2; - src = DREGu32((Opcode >> 0) & 7); + src = DREGu32((Opcode /*>> 0*/) & 7); flag_V = 0; flag_X = flag_C = src >> (24 - sft); res = src << sft; flag_N = res >> 24; flag_NotZ = res & 0xFFFFFFFF; - DREGu32((Opcode >> 0) & 7) = res; -RET(8) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8 + sft * 2) +#else + RET(6) +#endif } // ROXLk OPCODE(0xE110) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = (((Opcode >> 9) - 1) & 7) + 1; - io_cycle_counter -= sft * 2; - src = DREGu8((Opcode >> 0) & 7); + src = DREGu8((Opcode /*>> 0*/) & 7); src |= (flag_X & M68K_SR_X) << 0; res = (src << sft) | (src >> (9 - sft)); flag_X = flag_C = res >> 0; flag_V = 0; flag_N = res >> 0; flag_NotZ = res & 0x000000FF; - DREGu8((Opcode >> 0) & 7) = res; -RET(6) + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(12) +#endif } // ROXLk OPCODE(0xE150) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = (((Opcode >> 9) - 1) & 7) + 1; - io_cycle_counter -= sft * 2; - src = DREGu16((Opcode >> 0) & 7); + src = DREGu16((Opcode /*>> 0*/) & 7); src |= (flag_X & M68K_SR_X) << 8; res = (src << sft) | (src >> (17 - sft)); flag_X = flag_C = res >> 8; flag_V = 0; flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; - DREGu16((Opcode >> 0) & 7) = res; -RET(6) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(12) +#endif } // ROXLk OPCODE(0xE190) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = (((Opcode >> 9) - 1) & 7) + 1; - io_cycle_counter -= sft * 2; - src = DREGu32((Opcode >> 0) & 7); + src = DREGu32((Opcode /*>> 0*/) & 7); flag_C = src >> ((32 - M68K_SR_C_SFT) - sft); if (sft == 1) res = (src << 1) | ((flag_X & M68K_SR_X) >> ((M68K_SR_X_SFT + 1) - 1)); else res = (src << sft) | (src >> (33 - sft)) | ((flag_X & M68K_SR_X) >> ((M68K_SR_X_SFT + 1) - sft)); @@ -37327,83 +42865,91 @@ OPCODE(0xE190) flag_V = 0; flag_N = res >> 24; flag_NotZ = res; - DREGu32((Opcode >> 0) & 7) = res; -RET(8) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8 + sft * 2) +#else + RET(12) +#endif } // ROLk OPCODE(0xE118) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = (((Opcode >> 9) - 1) & 7) + 1; - io_cycle_counter -= sft * 2; - src = DREGu8((Opcode >> 0) & 7); + src = DREGu8((Opcode /*>> 0*/) & 7); flag_V = 0; flag_C = src << (0 + sft); res = (src << sft) | (src >> (8 - sft)); flag_N = res >> 0; flag_NotZ = res & 0x000000FF; - DREGu8((Opcode >> 0) & 7) = res; -RET(6) + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(8) +#endif } // ROLk OPCODE(0xE158) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = (((Opcode >> 9) - 1) & 7) + 1; - io_cycle_counter -= sft * 2; - src = DREGu16((Opcode >> 0) & 7); + src = DREGu16((Opcode /*>> 0*/) & 7); flag_V = 0; flag_C = src >> (8 - sft); res = (src << sft) | (src >> (16 - sft)); flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; - DREGu16((Opcode >> 0) & 7) = res; -RET(6) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(8) +#endif } // ROLk OPCODE(0xE198) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = (((Opcode >> 9) - 1) & 7) + 1; - io_cycle_counter -= sft * 2; - src = DREGu32((Opcode >> 0) & 7); + src = DREGu32((Opcode /*>> 0*/) & 7); flag_V = 0; flag_C = src >> (24 - sft); res = (src << sft) | (src >> (32 - sft)); flag_N = res >> 24; flag_NotZ = res; - DREGu32((Opcode >> 0) & 7) = res; -RET(8) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8 + sft * 2) +#else + RET(8) +#endif } // ASRD OPCODE(0xE020) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = DREG((Opcode >> 9) & 7) & 0x3F; - src = (s32)DREGs8((Opcode >> 0) & 7); + src = (s32)DREGs8((Opcode /*>> 0*/) & 7); if (sft) { - io_cycle_counter -= sft * 2; if (sft < 8) { flag_V = 0; @@ -37411,10 +42957,14 @@ OPCODE(0xE020) res = ((s32)src) >> sft; flag_N = res >> 0; flag_NotZ = res; - DREGu8((Opcode >> 0) & 7) = res; - RET(6) + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(6) +#endif } - + if (src & (1 << 7)) { flag_N = M68K_SR_N; @@ -37423,40 +42973,50 @@ OPCODE(0xE020) flag_C = M68K_SR_C; flag_X = M68K_SR_X; res = 0x000000FF; - DREGu8((Opcode >> 0) & 7) = res; - RET(6) + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(6) +#endif } - + flag_N = 0; flag_NotZ = 0; flag_V = 0; flag_C = 0; flag_X = 0; res = 0; - DREGu8((Opcode >> 0) & 7) = res; - RET(6) + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(6) +#endif } - + flag_V = 0; flag_C = 0; flag_N = src >> 0; flag_NotZ = src; -RET(6) +#ifdef OPCODES_M68000 + RET(6) +#else + RET(6) +#endif } // ASRD OPCODE(0xE060) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = DREG((Opcode >> 9) & 7) & 0x3F; - src = (s32)DREGs16((Opcode >> 0) & 7); + src = (s32)DREGs16((Opcode /*>> 0*/) & 7); if (sft) { - io_cycle_counter -= sft * 2; if (sft < 16) { flag_V = 0; @@ -37464,10 +43024,14 @@ OPCODE(0xE060) res = ((s32)src) >> sft; flag_N = res >> 8; flag_NotZ = res; - DREGu16((Opcode >> 0) & 7) = res; - RET(6) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(6) +#endif } - + if (src & (1 << 15)) { flag_N = M68K_SR_N; @@ -37476,45 +43040,50 @@ OPCODE(0xE060) flag_C = M68K_SR_C; flag_X = M68K_SR_X; res = 0x0000FFFF; - DREGu16((Opcode >> 0) & 7) = res; - RET(6) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(6) +#endif } - + flag_N = 0; flag_NotZ = 0; flag_V = 0; flag_C = 0; flag_X = 0; res = 0; - DREGu16((Opcode >> 0) & 7) = res; - RET(6) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(6) +#endif } - + flag_V = 0; flag_C = 0; flag_N = src >> 8; flag_NotZ = src; -RET(6) +#ifdef OPCODES_M68000 + RET(6) +#else + RET(6) +#endif } // ASRD OPCODE(0xE0A0) { -#ifdef USE_CYCLONE_TIMING -#define CYC 8 -#else -#define CYC 6 -#endif - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = DREG((Opcode >> 9) & 7) & 0x3F; - src = (s32)DREGs32((Opcode >> 0) & 7); + src = (s32)DREGs32((Opcode /*>> 0*/) & 7); if (sft) { - io_cycle_counter -= sft * 2; if (sft < 32) { flag_V = 0; @@ -37522,10 +43091,14 @@ OPCODE(0xE0A0) res = ((s32)src) >> sft; flag_N = res >> 24; flag_NotZ = res; - DREGu32((Opcode >> 0) & 7) = res; - RET(CYC) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8 + sft * 2) +#else + RET(6) +#endif } - + if (src & (1 << 31)) { flag_N = M68K_SR_N; @@ -37534,134 +43107,162 @@ OPCODE(0xE0A0) flag_C = M68K_SR_C; flag_X = M68K_SR_X; res = 0xFFFFFFFF; - DREGu32((Opcode >> 0) & 7) = res; - RET(CYC) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8 + sft * 2) +#else + RET(6) +#endif } - + flag_N = 0; flag_NotZ = 0; flag_V = 0; flag_C = 0; flag_X = 0; res = 0; - DREGu32((Opcode >> 0) & 7) = res; - RET(CYC) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8 + sft * 2) +#else + RET(6) +#endif } - + flag_V = 0; flag_C = 0; flag_N = src >> 24; flag_NotZ = src; -RET(CYC) -#undef CYC +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // LSRD OPCODE(0xE028) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = DREG((Opcode >> 9) & 7) & 0x3F; - src = DREGu8((Opcode >> 0) & 7); + src = DREGu8((Opcode /*>> 0*/) & 7); if (sft) { - io_cycle_counter -= sft * 2; if (sft <= 8) { flag_N = flag_V = 0; flag_X = flag_C = src << ((M68K_SR_C_SFT + 1) - sft); res = src >> sft; flag_NotZ = res; - DREGu8((Opcode >> 0) & 7) = res; - RET(6) + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(6) +#endif } - + flag_X = flag_C = 0; flag_N = 0; flag_NotZ = 0; flag_V = 0; res = 0; - DREGu8((Opcode >> 0) & 7) = res; - RET(6) + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(6) +#endif } - + flag_V = 0; flag_C = 0; flag_N = src >> 0; flag_NotZ = src; -RET(6) +#ifdef OPCODES_M68000 + RET(6) +#else + RET(6) +#endif } // LSRD OPCODE(0xE068) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = DREG((Opcode >> 9) & 7) & 0x3F; - src = DREGu16((Opcode >> 0) & 7); + src = DREGu16((Opcode /*>> 0*/) & 7); if (sft) { - io_cycle_counter -= sft * 2; if (sft <= 16) { flag_N = flag_V = 0; flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT; res = src >> sft; flag_NotZ = res; - DREGu16((Opcode >> 0) & 7) = res; - RET(6) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(6) +#endif } - + flag_X = flag_C = 0; flag_N = 0; flag_NotZ = 0; flag_V = 0; res = 0; - DREGu16((Opcode >> 0) & 7) = res; - RET(6) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(6) +#endif } - + flag_V = 0; flag_C = 0; flag_N = src >> 8; flag_NotZ = src; -RET(6) +#ifdef OPCODES_M68000 + RET(6) +#else + RET(6) +#endif } // LSRD OPCODE(0xE0A8) { -#ifdef USE_CYCLONE_TIMING -#define CYC 8 -#else -#define CYC 6 -#endif - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = DREG((Opcode >> 9) & 7) & 0x3F; - src = DREGu32((Opcode >> 0) & 7); + src = DREGu32((Opcode /*>> 0*/) & 7); if (sft) { - io_cycle_counter -= sft * 2; if (sft < 32) { flag_N = flag_V = 0; flag_X = flag_C = (src >> (sft - 1)) << M68K_SR_C_SFT; res = src >> sft; flag_NotZ = res; - DREGu32((Opcode >> 0) & 7) = res; - RET(CYC) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8 + sft * 2) +#else + RET(6) +#endif } - + if (sft == 32) flag_C = src >> (31 - M68K_SR_C_SFT); else flag_C = 0; flag_X = flag_C; @@ -37669,387 +43270,448 @@ OPCODE(0xE0A8) flag_NotZ = 0; flag_V = 0; res = 0; - DREGu32((Opcode >> 0) & 7) = res; - RET(CYC) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8 + sft * 2) +#else + RET(6) +#endif } - + flag_V = 0; flag_C = 0; flag_N = src >> 24; flag_NotZ = src; -RET(CYC) -#undef CYC +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // ROXRD OPCODE(0xE030) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = DREG((Opcode >> 9) & 7) & 0x3F; - src = DREGu8((Opcode >> 0) & 7); + src = DREGu8((Opcode /*>> 0*/) & 7); if (sft) { - io_cycle_counter -= sft * 2; + u32 sftr = sft; sft %= 9; - + src |= (flag_X & M68K_SR_X) << 0; res = (src >> sft) | (src << (9 - sft)); flag_X = flag_C = res >> 0; flag_V = 0; flag_N = res >> 0; flag_NotZ = res & 0x000000FF; - DREGu8((Opcode >> 0) & 7) = res; - RET(6) + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sftr * 2) +#else + RET(12) +#endif } - + flag_V = 0; flag_C = flag_X; flag_N = src >> 0; flag_NotZ = src; -RET(6) +#ifdef OPCODES_M68000 + RET(6) +#else + RET(12) +#endif } // ROXRD OPCODE(0xE070) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = DREG((Opcode >> 9) & 7) & 0x3F; - src = DREGu16((Opcode >> 0) & 7); + src = DREGu16((Opcode /*>> 0*/) & 7); if (sft) { - io_cycle_counter -= sft * 2; + u32 sftr = sft; sft %= 17; - + src |= (flag_X & M68K_SR_X) << 8; res = (src >> sft) | (src << (17 - sft)); flag_X = flag_C = res >> 8; flag_V = 0; flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; - DREGu16((Opcode >> 0) & 7) = res; - RET(6) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sftr * 2) +#else + RET(12) +#endif } - + flag_V = 0; flag_C = flag_X; flag_N = src >> 8; flag_NotZ = src; -RET(6) +#ifdef OPCODES_M68000 + RET(6) +#else + RET(12) +#endif } // ROXRD OPCODE(0xE0B0) { -#ifdef USE_CYCLONE_TIMING -#define CYC 8 -#else -#define CYC 6 -#endif - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = DREG((Opcode >> 9) & 7) & 0x3F; - src = DREGu32((Opcode >> 0) & 7); + src = DREGu32((Opcode /*>> 0*/) & 7); if (sft) { - io_cycle_counter -= sft * 2; + u32 sftr = sft; sft %= 33; - + if (sft != 0) { if (sft == 1) res = (src >> 1) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1))); else res = (src >> sft) | (src << (33 - sft)) | (((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1))) >> (sft - 1)); - flag_X = (src >> (32 - sft)) << M68K_SR_X_SFT; + flag_X = ((src >> (sft - 1)) & 1) << M68K_SR_X_SFT; + // bug, least significant bit goes to X, not the most significant one + // flag_X = (src >> (32 - sft)) << M68K_SR_X_SFT; } else res = src; flag_C = flag_X; flag_V = 0; flag_N = res >> 24; flag_NotZ = res; - DREGu32((Opcode >> 0) & 7) = res; - RET(CYC) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8 + + sftr * 2) +#else + RET(12) +#endif } - + flag_V = 0; flag_C = flag_X; flag_N = src >> 24; flag_NotZ = src; -RET(CYC) -#undef CYC +#ifdef OPCODES_M68000 + RET(8) +#else + RET(12) +#endif } // RORD OPCODE(0xE038) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = DREG((Opcode >> 9) & 7) & 0x3F; - src = DREGu8((Opcode >> 0) & 7); + src = DREGu8((Opcode /*>> 0*/) & 7); if (sft) { - io_cycle_counter -= sft * 2; + u32 sftr = sft; sft &= 0x07; - + flag_C = src << (M68K_SR_C_SFT - ((sft - 1) & 7)); res = (src >> sft) | (src << (8 - sft)); flag_V = 0; flag_N = res >> 0; flag_NotZ = res & 0x000000FF; - DREGu8((Opcode >> 0) & 7) = res; - RET(6) + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sftr * 2) +#else + RET(8) +#endif } - + flag_V = 0; flag_C = 0; flag_N = src >> 0; flag_NotZ = src; -RET(6) +#ifdef OPCODES_M68000 + RET(6) +#else + RET(8) +#endif } // RORD OPCODE(0xE078) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = DREG((Opcode >> 9) & 7) & 0x3F; - src = DREGu16((Opcode >> 0) & 7); + src = DREGu16((Opcode /*>> 0*/) & 7); if (sft) { - io_cycle_counter -= sft * 2; + u32 sftr = sft; sft &= 0x0F; - + flag_C = (src >> ((sft - 1) & 15)) << M68K_SR_C_SFT; res = (src >> sft) | (src << (16 - sft)); flag_V = 0; flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; - DREGu16((Opcode >> 0) & 7) = res; - RET(6) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sftr * 2) +#else + RET(8) +#endif } - + flag_V = 0; flag_C = 0; flag_N = src >> 8; flag_NotZ = src; -RET(6) +#ifdef OPCODES_M68000 + RET(6) +#else + RET(8) +#endif } // RORD OPCODE(0xE0B8) { -#ifdef USE_CYCLONE_TIMING -#define CYC 8 -#else -#define CYC 6 -#endif - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = DREG((Opcode >> 9) & 7) & 0x3F; - src = DREGu32((Opcode >> 0) & 7); + src = DREGu32((Opcode /*>> 0*/) & 7); if (sft) { - io_cycle_counter -= sft * 2; + u32 sftr = sft; sft &= 0x1F; - + flag_C = (src >> ((sft - 1) & 31)) << M68K_SR_C_SFT; res = (src >> sft) | (src << (32 - sft)); flag_V = 0; flag_N = res >> 24; flag_NotZ = res; - DREGu32((Opcode >> 0) & 7) = res; - RET(CYC) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8 + sftr * 2) +#else + RET(8) +#endif } - + flag_V = 0; flag_C = 0; flag_N = src >> 24; flag_NotZ = src; -RET(CYC) -#undef CYC +#ifdef OPCODES_M68000 + RET(8) +#else + RET(8) +#endif } // ASLD OPCODE(0xE120) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = DREG((Opcode >> 9) & 7) & 0x3F; - src = DREGu8((Opcode >> 0) & 7); + src = DREGu8((Opcode /*>> 0*/) & 7); if (sft) { - io_cycle_counter -= sft * 2; if (sft < 8) { flag_X = flag_C = (src << sft) >> 0; res = (src << sft) & 0x000000FF; flag_N = res >> 0; flag_NotZ = res; - DREGu8((Opcode >> 0) & 7) = res; + DREGu8((Opcode /*>> 0*/) & 7) = res; flag_V = 0; { u32 msk = (((s32)0x80000000) >> (sft + 24)) & 0x000000FF; src &= msk; if ((src) && (src != msk)) flag_V = M68K_SR_V; } - RET(6) +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(8) +#endif } - + if (sft == 256) flag_C = src << M68K_SR_C_SFT; else flag_C = 0; flag_X = flag_C; if (src) flag_V = M68K_SR_V; else flag_V = 0; res = 0; - DREGu8((Opcode >> 0) & 7) = res; + DREGu8((Opcode /*>> 0*/) & 7) = res; flag_N = 0; flag_NotZ = 0; - RET(6) +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(8) +#endif } - + flag_V = 0; flag_C = 0; flag_N = src >> 0; flag_NotZ = src; -RET(6) +#ifdef OPCODES_M68000 + RET(6) +#else + RET(8) +#endif } // ASLD OPCODE(0xE160) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = DREG((Opcode >> 9) & 7) & 0x3F; - src = DREGu16((Opcode >> 0) & 7); + src = DREGu16((Opcode /*>> 0*/) & 7); if (sft) { - io_cycle_counter -= sft * 2; if (sft < 16) { flag_X = flag_C = (src << sft) >> 8; res = (src << sft) & 0x0000FFFF; flag_N = res >> 8; flag_NotZ = res; - DREGu16((Opcode >> 0) & 7) = res; + DREGu16((Opcode /*>> 0*/) & 7) = res; flag_V = 0; { u32 msk = (((s32)0x80000000) >> (sft + 16)) & 0x0000FFFF; src &= msk; if ((src) && (src != msk)) flag_V = M68K_SR_V; } - RET(6) +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(8) +#endif } - + if (sft == 65536) flag_C = src << M68K_SR_C_SFT; else flag_C = 0; flag_X = flag_C; if (src) flag_V = M68K_SR_V; else flag_V = 0; res = 0; - DREGu16((Opcode >> 0) & 7) = res; + DREGu16((Opcode /*>> 0*/) & 7) = res; flag_N = 0; flag_NotZ = 0; - RET(6) +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(8) +#endif } - + flag_V = 0; flag_C = 0; flag_N = src >> 8; flag_NotZ = src; -RET(6) +#ifdef OPCODES_M68000 + RET(6) +#else + RET(8) +#endif } // ASLD OPCODE(0xE1A0) { -#ifdef USE_CYCLONE_TIMING -#define CYC 8 -#else -#define CYC 6 -#endif - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = DREG((Opcode >> 9) & 7) & 0x3F; - src = DREGu32((Opcode >> 0) & 7); + src = DREGu32((Opcode /*>> 0*/) & 7); if (sft) { - io_cycle_counter -= sft * 2; if (sft < 32) { flag_X = flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT; res = src << sft; flag_N = res >> 24; flag_NotZ = res; - DREGu32((Opcode >> 0) & 7) = res; + DREGu32((Opcode /*>> 0*/) & 7) = res; flag_V = 0; { u32 msk = (((s32)0x80000000) >> (sft + 0)) & 0xFFFFFFFF; src &= msk; if ((src) && (src != msk)) flag_V = M68K_SR_V; } - RET(CYC) +#ifdef OPCODES_M68000 + RET(8 + sft * 2) +#else + RET(8) +#endif } - + if (sft == 0) flag_C = src << M68K_SR_C_SFT; else flag_C = 0; flag_X = flag_C; if (src) flag_V = M68K_SR_V; else flag_V = 0; res = 0; - DREGu32((Opcode >> 0) & 7) = res; + DREGu32((Opcode /*>> 0*/) & 7) = res; flag_N = 0; flag_NotZ = 0; - RET(CYC) +#ifdef OPCODES_M68000 + RET(8 + sft * 2) +#else + RET(8) +#endif } - + flag_V = 0; flag_C = 0; flag_N = src >> 24; flag_NotZ = src; -RET(CYC) -#undef CYC +#ifdef OPCODES_M68000 + RET(8) +#else + RET(8) +#endif } // LSLD OPCODE(0xE128) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = DREG((Opcode >> 9) & 7) & 0x3F; - src = DREGu8((Opcode >> 0) & 7); + src = DREGu8((Opcode /*>> 0*/) & 7); if (sft) { - io_cycle_counter -= sft * 2; if (sft <= 8) { flag_X = flag_C = (src << sft) >> 0; @@ -38057,39 +43719,49 @@ OPCODE(0xE128) flag_V = 0; flag_N = res >> 0; flag_NotZ = res; - DREGu8((Opcode >> 0) & 7) = res; - RET(6) + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(6) +#endif } - + flag_X = flag_C = 0; flag_N = 0; flag_NotZ = 0; flag_V = 0; res = 0; - DREGu8((Opcode >> 0) & 7) = res; - RET(6) + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(6) +#endif } - + flag_V = 0; flag_C = 0; flag_N = src >> 0; flag_NotZ = src; -RET(6) +#ifdef OPCODES_M68000 + RET(6) +#else + RET(6) +#endif } // LSLD OPCODE(0xE168) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = DREG((Opcode >> 9) & 7) & 0x3F; - src = DREGu16((Opcode >> 0) & 7); + src = DREGu16((Opcode /*>> 0*/) & 7); if (sft) { - io_cycle_counter -= sft * 2; if (sft <= 16) { flag_X = flag_C = (src << sft) >> 8; @@ -38097,44 +43769,49 @@ OPCODE(0xE168) flag_V = 0; flag_N = res >> 8; flag_NotZ = res; - DREGu16((Opcode >> 0) & 7) = res; - RET(6) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(6) +#endif } - + flag_X = flag_C = 0; flag_N = 0; flag_NotZ = 0; flag_V = 0; res = 0; - DREGu16((Opcode >> 0) & 7) = res; - RET(6) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sft * 2) +#else + RET(6) +#endif } - + flag_V = 0; flag_C = 0; flag_N = src >> 8; flag_NotZ = src; -RET(6) +#ifdef OPCODES_M68000 + RET(6) +#else + RET(6) +#endif } // LSLD OPCODE(0xE1A8) { -#ifdef USE_CYCLONE_TIMING -#define CYC 8 -#else -#define CYC 6 -#endif - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = DREG((Opcode >> 9) & 7) & 0x3F; - src = DREGu32((Opcode >> 0) & 7); + src = DREGu32((Opcode /*>> 0*/) & 7); if (sft) { - io_cycle_counter -= sft * 2; if (sft < 32) { flag_X = flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT; @@ -38142,10 +43819,14 @@ OPCODE(0xE1A8) flag_V = 0; flag_N = res >> 24; flag_NotZ = res; - DREGu32((Opcode >> 0) & 7) = res; - RET(CYC) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8 + sft * 2) +#else + RET(6) +#endif } - + if (sft == 32) flag_C = src << M68K_SR_C_SFT; else flag_C = 0; flag_X = flag_C; @@ -38153,102 +43834,117 @@ OPCODE(0xE1A8) flag_NotZ = 0; flag_V = 0; res = 0; - DREGu32((Opcode >> 0) & 7) = res; - RET(CYC) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8 + sft * 2) +#else + RET(6) +#endif } - + flag_V = 0; flag_C = 0; flag_N = src >> 24; flag_NotZ = src; -RET(CYC) -#undef CYC +#ifdef OPCODES_M68000 + RET(8) +#else + RET(6) +#endif } // ROXLD OPCODE(0xE130) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = DREG((Opcode >> 9) & 7) & 0x3F; - src = DREGu8((Opcode >> 0) & 7); + src = DREGu8((Opcode /*>> 0*/) & 7); if (sft) { - io_cycle_counter -= sft * 2; + u32 sftr = sft; sft %= 9; - + src |= (flag_X & M68K_SR_X) << 0; res = (src << sft) | (src >> (9 - sft)); flag_X = flag_C = res >> 0; flag_V = 0; flag_N = res >> 0; flag_NotZ = res & 0x000000FF; - DREGu8((Opcode >> 0) & 7) = res; - RET(6) + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sftr * 2) +#else + RET(12) +#endif } - + flag_V = 0; flag_C = flag_X; flag_N = src >> 0; flag_NotZ = src; -RET(6) +#ifdef OPCODES_M68000 + RET(6) +#else + RET(12) +#endif } // ROXLD OPCODE(0xE170) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = DREG((Opcode >> 9) & 7) & 0x3F; - src = DREGu16((Opcode >> 0) & 7); + src = DREGu16((Opcode /*>> 0*/) & 7); if (sft) { - io_cycle_counter -= sft * 2; + u32 sftr = sft; sft %= 17; - + src |= (flag_X & M68K_SR_X) << 8; res = (src << sft) | (src >> (17 - sft)); flag_X = flag_C = res >> 8; flag_V = 0; flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; - DREGu16((Opcode >> 0) & 7) = res; - RET(6) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sftr * 2) +#else + RET(12) +#endif } - + flag_V = 0; flag_C = flag_X; flag_N = src >> 8; flag_NotZ = src; -RET(6) +#ifdef OPCODES_M68000 + RET(6) +#else + RET(12) +#endif } // ROXLD OPCODE(0xE1B0) { -#ifdef USE_CYCLONE_TIMING -#define CYC 8 -#else -#define CYC 6 -#endif - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = DREG((Opcode >> 9) & 7) & 0x3F; - src = DREGu32((Opcode >> 0) & 7); + src = DREGu32((Opcode /*>> 0*/) & 7); if (sft) { - io_cycle_counter -= sft * 2; + u32 sftr = sft; sft %= 33; - + if (sft != 0) { if (sft == 1) res = (src << 1) | ((flag_X >> ((M68K_SR_X_SFT + 1) - 1)) & 1); @@ -38260,31 +43956,37 @@ OPCODE(0xE1B0) flag_V = 0; flag_N = res >> 24; flag_NotZ = res; - DREGu32((Opcode >> 0) & 7) = res; - RET(CYC) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8 + sftr * 2) +#else + RET(12) +#endif } - + flag_V = 0; flag_C = flag_X; flag_N = src >> 24; flag_NotZ = src; -RET(CYC) -#undef CYC +#ifdef OPCODES_M68000 + RET(8) +#else + RET(12) +#endif } // ROLD OPCODE(0xE138) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = DREG((Opcode >> 9) & 7) & 0x3F; - src = DREGu8((Opcode >> 0) & 7); + src = DREGu8((Opcode /*>> 0*/) & 7); if (sft) { - io_cycle_counter -= sft * 2; + u32 sftr = sft; if (sft &= 0x07) { flag_C = (src << sft) >> 0; @@ -38292,37 +43994,48 @@ OPCODE(0xE138) flag_V = 0; flag_N = res >> 0; flag_NotZ = res; - DREGu8((Opcode >> 0) & 7) = res; - RET(6) + DREGu8((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sftr * 2) +#else + RET(8) +#endif } - + flag_V = 0; flag_C = src << M68K_SR_C_SFT; flag_N = src >> 0; flag_NotZ = src; - RET(6) +#ifdef OPCODES_M68000 + RET(6 + sftr * 2) +#else + RET(8) +#endif } - + flag_V = 0; flag_C = 0; flag_N = src >> 0; flag_NotZ = src; -RET(6) +#ifdef OPCODES_M68000 + RET(6) +#else + RET(8) +#endif } // ROLD OPCODE(0xE178) { - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = DREG((Opcode >> 9) & 7) & 0x3F; - src = DREGu16((Opcode >> 0) & 7); + src = DREGu16((Opcode /*>> 0*/) & 7); if (sft) { - io_cycle_counter -= sft * 2; + u32 sftr = sft; if (sft &= 0x0F) { flag_C = (src << sft) >> 8; @@ -38330,42 +44043,48 @@ OPCODE(0xE178) flag_V = 0; flag_N = res >> 8; flag_NotZ = res; - DREGu16((Opcode >> 0) & 7) = res; - RET(6) + DREGu16((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(6 + sftr * 2) +#else + RET(8) +#endif } - + flag_V = 0; flag_C = src << M68K_SR_C_SFT; flag_N = src >> 8; flag_NotZ = src; - RET(6) +#ifdef OPCODES_M68000 + RET(6 + sftr * 2) +#else + RET(8) +#endif } - + flag_V = 0; flag_C = 0; flag_N = src >> 8; flag_NotZ = src; -RET(6) +#ifdef OPCODES_M68000 + RET(6) +#else + RET(8) +#endif } // ROLD OPCODE(0xE1B8) { -#ifdef USE_CYCLONE_TIMING -#define CYC 8 -#else -#define CYC 6 -#endif - u32 adr, res; - u32 src, dst; - + u32 res; + u32 src; u32 sft; - + sft = DREG((Opcode >> 9) & 7) & 0x3F; - src = DREGu32((Opcode >> 0) & 7); + src = DREGu32((Opcode /*>> 0*/) & 7); if (sft) { - io_cycle_counter -= sft * 2; + u32 sftr = sft; if (sft &= 0x1F) { flag_C = (src >> (32 - sft)) << M68K_SR_C_SFT; @@ -38373,33 +44092,43 @@ OPCODE(0xE1B8) flag_V = 0; flag_N = res >> 24; flag_NotZ = res; - DREGu32((Opcode >> 0) & 7) = res; - RET(CYC) + DREGu32((Opcode /*>> 0*/) & 7) = res; +#ifdef OPCODES_M68000 + RET(8 + sftr * 2) +#else + RET(8) +#endif } - + flag_V = 0; flag_C = src << M68K_SR_C_SFT; flag_N = src >> 24; flag_NotZ = src; - RET(CYC) +#ifdef OPCODES_M68000 + RET(8 + sftr * 2) +#else + RET(8) +#endif } - + flag_V = 0; flag_C = 0; flag_N = src >> 24; flag_NotZ = src; -RET(CYC) -#undef CYC +#ifdef OPCODES_M68000 + RET(8) +#else + RET(8) +#endif } // ASR OPCODE(0xE0D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) flag_V = 0; flag_X = flag_C = src << M68K_SR_C_SFT; @@ -38407,19 +44136,21 @@ OPCODE(0xE0D0) flag_N = res >> 8; flag_NotZ = res; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(9) +#endif } // ASR OPCODE(0xE0D8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, src) flag_V = 0; flag_X = flag_C = src << M68K_SR_C_SFT; @@ -38427,19 +44158,21 @@ OPCODE(0xE0D8) flag_N = res >> 8; flag_NotZ = res; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(9) +#endif } // ASR OPCODE(0xE0E0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, src) flag_V = 0; flag_X = flag_C = src << M68K_SR_C_SFT; @@ -38447,19 +44180,21 @@ OPCODE(0xE0E0) flag_N = res >> 8; flag_NotZ = res; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(10) +#endif } // ASR OPCODE(0xE0E8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) flag_V = 0; flag_X = flag_C = src << M68K_SR_C_SFT; @@ -38467,19 +44202,21 @@ OPCODE(0xE0E8) flag_N = res >> 8; flag_NotZ = res; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // ASR OPCODE(0xE0F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, src) flag_V = 0; flag_X = flag_C = src << M68K_SR_C_SFT; @@ -38487,18 +44224,20 @@ OPCODE(0xE0F0) flag_N = res >> 8; flag_NotZ = res; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(12) +#endif } // ASR OPCODE(0xE0F8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, src) flag_V = 0; flag_X = flag_C = src << M68K_SR_C_SFT; @@ -38506,18 +44245,20 @@ OPCODE(0xE0F8) flag_N = res >> 8; flag_NotZ = res; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(9) +#endif } // ASR OPCODE(0xE0F9) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, src) flag_V = 0; flag_X = flag_C = src << M68K_SR_C_SFT; @@ -38525,19 +44266,21 @@ OPCODE(0xE0F9) flag_N = res >> 8; flag_NotZ = res; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // ASR OPCODE(0xE0DF) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, src) flag_V = 0; flag_X = flag_C = src << M68K_SR_C_SFT; @@ -38545,19 +44288,21 @@ OPCODE(0xE0DF) flag_N = res >> 8; flag_NotZ = res; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(9) +#endif } // ASR OPCODE(0xE0E7) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, src) flag_V = 0; flag_X = flag_C = src << M68K_SR_C_SFT; @@ -38565,186 +44310,206 @@ OPCODE(0xE0E7) flag_N = res >> 8; flag_NotZ = res; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(10) +#endif } // LSR OPCODE(0xE2D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) flag_N = flag_V = 0; flag_X = flag_C = src << M68K_SR_C_SFT; res = src >> 1; flag_NotZ = res; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(9) +#endif } // LSR OPCODE(0xE2D8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, src) flag_N = flag_V = 0; flag_X = flag_C = src << M68K_SR_C_SFT; res = src >> 1; flag_NotZ = res; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(9) +#endif } // LSR OPCODE(0xE2E0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, src) flag_N = flag_V = 0; flag_X = flag_C = src << M68K_SR_C_SFT; res = src >> 1; flag_NotZ = res; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(10) +#endif } // LSR OPCODE(0xE2E8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) flag_N = flag_V = 0; flag_X = flag_C = src << M68K_SR_C_SFT; res = src >> 1; flag_NotZ = res; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // LSR OPCODE(0xE2F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, src) flag_N = flag_V = 0; flag_X = flag_C = src << M68K_SR_C_SFT; res = src >> 1; flag_NotZ = res; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(12) +#endif } // LSR OPCODE(0xE2F8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, src) flag_N = flag_V = 0; flag_X = flag_C = src << M68K_SR_C_SFT; res = src >> 1; flag_NotZ = res; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(9) +#endif } // LSR OPCODE(0xE2F9) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, src) flag_N = flag_V = 0; flag_X = flag_C = src << M68K_SR_C_SFT; res = src >> 1; flag_NotZ = res; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // LSR OPCODE(0xE2DF) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, src) flag_N = flag_V = 0; flag_X = flag_C = src << M68K_SR_C_SFT; res = src >> 1; flag_NotZ = res; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(9) +#endif } // LSR OPCODE(0xE2E7) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, src) flag_N = flag_V = 0; flag_X = flag_C = src << M68K_SR_C_SFT; res = src >> 1; flag_NotZ = res; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(10) +#endif } // ROXR OPCODE(0xE4D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) flag_V = 0; res = (src >> 1) | ((flag_X & M68K_SR_X) << 7); @@ -38752,19 +44517,21 @@ OPCODE(0xE4D0) flag_N = res >> 8; flag_NotZ = res; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(9) +#endif } // ROXR OPCODE(0xE4D8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, src) flag_V = 0; res = (src >> 1) | ((flag_X & M68K_SR_X) << 7); @@ -38772,19 +44539,21 @@ OPCODE(0xE4D8) flag_N = res >> 8; flag_NotZ = res; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(12) +#endif } // ROXR OPCODE(0xE4E0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, src) flag_V = 0; res = (src >> 1) | ((flag_X & M68K_SR_X) << 7); @@ -38792,19 +44561,21 @@ OPCODE(0xE4E0) flag_N = res >> 8; flag_NotZ = res; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(10) +#endif } // ROXR OPCODE(0xE4E8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) flag_V = 0; res = (src >> 1) | ((flag_X & M68K_SR_X) << 7); @@ -38812,19 +44583,21 @@ OPCODE(0xE4E8) flag_N = res >> 8; flag_NotZ = res; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // ROXR OPCODE(0xE4F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, src) flag_V = 0; res = (src >> 1) | ((flag_X & M68K_SR_X) << 7); @@ -38832,18 +44605,20 @@ OPCODE(0xE4F0) flag_N = res >> 8; flag_NotZ = res; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(12) +#endif } // ROXR OPCODE(0xE4F8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, src) flag_V = 0; res = (src >> 1) | ((flag_X & M68K_SR_X) << 7); @@ -38851,18 +44626,20 @@ OPCODE(0xE4F8) flag_N = res >> 8; flag_NotZ = res; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(9) +#endif } // ROXR OPCODE(0xE4F9) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, src) flag_V = 0; res = (src >> 1) | ((flag_X & M68K_SR_X) << 7); @@ -38870,19 +44647,21 @@ OPCODE(0xE4F9) flag_N = res >> 8; flag_NotZ = res; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // ROXR OPCODE(0xE4DF) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, src) flag_V = 0; res = (src >> 1) | ((flag_X & M68K_SR_X) << 7); @@ -38890,19 +44669,21 @@ OPCODE(0xE4DF) flag_N = res >> 8; flag_NotZ = res; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(9) +#endif } // ROXR OPCODE(0xE4E7) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, src) flag_V = 0; res = (src >> 1) | ((flag_X & M68K_SR_X) << 7); @@ -38910,18 +44691,20 @@ OPCODE(0xE4E7) flag_N = res >> 8; flag_NotZ = res; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(10) +#endif } // ROR OPCODE(0xE6D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) flag_V = 0; flag_C = src << M68K_SR_C_SFT; @@ -38929,19 +44712,21 @@ OPCODE(0xE6D0) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(11) +#endif } // ROR OPCODE(0xE6D8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, src) flag_V = 0; flag_C = src << M68K_SR_C_SFT; @@ -38949,19 +44734,21 @@ OPCODE(0xE6D8) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(11) +#endif } // ROR OPCODE(0xE6E0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, src) flag_V = 0; flag_C = src << M68K_SR_C_SFT; @@ -38969,19 +44756,21 @@ OPCODE(0xE6E0) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(12) +#endif } // ROR OPCODE(0xE6E8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) flag_V = 0; flag_C = src << M68K_SR_C_SFT; @@ -38989,19 +44778,21 @@ OPCODE(0xE6E8) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(12) +#endif } // ROR OPCODE(0xE6F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, src) flag_V = 0; flag_C = src << M68K_SR_C_SFT; @@ -39009,18 +44800,20 @@ OPCODE(0xE6F0) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(14) +#endif } // ROR OPCODE(0xE6F8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, src) flag_V = 0; flag_C = src << M68K_SR_C_SFT; @@ -39028,18 +44821,20 @@ OPCODE(0xE6F8) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(11) +#endif } // ROR OPCODE(0xE6F9) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, src) flag_V = 0; flag_C = src << M68K_SR_C_SFT; @@ -39047,19 +44842,21 @@ OPCODE(0xE6F9) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(11) +#endif } // ROR OPCODE(0xE6DF) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, src) flag_V = 0; flag_C = src << M68K_SR_C_SFT; @@ -39067,19 +44864,21 @@ OPCODE(0xE6DF) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(11) +#endif } // ROR OPCODE(0xE6E7) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, src) flag_V = 0; flag_C = src << M68K_SR_C_SFT; @@ -39087,18 +44886,20 @@ OPCODE(0xE6E7) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(12) +#endif } // ASL OPCODE(0xE1D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) flag_X = flag_C = src >> 7; res = src << 1; @@ -39106,19 +44907,21 @@ OPCODE(0xE1D0) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(10) +#endif } // ASL OPCODE(0xE1D8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, src) flag_X = flag_C = src >> 7; res = src << 1; @@ -39126,19 +44929,21 @@ OPCODE(0xE1D8) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(10) +#endif } // ASL OPCODE(0xE1E0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, src) flag_X = flag_C = src >> 7; res = src << 1; @@ -39146,19 +44951,21 @@ OPCODE(0xE1E0) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(11) +#endif } // ASL OPCODE(0xE1E8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) flag_X = flag_C = src >> 7; res = src << 1; @@ -39166,19 +44973,21 @@ OPCODE(0xE1E8) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(11) +#endif } // ASL OPCODE(0xE1F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, src) flag_X = flag_C = src >> 7; res = src << 1; @@ -39186,18 +44995,20 @@ OPCODE(0xE1F0) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(13) +#endif } // ASL OPCODE(0xE1F8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, src) flag_X = flag_C = src >> 7; res = src << 1; @@ -39205,18 +45016,20 @@ OPCODE(0xE1F8) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // ASL OPCODE(0xE1F9) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, src) flag_X = flag_C = src >> 7; res = src << 1; @@ -39224,19 +45037,21 @@ OPCODE(0xE1F9) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(10) +#endif } // ASL OPCODE(0xE1DF) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, src) flag_X = flag_C = src >> 7; res = src << 1; @@ -39244,19 +45059,21 @@ OPCODE(0xE1DF) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(10) +#endif } // ASL OPCODE(0xE1E7) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, src) flag_X = flag_C = src >> 7; res = src << 1; @@ -39264,18 +45081,20 @@ OPCODE(0xE1E7) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(11) +#endif } // LSL OPCODE(0xE3D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) flag_V = 0; flag_X = flag_C = src >> 7; @@ -39283,19 +45102,21 @@ OPCODE(0xE3D0) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(9) +#endif } // LSL OPCODE(0xE3D8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, src) flag_V = 0; flag_X = flag_C = src >> 7; @@ -39303,19 +45124,21 @@ OPCODE(0xE3D8) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(9) +#endif } // LSL OPCODE(0xE3E0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, src) flag_V = 0; flag_X = flag_C = src >> 7; @@ -39323,19 +45146,21 @@ OPCODE(0xE3E0) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(10) +#endif } // LSL OPCODE(0xE3E8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) flag_V = 0; flag_X = flag_C = src >> 7; @@ -39343,19 +45168,21 @@ OPCODE(0xE3E8) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // LSL OPCODE(0xE3F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, src) flag_V = 0; flag_X = flag_C = src >> 7; @@ -39363,18 +45190,20 @@ OPCODE(0xE3F0) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(12) +#endif } // LSL OPCODE(0xE3F8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, src) flag_V = 0; flag_X = flag_C = src >> 7; @@ -39382,18 +45211,20 @@ OPCODE(0xE3F8) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(9) +#endif } // LSL OPCODE(0xE3F9) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, src) flag_V = 0; flag_X = flag_C = src >> 7; @@ -39401,19 +45232,21 @@ OPCODE(0xE3F9) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // LSL OPCODE(0xE3DF) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, src) flag_V = 0; flag_X = flag_C = src >> 7; @@ -39421,19 +45254,21 @@ OPCODE(0xE3DF) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(9) +#endif } // LSL OPCODE(0xE3E7) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, src) flag_V = 0; flag_X = flag_C = src >> 7; @@ -39441,18 +45276,20 @@ OPCODE(0xE3E7) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(10) +#endif } // ROXL OPCODE(0xE5D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) flag_V = 0; res = (src << 1) | ((flag_X & M68K_SR_X) >> 8); @@ -39460,19 +45297,21 @@ OPCODE(0xE5D0) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(9) +#endif } // ROXL OPCODE(0xE5D8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, src) flag_V = 0; res = (src << 1) | ((flag_X & M68K_SR_X) >> 8); @@ -39480,19 +45319,21 @@ OPCODE(0xE5D8) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(9) +#endif } // ROXL OPCODE(0xE5E0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, src) flag_V = 0; res = (src << 1) | ((flag_X & M68K_SR_X) >> 8); @@ -39500,19 +45341,21 @@ OPCODE(0xE5E0) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(10) +#endif } // ROXL OPCODE(0xE5E8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) flag_V = 0; res = (src << 1) | ((flag_X & M68K_SR_X) >> 8); @@ -39520,19 +45363,21 @@ OPCODE(0xE5E8) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(10) +#endif } // ROXL OPCODE(0xE5F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, src) flag_V = 0; res = (src << 1) | ((flag_X & M68K_SR_X) >> 8); @@ -39540,18 +45385,20 @@ OPCODE(0xE5F0) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(12) +#endif } // ROXL OPCODE(0xE5F8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, src) flag_V = 0; res = (src << 1) | ((flag_X & M68K_SR_X) >> 8); @@ -39559,18 +45406,20 @@ OPCODE(0xE5F8) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(9) +#endif } // ROXL OPCODE(0xE5F9) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, src) flag_V = 0; res = (src << 1) | ((flag_X & M68K_SR_X) >> 8); @@ -39578,19 +45427,21 @@ OPCODE(0xE5F9) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(9) +#endif } // ROXL OPCODE(0xE5DF) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, src) flag_V = 0; res = (src << 1) | ((flag_X & M68K_SR_X) >> 8); @@ -39598,19 +45449,21 @@ OPCODE(0xE5DF) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(9) +#endif } // ROXL OPCODE(0xE5E7) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, src) flag_V = 0; res = (src << 1) | ((flag_X & M68K_SR_X) >> 8); @@ -39618,18 +45471,20 @@ OPCODE(0xE5E7) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(10) +#endif } // ROL OPCODE(0xE7D0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) flag_V = 0; flag_C = src >> 7; @@ -39637,19 +45492,21 @@ OPCODE(0xE7D0) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(11) +#endif } // ROL OPCODE(0xE7D8) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - AREG((Opcode >> 0) & 7) += 2; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + AREG((Opcode /*>> 0*/) & 7) += 2; READ_WORD_F(adr, src) flag_V = 0; flag_C = src >> 7; @@ -39657,19 +45514,21 @@ OPCODE(0xE7D8) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(11) +#endif } // ROL OPCODE(0xE7E0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7) - 2; - AREG((Opcode >> 0) & 7) = adr; - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7) - 2; + AREG((Opcode /*>> 0*/) & 7) = adr; READ_WORD_F(adr, src) flag_V = 0; flag_C = src >> 7; @@ -39677,19 +45536,21 @@ OPCODE(0xE7E0) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(12) +#endif } // ROL OPCODE(0xE7E8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - adr += AREG((Opcode >> 0) & 7); - PRE_IO + adr += AREG((Opcode /*>> 0*/) & 7); READ_WORD_F(adr, src) flag_V = 0; flag_C = src >> 7; @@ -39697,19 +45558,21 @@ OPCODE(0xE7E8) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(12) +#endif } // ROL OPCODE(0xE7F0) { u32 adr, res; - u32 src, dst; - - adr = AREG((Opcode >> 0) & 7); - DECODE_EXT_WORD - PRE_IO + u32 src; + + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); READ_WORD_F(adr, src) flag_V = 0; flag_C = src >> 7; @@ -39717,18 +45580,20 @@ OPCODE(0xE7F0) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(18) +#ifdef OPCODES_M68000 + RET(18) +#else + RET(14) +#endif } // ROL OPCODE(0xE7F8) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_SWORD(adr); - PRE_IO READ_WORD_F(adr, src) flag_V = 0; flag_C = src >> 7; @@ -39736,18 +45601,20 @@ OPCODE(0xE7F8) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(16) +#ifdef OPCODES_M68000 + RET(16) +#else + RET(11) +#endif } // ROL OPCODE(0xE7F9) { u32 adr, res; - u32 src, dst; - + u32 src; + FETCH_LONG(adr); - PRE_IO READ_WORD_F(adr, src) flag_V = 0; flag_C = src >> 7; @@ -39755,19 +45622,21 @@ OPCODE(0xE7F9) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(20) +#ifdef OPCODES_M68000 + RET(20) +#else + RET(11) +#endif } // ROL OPCODE(0xE7DF) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7); AREG(7) += 2; - PRE_IO READ_WORD_F(adr, src) flag_V = 0; flag_C = src >> 7; @@ -39775,19 +45644,21 @@ OPCODE(0xE7DF) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(12) +#ifdef OPCODES_M68000 + RET(12) +#else + RET(11) +#endif } // ROL OPCODE(0xE7E7) { u32 adr, res; - u32 src, dst; - + u32 src; + adr = AREG(7) - 2; AREG(7) = adr; - PRE_IO READ_WORD_F(adr, src) flag_V = 0; flag_C = src >> 7; @@ -39795,7 +45666,1561 @@ OPCODE(0xE7E7) flag_N = res >> 8; flag_NotZ = res & 0x0000FFFF; WRITE_WORD_F(adr, res) - POST_IO -RET(14) +#ifdef OPCODES_M68000 + RET(14) +#else + RET(12) +#endif +} + +#ifdef OPCODES_M68020 +// BFTST Dn - 68020+ +OPCODE(0xE8C0) +{ + u32 res; + u32 dst; + u32 offset, width; + + FETCH_WORD(res) + BF_REG_GET(res, dst, offset, width) + RET(6) +} + +// BFTST (An) - 68020+ +OPCODE(0xE8D0) +{ + u32 adr, res; + u32 dst; + u32 width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + RET(13) +} + +// BFTST (d16,An) - 68020+ +OPCODE(0xE8E8) +{ + u32 adr, res; + u32 dst; + u32 width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + FETCH_SWORD(adr) + adr += AREG((Opcode /*>> 0*/) & 7); + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + RET(21) +} + +// BFTST (d8,An,Xn) / (bd,An,Xn)... - 68020+ +OPCODE(0xE8F0) +{ + u32 adr, res; + u32 dst; + u32 width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + RET(17) +} + +// BFTST (xx).W - 68020+ +OPCODE(0xE8F8) +{ + u32 adr, res; + u32 dst; + u32 width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + FETCH_SWORD(adr) + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + RET(15) +} + +// BFTST (xx).L - 68020+ +OPCODE(0xE8F9) +{ + u32 adr, res; + u32 dst; + u32 width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + FETCH_LONG(adr) + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + RET(15) +} + +// BFTST (d16,PC) - 68020+ +OPCODE(0xE8FA) +{ + u32 adr, res; + u32 dst; + u32 width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + adr = GET_SWORD + ((u32)(PC) - BasePC); + PC++; + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + RET(21) +} + +// BFTST (d8,PC,Xn) / (bd,PC,XN)...- 68020+ +OPCODE(0xE8FB) +{ + u32 adr, res; + u32 dst; + u32 width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + adr = (u32)(PC) - BasePC; + DECODE_EXT_WORD(&adr); + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + RET(17) +} + +// BFEXTU Dn - 68020+ +OPCODE(0xE9C0) +{ + u32 res; + u32 dst; + u32 offset, width; + + FETCH_WORD(res) + BF_REG_GET(res, dst, offset, width) + DREG((res >> 12) /*& 7*/) = dst; + RET(8) +} + +// BFEXTU (An) - 68020+ +OPCODE(0xE9D0) +{ + u32 adr, res; + u32 dst; + u32 width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + DREG((res >> 12) /*& 7*/) = dst; + RET(17) +} + +// BFEXTU (d16,An) - 68020+ +OPCODE(0xE9E8) +{ + u32 adr, res; + u32 dst; + u32 width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + FETCH_SWORD(adr) + adr += AREG((Opcode /*>> 0*/) & 7); + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + DREG((res >> 12) /*& 7*/) = dst; + RET(23) +} + +// BFEXTU (d8,An,Xn) / (bd,An,Xn)... - 68020+ +OPCODE(0xE9F0) +{ + u32 adr, res; + u32 dst; + u32 width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + DREG((res >> 12) /*& 7*/) = dst; + RET(19) +} + +// BFEXTU (xx).W - 68020+ +OPCODE(0xE9F8) +{ + u32 adr, res; + u32 dst; + u32 width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + FETCH_SWORD(adr) + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + DREG((res >> 12) /*& 7*/) = dst; + RET(17) +} + +// BFEXTU (xx).L - 68020+ +OPCODE(0xE9F9) +{ + u32 adr, res; + u32 dst; + u32 width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + FETCH_LONG(adr) + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + DREG((res >> 12) /*& 7*/) = dst; + RET(17) +} + +// BFEXTU (d16,PC) - 68020+ +OPCODE(0xE9FA) +{ + u32 adr, res; + u32 dst; + u32 width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + adr = GET_SWORD + ((u32)(PC) - BasePC); + PC++; + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + DREG((res >> 12) /*& 7*/) = dst; + RET(23) +} + +// BFEXTU (d8,PC,Xn) / (bd,PC,XN)...- 68020+ +OPCODE(0xE9FB) +{ + u32 adr, res; + u32 dst; + u32 width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + adr = (u32)(PC) - BasePC; + DECODE_EXT_WORD(&adr); + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + DREG((res >> 12) /*& 7*/) = dst; + RET(19) +} + +// BFCHG Dn - 68020+ +OPCODE(0xEAC0) +{ + u32 res; + u32 dst; + u32 mask, offset, width; + + FETCH_WORD(res) + BF_REG_GET(res, dst, offset, width) + mask = ((u32)0xFFFFFFFF << (32 - width)) >> offset; + // BF_MASK(mask, offset, width) + // BF_SHIFT_UP(mask, offset, width) + DREG((Opcode /*>> 0*/) & 7) ^= mask; + RET(12) +} + +// BFCHG (An) - 68020+ +OPCODE(0xEAD0) +{ + u32 adr, res; + u32 dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + BF_MASK(mask, offset, width) + dst ^= mask; + BF_MEM_PUT(adr, dst, mask, offset, width, bf0, bf1); + RET(20) +} + +// BFCHG (d16,An) - 68020+ +OPCODE(0xEAE8) +{ + u32 adr, res; + u32 dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + FETCH_SWORD(adr) + adr += AREG((Opcode /*>> 0*/) & 7); + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + BF_MASK(mask, offset, width) + dst ^= mask; + BF_MEM_PUT(adr, dst, mask, offset, width, bf0, bf1); + RET(26) +} + +// BFCHG (d8,An,Xn) / (bd,An,Xn)... - 68020+ +OPCODE(0xEAF0) +{ + u32 adr, res; + u32 dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + BF_MASK(mask, offset, width) + dst ^= mask; + BF_MEM_PUT(adr, dst, mask, offset, width, bf0, bf1); + RET(22) +} + +// BFCHG (xx).W - 68020+ +OPCODE(0xEAF8) +{ + u32 adr, res; + u32 dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + FETCH_SWORD(adr) + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + BF_MASK(mask, offset, width) + dst ^= mask; + BF_MEM_PUT(adr, dst, mask, offset, width, bf0, bf1); + RET(20) +} + +// BFCHG (xx).L - 68020+ +OPCODE(0xEAF9) +{ + u32 adr, res; + u32 dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + FETCH_LONG(adr) + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + BF_MASK(mask, offset, width) + dst ^= mask; + BF_MEM_PUT(adr, dst, mask, offset, width, bf0, bf1); + RET(20) +} + +// BFEXTS Dn - 68020+ +OPCODE(0xEBC0) +{ + u32 adr, res; + u32 dst; + u32 mask, offset, width; + + FETCH_WORD(res) + BF_REG_GET(res, dst, offset, width) + BF_MASK(mask, offset, width) + BF_EXTS(dst, width, mask) + DREG((res >> 12) /*& 7*/) = dst; + RET(8) +} + +// BFEXTS (An) - 68020+ +OPCODE(0xEBD0) +{ + u32 adr, res; + u32 dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + BF_MASK(mask, offset, width) + BF_EXTS(dst, width, mask) + DREG((res >> 12) /*& 7*/) = dst; + RET(17) +} + +// BFEXTS (d16,An) - 68020+ +OPCODE(0xEBE8) +{ + u32 adr, res; + u32 dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + FETCH_SWORD(adr) + adr += AREG((Opcode /*>> 0*/) & 7); + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + BF_MASK(mask, offset, width) + BF_EXTS(dst, width, mask) + DREG((res >> 12) /*& 7*/) = dst; + RET(23) +} + +// BFEXTS (d8,An,Xn) / (bd,An,Xn)... - 68020+ +OPCODE(0xEBF0) +{ + u32 adr, res; + u32 dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + BF_MASK(mask, offset, width) + BF_EXTS(dst, width, mask) + DREG((res >> 12) /*& 7*/) = dst; + RET(19) +} + +// BFEXTS (xx).W - 68020+ +OPCODE(0xEBF8) +{ + u32 adr, res; + u32 dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + FETCH_SWORD(adr) + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + BF_MASK(mask, offset, width) + BF_EXTS(dst, width, mask) + DREG((res >> 12) /*& 7*/) = dst; + RET(17) +} + +// BFEXTS (xx).L - 68020+ +OPCODE(0xEBF9) +{ + u32 adr, res; + u32 dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + FETCH_LONG(adr) + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + BF_MASK(mask, offset, width) + BF_EXTS(dst, width, mask) + DREG((res >> 12) /*& 7*/) = dst; + RET(17) +} + +// BFEXTS (d16,PC) - 68020+ +OPCODE(0xEBFA) +{ + u32 adr, res; + u32 dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + adr = GET_SWORD + ((u32)(PC) - BasePC); + PC++; + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + BF_MASK(mask, offset, width) + BF_EXTS(dst, width, mask) + DREG((res >> 12) /*& 7*/) = dst; + RET(23) +} + +// BFEXTS (d8,PC,Xn) / (bd,PC,XN)...- 68020+ +OPCODE(0xEBFB) +{ + u32 adr, res; + u32 dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + adr = (u32)(PC) - BasePC; + DECODE_EXT_WORD(&adr); + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + BF_MASK(mask, offset, width) + BF_EXTS(dst, width, mask) + DREG((res >> 12) /*& 7*/) = dst; + RET(19) +} + +// BFCLR Dn - 68020+ +OPCODE(0xECC0) +{ + u32 adr, res; + u32 dst; + u32 mask, offset, width; + + FETCH_WORD(res) + BF_REG_GET(res, dst, offset, width) + mask = ((u32)0xFFFFFFFF << (32 - width)) >> offset; + // BF_MASK(mask, offset, width) + // BF_SHIFT_UP(mask, offset, width) + DREG((Opcode /*>> 0*/) & 7) &= ~mask; + RET(12) +} + +// BFCLR (An) - 68020+ +OPCODE(0xECD0) +{ + u32 adr, res; + u32 dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + BF_MASK(mask, offset, width) + // dst &= ~mask; + BF_MEM_PUT(adr, dst, 0/*mask*/, offset, width, bf0, bf1); + RET(20) +} + +// BFCLR (d16,An) - 68020+ +OPCODE(0xECE8) +{ + u32 adr, res; + u32 dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + FETCH_SWORD(adr) + adr += AREG((Opcode /*>> 0*/) & 7); + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + BF_MASK(mask, offset, width) + // dst &= ~mask; + BF_MEM_PUT(adr, 0/*dst*/, mask, offset, width, bf0, bf1); + RET(26) +} + +// BFCLR (d8,An,Xn) / (bd,An,Xn)... - 68020+ +OPCODE(0xECF0) +{ + u32 adr, res; + u32 dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + BF_MASK(mask, offset, width) + // dst &= ~mask; + BF_MEM_PUT(adr, 0/*dst*/, mask, offset, width, bf0, bf1); + RET(22) +} + +// BFCLR (xx).W - 68020+ +OPCODE(0xECF8) +{ + u32 adr, res; + u32 dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + FETCH_SWORD(adr) + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + BF_MASK(mask, offset, width) + // dst &= ~mask; + BF_MEM_PUT(adr, 0/*dst*/, mask, offset, width, bf0, bf1); + RET(20) +} + +// BFCLR (xx).L - 68020+ +OPCODE(0xECF9) +{ + u32 adr, res; + u32 dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + FETCH_LONG(adr) + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + BF_MASK(mask, offset, width) + // dst &= ~mask; + BF_MEM_PUT(adr, 0/*dst*/, mask, offset, width, bf0, bf1); + RET(20) +} + +// BFFFO Dn - 68020+ +OPCODE(0xEDC0) +{ + u32 adr, res; + u32 src, dst; + u32 mask, offset, width; + + FETCH_WORD(res) + BF_REG_GET(res, src, offset, width) + BF_FFO(src, mask, offset, width) + RET(18) +} + +// BFFFO (An) - 68020+ +OPCODE(0xEDD0) +{ + u32 adr, res; + u32 src, dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &src, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(src, width) + BF_FFO(src, mask, dst, width) + RET(28) +} + +// BFFFO (d16,An) - 68020+ +OPCODE(0xEDE8) +{ + u32 adr, res; + u32 src, dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + FETCH_SWORD(adr) + adr += AREG((Opcode /*>> 0*/) & 7); + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &src, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(src, width) + BF_FFO(src, mask, dst, width) + RET(34) +} + +// BFFFO (d8,An,Xn) / (bd,An,Xn)... - 68020+ +OPCODE(0xEDF0) +{ + u32 adr, res; + u32 src, dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &src, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(src, width) + BF_FFO(src, mask, dst, width) + RET(30) +} + +// BFFFO (xx).W - 68020+ +OPCODE(0xEDF8) +{ + u32 adr, res; + u32 src, dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + FETCH_SWORD(adr) + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &src, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(src, width) + BF_FFO(src, mask, dst, width) + RET(28) +} + +// BFFFO (xx).L - 68020+ +OPCODE(0xEDF9) +{ + u32 adr, res; + u32 src, dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + FETCH_LONG(adr) + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &src, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(src, width) + BF_FFO(src, mask, dst, width) + RET(28) +} + +// BFFFO (d16,PC) - 68020+ +OPCODE(0xEDFA) +{ + u32 adr, res; + u32 src, dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + adr = GET_SWORD + ((u32)(PC) - BasePC); + PC++; + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &src, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(src, width) + BF_FFO(src, mask, dst, width) + RET(34) +} + +// BFFFO (d8,PC,Xn) / (bd,PC,XN)...- 68020+ +OPCODE(0xEDFB) +{ + u32 adr, res; + u32 src, dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + adr = (u32)(PC) - BasePC; + DECODE_EXT_WORD(&adr); + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &src, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(src, width) + BF_FFO(src, mask, dst, width) + RET(30) +} + +// BFSET Dn - 68020+ +OPCODE(0xEEC0) +{ + u32 adr, res; + u32 dst; + u32 mask, offset, width; + + FETCH_WORD(res) + BF_REG_GET(res, dst, offset, width) + mask = ((u32)0xFFFFFFFF << (32 - width)) >> offset; + // BF_MASK(mask, offset, width) + // BF_SHIFT_UP(mask, offset, width) + DREG((Opcode /*>> 0*/) & 7) |= mask; + RET(12) +} + +// BFSET (An) - 68020+ +OPCODE(0xEED0) +{ + u32 adr, res; + u32 dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + BF_MASK(mask, offset, width) + // dst |= mask; + BF_MEM_PUT(adr, mask/*dst*/, mask, offset, width, bf0, bf1); + RET(20) +} + +// BFSET (d16,An) - 68020+ +OPCODE(0xEEE8) +{ + u32 adr, res; + u32 dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + FETCH_SWORD(adr) + adr += AREG((Opcode /*>> 0*/) & 7); + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + BF_MASK(mask, offset, width) + // dst |= mask; + BF_MEM_PUT(adr, mask/*dst*/, mask, offset, width, bf0, bf1); + RET(26) +} + +// BFSET (d8,An,Xn) / (bd,An,Xn)... - 68020+ +OPCODE(0xEEF0) +{ + u32 adr, res; + u32 dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + BF_MASK(mask, offset, width) + // dst |= mask; + BF_MEM_PUT(adr, mask/*dst*/, mask, offset, width, bf0, bf1); + RET(22) +} + +// BFSET (xx).W - 68020+ +OPCODE(0xEEF8) +{ + u32 adr, res; + u32 dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + FETCH_SWORD(adr) + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + BF_MASK(mask, offset, width) + // dst |= mask; + BF_MEM_PUT(adr, mask/*dst*/, mask, offset, width, bf0, bf1); + RET(20) +} + +// BFSET (xx).L - 68020+ +OPCODE(0xEEF9) +{ + u32 adr, res; + u32 dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + FETCH_LONG(adr) + BF_GET_PARM(res, offset, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_SET_FLAGS(dst, width) + BF_MASK(mask, offset, width) + // dst |= mask; + BF_MEM_PUT(adr, mask/*dst*/, mask, offset, width, bf0, bf1); + RET(20) +} + +// BFINS Dn - 68020+ +OPCODE(0xEFC0) +{ + u32 adr, res; + u32 src, dst; + u32 mask, offset, width; + + FETCH_WORD(res) + dst = DREG((Opcode /*>> 0*/) & 7); + src = DREG((res >> 12) /*& 7*/); + BF_GET_PARM(res, offset, width) + offset &= 0x1F; + BF_SET_FLAGS(src, width) + mask = ((u32)0xFFFFFFFF << (32 - width)) >> offset; + // BF_MASK(mask, offset, width) + // BF_SHIFT_UP(mask, offset, width) + BF_SHIFT_UP(src, offset, width) + DREG((Opcode /*>> 0*/) & 7) = (dst & ~mask) | (src & mask); + RET(10) +} + +// BFINS (An) - 68020+ +OPCODE(0xEFD0) +{ + u32 adr, res; + u32 src, dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + src = DREG((res >> 12) /*& 7*/); + BF_GET_PARM(res, offset, width) + BF_SET_FLAGS(src, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_MASK(mask, offset, width) + BF_MEM_PUT(adr, src, mask, offset, width, bf0, bf1); + RET(18) +} + +// BFINS (d16,An) - 68020+ +OPCODE(0xEFE8) +{ + u32 adr, res; + u32 src, dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + FETCH_SWORD(adr) + adr += AREG((Opcode /*>> 0*/) & 7); + src = DREG((res >> 12) /*& 7*/); + BF_GET_PARM(res, offset, width) + BF_SET_FLAGS(src, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_MASK(mask, offset, width) + BF_MEM_PUT(adr, src, mask, offset, width, bf0, bf1); + RET(24) +} + +// BFINS (d8,An,Xn) / (bd,An,Xn)... - 68020+ +OPCODE(0xEFF0) +{ + u32 adr, res; + u32 src, dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + src = DREG((res >> 12) /*& 7*/); + DECODE_EXT_WORD(&adr); + BF_GET_PARM(res, offset, width) + BF_SET_FLAGS(src, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_MASK(mask, offset, width) + BF_MEM_PUT(adr, src, mask, offset, width, bf0, bf1); + RET(20) +} + +// BFINS (xx).W - 68020+ +OPCODE(0xEFF8) +{ + u32 adr, res; + u32 src, dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + FETCH_SWORD(adr) + src = DREG((res >> 12) /*& 7*/); + BF_GET_PARM(res, offset, width) + BF_SET_FLAGS(src, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_MASK(mask, offset, width) + BF_MEM_PUT(adr, src, mask, offset, width, bf0, bf1); + RET(18) +} + +// BFINS (xx).L - 68020+ +OPCODE(0xEFF9) +{ + u32 adr, res; + u32 src, dst; + u32 mask, width; + s32 offset; + u32 bf0, bf1; + + FETCH_WORD(res) + FETCH_LONG(adr) + src = DREG((res >> 12) /*& 7*/); + BF_GET_PARM(res, offset, width) + BF_SET_FLAGS(src, width) + BF_MEM_GET(&adr, &dst, &offset, width, &bf0, &bf1); + BF_MASK(mask, offset, width) + BF_MEM_PUT(adr, src, mask, offset, width, bf0, bf1); + RET(18) +} + +// CAS.B (An) - 68020+ +OPCODE(0x0AD0) +{ + u32 adr, res; + s8 src, dst; + s8 tmp; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + READ_BYTE_F(adr, tmp); + + CAS_EXECUTE(0, WRITE_BYTE_F(adr, DREGs8((res >> 6) & 7))) + RET(14) +} + +// CAS.B (An)+ - 68020+ +OPCODE(0x0AD8) +{ + u32 adr, res; + s8 src, dst; + s8 tmp; + u8 areg; + + FETCH_WORD(res) + areg = Opcode & 7; + adr = AREG(areg); + AREG(areg) += 1; + READ_BYTE_F(adr, tmp); + + CAS_EXECUTE(0, WRITE_BYTE_F(adr, DREGs8((res >> 6) & 7))) + RET(16) +} + +// CAS.B (A7)+ - 68020+ +OPCODE(0x0ADF) +{ + u32 adr, res; + s8 src, dst; + s8 tmp; + u8 areg; + + FETCH_WORD(res) + adr = AREG(7); + AREG(7) += 2; + READ_BYTE_F(adr, tmp); + + CAS_EXECUTE(0, WRITE_BYTE_F(adr, DREGs8((res >> 6) & 7))) + RET(16) +} + +// CAS.B -(An) - 68020+ +OPCODE(0x0AE0) +{ + u32 adr, res; + s8 src, dst; + s8 tmp; + u8 areg; + + FETCH_WORD(res) + areg = Opcode & 7; + AREG(areg) -= 1; + adr = AREG(areg); + READ_BYTE_F(adr, tmp); + + CAS_EXECUTE(0, WRITE_BYTE_F(adr, DREGs8((res >> 6) & 7))) + RET(17) +} + +// CAS.B -(A7) - 68020+ +OPCODE(0x0AE7) +{ + u32 adr, res; + s8 src, dst; + s8 tmp; + u8 areg; + + FETCH_WORD(res) + areg = Opcode & 7; + AREG(areg) -= 2; + adr = AREG(areg); + READ_BYTE_F(adr, tmp); + + CAS_EXECUTE(0, WRITE_BYTE_F(adr, DREGs8((res >> 6) & 7))) + RET(17) +} + +// CAS.B (d16,An) - 68020+ +OPCODE(0x0AE8) +{ + u32 adr, res; + s8 src, dst; + s8 tmp; + + FETCH_WORD(res) + FETCH_SWORD(adr) + adr += AREG((Opcode /*>> 0*/) & 7); + READ_BYTE_F(adr, tmp); + + CAS_EXECUTE(0, WRITE_BYTE_F(adr, DREGs8((res >> 6) & 7))) + RET(22) +} + +// CAS.B (d8,An,Xn) / (bd,An,Xn)... - 68020+ +OPCODE(0x0AF0) +{ + u32 adr, res; + s8 src, dst; + s8 tmp; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); + READ_BYTE_F(adr, tmp); + + CAS_EXECUTE(0, WRITE_BYTE_F(adr, DREGs8((res >> 6) & 7))) + RET(18) +} + +// CAS.B (xx).W - 68020+ +OPCODE(0x0AF8) +{ + u32 adr, res; + s8 src, dst; + s8 tmp; + + FETCH_WORD(res) + FETCH_SWORD(adr) + READ_BYTE_F(adr, tmp); + + CAS_EXECUTE(0, WRITE_BYTE_F(adr, DREGs8((res >> 6) & 7))) + RET(16) +} + +// CAS.B (xx).L - 68020+ +OPCODE(0x0AF9) +{ + u32 adr, res; + s8 src, dst; + s8 tmp; + + FETCH_WORD(res) + FETCH_LONG(adr) + READ_BYTE_F(adr, tmp); + + CAS_EXECUTE(0, WRITE_BYTE_F(adr, DREGs8((res >> 6) & 7))) + RET(16) +} + +// CAS.W (An) - 68020+ +OPCODE(0x0CD0) +{ + u32 adr, res; + s16 src, dst; + s16 tmp; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + READ_WORD_F(adr, tmp); + + CAS_EXECUTE(8, WRITE_WORD_F(adr, DREGs16((res >> 6) & 7))) + RET(14) +} + +// CAS.W (An)+ - 68020+ +OPCODE(0x0CD8) +{ + u32 adr, res; + s16 src, dst; + s16 tmp; + u8 areg; + + FETCH_WORD(res) + areg = Opcode & 7; + adr = AREG(areg); + READ_WORD_F(adr, tmp); + AREG(areg) += 2; + + CAS_EXECUTE(8, WRITE_WORD_F(adr, DREGs16((res >> 6) & 7))) + RET(16) +} + +// CAS.W -(An) - 68020+ +OPCODE(0x0CE0) +{ + u32 adr, res; + s16 src, dst; + s16 tmp; + u8 areg; + + FETCH_WORD(res) + areg = Opcode & 7; + AREG(areg) -= 2; + adr = AREG(areg); + READ_WORD_F(adr, tmp); + + CAS_EXECUTE(8, WRITE_WORD_F(adr, DREGs16((res >> 6) & 7))) + RET(17) +} + +// CAS.W (d16,An) - 68020+ +OPCODE(0x0CE8) +{ + u32 adr, res; + s16 src, dst; + s16 tmp; + + FETCH_WORD(res) + FETCH_SWORD(adr) + adr += AREG((Opcode /*>> 0*/) & 7); + READ_WORD_F(adr, tmp); + + CAS_EXECUTE(8, WRITE_WORD_F(adr, DREGs16((res >> 6) & 7))) + RET(22) +} + +// CAS.W (d8,An,Xn) / (bd,An,Xn)... - 68020+ +OPCODE(0x0CF0) +{ + u32 adr, res; + s16 src, dst; + s16 tmp; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); + READ_WORD_F(adr, tmp); + + CAS_EXECUTE(8, WRITE_WORD_F(adr, DREGs16((res >> 6) & 7))) + RET(18) +} + +// CAS.W (xx).W - 68020+ +OPCODE(0x0CF8) +{ + u32 adr, res; + s16 src, dst; + s16 tmp; + + FETCH_WORD(res) + FETCH_SWORD(adr) + READ_WORD_F(adr, tmp); + + CAS_EXECUTE(8, WRITE_WORD_F(adr, DREGs16((res >> 6) & 7))) + RET(16) +} + +// CAS.W (xx).L - 68020+ +OPCODE(0x0CF9) +{ + u32 adr, res; + s16 src, dst; + s16 tmp; + + FETCH_WORD(res) + FETCH_LONG(adr) + READ_WORD_F(adr, tmp); + + CAS_EXECUTE(8, WRITE_WORD_F(adr, DREGs16((res >> 6) & 7))) + RET(16) +} + +// CAS.L (An) - 68020+ +OPCODE(0x0ED0) +{ + u32 adr, res; + s32 src, dst; + s32 tmp; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + READ_LONG_F(adr, tmp); + + CAS_EXECUTE(24, WRITE_LONG_F(adr, DREGs32((res >> 6) & 7))) + RET(14) +} + +// CAS.L (An)+ - 68020+ +OPCODE(0x0ED8) +{ + u32 adr, res; + s32 src, dst; + s32 tmp; + u8 areg; + + FETCH_WORD(res) + areg = Opcode & 7; + adr = AREG(areg); + READ_LONG_F(adr, tmp); + AREG(areg) += 4; + + CAS_EXECUTE(24, WRITE_LONG_F(adr, DREGs32((res >> 6) & 7))) + RET(16) +} + +// CAS.L -(An) - 68020+ +OPCODE(0x0EE0) +{ + u32 adr, res; + s32 src, dst; + s32 tmp; + u8 areg; + + FETCH_WORD(res) + areg = Opcode & 7; + AREG(areg) -= 4; + adr = AREG(areg); + READ_LONG_F(adr, tmp); + + CAS_EXECUTE(24, WRITE_LONG_F(adr, DREGs32((res >> 6) & 7))) + RET(17) +} + +// CAS.L (d16,An) - 68020+ +OPCODE(0x0EE8) +{ + u32 adr, res; + s32 src, dst; + s32 tmp; + + FETCH_WORD(res) + FETCH_SWORD(adr) + adr += AREG((Opcode /*>> 0*/) & 7); + READ_LONG_F(adr, tmp); + + CAS_EXECUTE(24, WRITE_LONG_F(adr, DREGs32((res >> 6) & 7))) + RET(22) +} + +// CAS.L (d8,An,Xn) / (bd,An,Xn)... - 68020+ +OPCODE(0x0EF0) +{ + u32 adr, res; + s32 src, dst; + s32 tmp; + + FETCH_WORD(res) + adr = AREG((Opcode /*>> 0*/) & 7); + DECODE_EXT_WORD(&adr); + READ_LONG_F(adr, tmp); + + CAS_EXECUTE(24, WRITE_LONG_F(adr, DREGs32((res >> 6) & 7))) + RET(18) +} + +// CAS.L (xx).W - 68020+ +OPCODE(0x0EF8) +{ + u32 adr, res; + s32 src, dst; + s32 tmp; + + FETCH_WORD(res) + FETCH_SWORD(adr) + READ_LONG_F(adr, tmp); + + CAS_EXECUTE(24, WRITE_LONG_F(adr, DREGs32((res >> 6) & 7))) + RET(16) +} + +// CAS.L (xx).L - 68020+ +OPCODE(0x0EF9) +{ + u32 adr, res; + s32 src, dst; + s32 tmp; + + FETCH_WORD(res) + FETCH_LONG(adr) + READ_LONG_F(adr, tmp); + + CAS_EXECUTE(24, WRITE_LONG_F(adr, DREGs32((res >> 6) & 7))) + RET(16) +} + +// CAS2.W .L - 68020+ +OPCODE(0x0CFC) +{ + u32 adr1, adr2, res1, res2; + s16 src, dst; + s16 tmp1, tmp2; + + FETCH_WORD(res1) + FETCH_WORD(res2) + + /* 1st memory operand (Rn1) */ + if (res1 & 0x8000) + adr1 = AREG((res1 >> 12) & 7); + else + adr1 = DREG(res1 >> 12); + READ_WORD_F(adr1, tmp1); + + /* 2nd memory operand (Rn2) */ + if (res2 & 0x8000) + adr2 = AREG((res2 >> 12) & 7); + else + adr2 = DREG(res2 >> 12); + READ_WORD_F(adr2, tmp2); + + CAS2_EXECUTE(8, WRITE_WORD_F(adr1, DREGs16((res1 >> 6) & 7)), WRITE_WORD_F(adr2, DREGs16((res2 >> 6) & 7))) + RET(22) +} + +// CAS2.L .L - 68020+ +OPCODE(0x0EFC) +{ + u32 adr1, adr2, res1, res2; + s32 src, dst; + s32 tmp1, tmp2; + + FETCH_WORD(res1) + FETCH_WORD(res2) + + /* 1st memory operand (Rn1) */ + if (res1 & 0x8000) + adr1 = AREG((res1 >> 12) & 7); + else + adr1 = DREG(res1 >> 12); + READ_LONG_F(adr1, tmp1); + + /* 2nd memory operand (Rn2) */ + if (res2 & 0x8000) + adr2 = AREG((res2 >> 12) & 7); + else + adr2 = DREG(res2 >> 12); + READ_LONG_F(adr2, tmp2); + + CAS2_EXECUTE(24, WRITE_WORD_F(adr1, DREGs32((res1 >> 6) & 7)), WRITE_WORD_F(adr2, DREGs32((res2 >> 6) & 7))) + RET(22) +} + +// RTM Dn - 68020+ +OPCODE(0x06C0) +{ + /* Skip instruction */ + RET(4) +} + +// RTM An - 68020+ +OPCODE(0x06C8) +{ + /* Skip instruction */ + RET(4) +} + +// CALLM (An) - 68020+ +OPCODE(0x06D0) +{ + PC++; /* Skip 2nd instruction word */ + RET(4) +} + +// CALLM (d16,An) - 68020+ +OPCODE(0x06E8) +{ + PC++; /* Skip 2nd instruction word */ + RET(4) +} + +// CALLM (d8,An,Xn) / (bd,An,Xn)... - 68020+ +OPCODE(0x06F0) +{ + PC++; /* Skip 2nd instruction word */ + RET(4) +} + +// CALLM (xx).W - 68020+ +OPCODE(0x06F8) +{ + PC++; /* Skip 2nd instruction word */ + RET(4) +} + +// CALLM (xx).L - 68020+ +OPCODE(0x06F9) +{ + PC++; /* Skip 2nd instruction word */ + RET(4) +} + +// CALLM (d16,PC) - 68020+ +OPCODE(0x06FA) +{ + PC++; /* Skip 2nd instruction word */ + RET(4) } +// CALLM (d8,PC,Xn) - 68020+ +OPCODE(0x06FB) +{ + PC++; /* Skip 2nd instruction word */ + RET(4) +} +#endif diff --git a/uae4all_gp2x_0.7.2a/src/m68k/fame/m68k_intrf.cpp b/uae4all_gp2x_0.7.2a/src/m68k/fame/m68k_intrf.cpp index b7e24ee..ecd2f3f 100755 --- a/uae4all_gp2x_0.7.2a/src/m68k/fame/m68k_intrf.cpp +++ b/uae4all_gp2x_0.7.2a/src/m68k/fame/m68k_intrf.cpp @@ -1,15 +1,12 @@ -#include "sysconfig.h" - -#ifdef USE_FAME_CORE_C - #include +#include "sysconfig.h" #include "sysdeps.h" #include "debug_uae4all.h" #include "config.h" #include "uae.h" #include "options.h" -#include "memory.h" +#include "memory-uae.h" #include "custom.h" #include "autoconf.h" #include "ersatz.h" @@ -17,13 +14,6 @@ #include "m68k/debug_m68k.h" -#undef dprintf -#if defined(DEBUG_UAE4ALL) || defined(UAE_CONSOLE) -#define dprintf(f,...) printf("%05i: %s: " f "\n",M68KCONTEXT.cycles_counter,__FUNCTION__,##__VA_ARGS__) -#else -#define dprintf(...) -#endif - static unsigned short mimemoriadummy[65536/2]; void clear_fame_mem_dummy(void) @@ -31,180 +21,98 @@ void clear_fame_mem_dummy(void) memset((void *)&mimemoriadummy[0],0,65536); } -struct M68K_CONTEXT micontexto; -struct M68K_PROGRAM miprograma[257]; -struct M68K_DATA midato_read_8[257]; -struct M68K_DATA midato_read_16[257]; -struct M68K_DATA midato_write_8[257]; -struct M68K_DATA midato_write_16[257]; static unsigned micontexto_fpa[256]; -void init_m68k(void) -{ - m68k_init(); -} - -static void m68k_exception(unsigned n) -{ - unsigned pc=m68k_get_pc(); - unsigned sr=m68k_get_register(M68K_REG_SR); - unsigned sp=m68k_get_register(M68K_REG_A7); - - if (!(sr&0x2000)) - { - unsigned asp=m68k_get_register(M68K_REG_ASP); - m68k_set_register(M68K_REG_SR,(sr&0x7FF)|0x2000); - m68k_set_register(M68K_REG_ASP,sp); - m68k_set_register(M68K_REG_A7,asp-6); - sp=asp; - } - else - m68k_set_register(M68K_REG_A7,sp-6); - - put_long(sp-4,pc); - put_word(sp-6,sr); - - m68k_set_register(M68K_REG_PC,m68k_fetch((n*4)+2,0)+(m68k_fetch(n*4,0)<<16)); - - //m68k_release_timeslice(); - if (n==4) IO_CYCLE+=4; // adjust for cyclone - M68KCONTEXT.execinfo&=0x65; -} +void process_exception(unsigned int vect); void uae_chk_handler(unsigned vector) { - unsigned opcode=m68k_fetch(m68k_get_pc(),0); + unsigned opcode=m68k_fetch(m68k_get_pc()); unsigned pc=m68k_get_pc(); - -#ifdef DEBUG_UAE4ALL - dprintf("INVALID OPCODE 0x%X at PC=0x%X -> ",opcode,pc); -#endif + if (cloanto_rom && (opcode & 0xF100) == 0x7100) { -#ifdef DEBUG_UAE4ALL - dprintf("cloanto"); -#endif _68k_dreg((opcode >> 9) & 7) = (uae_s8)(opcode & 0xFF); m68k_set_register(M68K_REG_PC,pc+2); return; } - + if (opcode == 0x4E7B && get_long (0x10) == 0 && (pc & 0xF80000) == 0xF80000) { -#ifdef DEBUG_UAE4ALL - dprintf("68020"); -#endif write_log ("Your Kickstart requires a 68020 CPU. Giving up.\n"); set_special (SPCFLAG_BRK); - g_emulator.quit_program = RunStateExit; + g_emulator.quit_program = RunStateExit; return; } - + if (opcode == 0xFF0D) { if ((pc & 0xF80000) == 0xF80000) { -#ifdef DEBUG_UAE4ALL - dprintf("dummy"); -#endif // This is from the dummy Kickstart replacement - uae_u16 arg = m68k_fetch(pc+2,0); + uae_u16 arg = m68k_fetch(pc+2); m68k_set_register(M68K_REG_PC,pc+4); ersatz_perform (arg); return; } else - if ((pc & 0xFFFF0000) == RTAREA_BASE) { -#ifdef DEBUG_UAE4ALL - dprintf("stop"); -#endif - // User-mode STOP replacement - M68KCONTEXT.execinfo|=0x0080; -#ifdef DEBUG_M68K - mispcflags|=SPCFLAG_STOP; -#endif - m68k_set_register(M68K_REG_PC,pc+2); - return; - } + if ((pc & 0xFFFF0000) == RTAREA_BASE) { + // User-mode STOP replacement + M68KCONTEXT.execinfo|=0x0080; + m68k_set_register(M68K_REG_PC,pc+2); + return; + } } - + if ((opcode & 0xF000) == 0xA000 && (pc & 0xFFFF0000) == RTAREA_BASE) { -#ifdef DEBUG_UAE4ALL - dprintf("call"); -#endif // Calltrap. -#ifdef USE_AUTOCONFIG m68k_set_register(M68K_REG_PC,pc+2); - call_calltrap (opcode & 0xFFF); -#endif + #ifdef USE_AUTOCONFIG + call_calltrap (opcode & 0xFFF); + #endif + return; } - + if ((opcode & 0xF000) == 0xF000) { -#ifdef DEBUG_UAE4ALL - dprintf("exp8"); -#endif // Exception 0xB - m68k_exception(0xB); + process_exception(0xB); return; } - + if ((opcode & 0xF000) == 0xA000) { if ((pc & 0xFFFF0000) == RTAREA_BASE) { -#ifdef DEBUG_UAE4ALL - dprintf("call +"); -#endif // Calltrap. -#ifdef USE_AUTOCONFIG - call_calltrap (opcode & 0xFFF); -#endif - } -#ifdef DEBUG_UAE4ALL - dprintf("expA"); -#endif - m68k_exception(0xA); + #ifdef USE_AUTOCONFIG + call_calltrap (opcode & 0xFFF); + #endif + } + process_exception(0xA); return; } - -#ifdef DEBUG_UAE4ALL - dprintf("Real invalid"); -#endif + write_log ("Illegal instruction: %04x at %08lx\n", opcode, pc); - m68k_exception(0x4); + process_exception(0x4); } void init_memmaps(addrbank* banco) { unsigned i; - - memset(&micontexto,0,sizeof(struct M68K_CONTEXT)); - + + M68K_CONTEXT *context = m68k_get_context(); + + memset(context,0,sizeof(M68K_CONTEXT)); memset(&micontexto_fpa,0,sizeof(unsigned)*256); - + micontexto_fpa[0x04]=(unsigned)&uae_chk_handler; -// micontexto_fpa[0x10]=(unsigned)&uae_chk_handler; // FAME BUG !!! - micontexto.icust_handler = (unsigned int*)&micontexto_fpa; - - micontexto.fetch=(struct M68K_PROGRAM *)&miprograma; - micontexto.read_byte=(struct M68K_DATA *)&midato_read_8; - micontexto.read_word=(struct M68K_DATA *)&midato_read_16; - micontexto.write_byte=(struct M68K_DATA *)&midato_write_8; - micontexto.write_word=(struct M68K_DATA *)&midato_write_16; - - micontexto.sv_fetch=(struct M68K_PROGRAM *)&miprograma; - micontexto.sv_read_byte=(struct M68K_DATA *)&midato_read_8; - micontexto.sv_read_word=(struct M68K_DATA *)&midato_read_16; - micontexto.sv_write_byte=(struct M68K_DATA *)&midato_write_8; - micontexto.sv_write_word=(struct M68K_DATA *)&midato_write_16; - - micontexto.user_fetch=(struct M68K_PROGRAM *)&miprograma; - micontexto.user_read_byte=(struct M68K_DATA *)&midato_read_8; - micontexto.user_read_word=(struct M68K_DATA *)&midato_read_16; - micontexto.user_write_byte=(struct M68K_DATA *)&midato_write_8; - micontexto.user_write_word=(struct M68K_DATA *)&midato_write_16; - - micontexto.reset_handler=NULL; - micontexto.iack_handler=NULL; - + + /* PocketUAE/WinUAE traps */ + micontexto_fpa[0x0A]=(unsigned)&uae_chk_handler; + micontexto_fpa[0x10]=(unsigned)&uae_chk_handler; + micontexto_fpa[0x14]=(unsigned)&uae_chk_handler; + micontexto_fpa[0x15]=(unsigned)&uae_chk_handler; + + context->icust_handler = (unsigned int*)&micontexto_fpa; + for(i=0;i<256;i++) { unsigned offset=(unsigned)banco->baseaddr; @@ -215,7 +123,7 @@ void init_memmaps(addrbank* banco) void *mem_handler_r16=NULL; void *mem_handler_w8=NULL; void *mem_handler_w16=NULL; - + if (offset) data=(void *)(offset-low_addr); else @@ -225,48 +133,10 @@ void init_memmaps(addrbank* banco) mem_handler_w8=(void *)banco->bput; mem_handler_w16=(void *)banco->wput; } - - miprograma[i].low_addr=low_addr; - miprograma[i].high_addr=high_addr; - miprograma[i].offset=((unsigned)&mimemoriadummy)-low_addr; - midato_read_8[i].low_addr=low_addr; - midato_read_8[i].high_addr=high_addr; - midato_read_8[i].mem_handler=mem_handler_r8; - midato_read_8[i].data=data; - midato_read_16[i].low_addr=low_addr; - midato_read_16[i].high_addr=high_addr; - midato_read_16[i].mem_handler=mem_handler_r16; - midato_read_16[i].data=data; - midato_write_8[i].low_addr=low_addr; - midato_write_8[i].high_addr=high_addr; - midato_write_8[i].mem_handler=mem_handler_w8; - midato_write_8[i].data=data; - midato_write_16[i].low_addr=low_addr; - midato_write_16[i].high_addr=high_addr; - midato_write_16[i].mem_handler=mem_handler_w16; - midato_write_16[i].data=data; + + famec_SetBank(low_addr, high_addr, ((unsigned)&mimemoriadummy)-low_addr, mem_handler_r8, + mem_handler_r16, mem_handler_w8, mem_handler_w16, data); } - miprograma[256].low_addr=(unsigned)-1; - miprograma[256].high_addr=(unsigned)-1; - miprograma[256].offset=(unsigned)NULL; - midato_read_8[256].low_addr=(unsigned)-1; - midato_read_8[256].high_addr=(unsigned)-1; - midato_read_8[256].mem_handler=NULL; - midato_read_8[256].data=NULL; - midato_read_16[256].low_addr=(unsigned)-1; - midato_read_16[256].high_addr=(unsigned)-1; - midato_read_16[256].mem_handler=NULL; - midato_read_16[256].data=NULL; - midato_write_8[256].low_addr=(unsigned)-1; - midato_write_8[256].high_addr=(unsigned)-1; - midato_write_8[256].mem_handler=NULL; - midato_write_8[256].data=NULL; - midato_write_16[256].low_addr=(unsigned)-1; - midato_write_16[256].high_addr=(unsigned)-1; - midato_write_16[256].mem_handler=NULL; - midato_write_16[256].data=NULL; - - m68k_set_context(&micontexto); } void map_zone(unsigned addr, addrbank* banco, unsigned realstart) @@ -274,130 +144,18 @@ void map_zone(unsigned addr, addrbank* banco, unsigned realstart) unsigned offset=(unsigned)banco->baseaddr; if (addr>255) return; - + unsigned low_addr=(addr<<16); unsigned high_addr=((addr+1)<<16)-1; - m68k_get_context(&micontexto); - -#ifdef DEBUG_MAPPINGS - dprintf("map_zone: 0x%.8X (0x%.8X 0x%.8X)",addr<<16,low_addr,high_addr); -#endif - + if (offset) { -#ifdef DEBUG_MAPPINGS - dprintf(" offset"); -#endif offset+=((addr-realstart)<<16); - miprograma[addr].low_addr=low_addr; - miprograma[addr].high_addr=high_addr; - miprograma[addr].offset=offset-low_addr; - midato_read_8[addr].low_addr=low_addr; - midato_read_8[addr].high_addr=high_addr; - midato_read_8[addr].mem_handler=NULL; - midato_read_8[addr].data=(void *)(offset-low_addr); - midato_read_16[addr].low_addr=low_addr; - midato_read_16[addr].high_addr=high_addr; - midato_read_16[addr].mem_handler=NULL; - midato_read_16[addr].data=(void *)(offset-low_addr); - midato_write_8[addr].low_addr=low_addr; - midato_write_8[addr].high_addr=high_addr; - midato_write_8[addr].mem_handler=NULL; - midato_write_8[addr].data=(void *)(offset-low_addr); - midato_write_16[addr].low_addr=low_addr; - midato_write_16[addr].high_addr=high_addr; - midato_write_16[addr].mem_handler=NULL; - midato_write_16[addr].data=(void *)(offset-low_addr); + famec_SetBank(low_addr, high_addr, offset-low_addr, NULL, NULL, NULL, NULL, (void *)(offset-low_addr)); } else { -#ifdef DEBUG_MAPPINGS - dprintf(" handler"); -#endif - miprograma[addr].low_addr=low_addr; - miprograma[addr].high_addr=high_addr; - miprograma[addr].offset=((unsigned)&mimemoriadummy)-low_addr; - midato_read_8[addr].low_addr=low_addr; - midato_read_8[addr].high_addr=high_addr; - midato_read_8[addr].mem_handler=(void*)banco->bget; - midato_read_8[addr].data=NULL; - midato_read_16[addr].low_addr=low_addr; - midato_read_16[addr].high_addr=high_addr; - midato_read_16[addr].mem_handler=(void*)banco->wget; - midato_read_16[addr].data=NULL; - midato_write_8[addr].low_addr=low_addr; - midato_write_8[addr].high_addr=high_addr; - midato_write_8[addr].mem_handler=(void*)banco->bput; - midato_write_8[addr].data=NULL; - midato_write_16[addr].low_addr=low_addr; - midato_write_16[addr].high_addr=high_addr; - midato_write_16[addr].mem_handler=(void*)banco->wput; - midato_write_16[addr].data=NULL; + famec_SetBank(low_addr, high_addr, ((unsigned)&mimemoriadummy)-low_addr, + (void*)banco->bget, (void*)banco->wget, (void*)banco->bput, (void*)banco->wput, NULL); } - m68k_set_context(&micontexto); -} - - -/* CPU save/restore code */ - -#define CPUTYPE_EC 1 -#define CPUMODE_HALT 1 - -uae_u8 *restore_cpu (uae_u8 *src) -{ - int i,model,flags; - uae_u32 l; - - model = restore_u32(); - flags = restore_u32(); - for (i = 0; i < 8; i++) - _68k_dreg(i)=restore_u32 (); - for (i = 0; i < 8; i++) - _68k_areg(i)=restore_u32 (); - _68k_setpc(restore_u32 ()); - /* We don't actually use this - we deliberately set prefetch_pc to a - zero so that prefetch isn't used for the first insn after a state - restore. */ - /* uae_regs.prefetch = */ restore_u32 (); - /* uae_regs.prefetch_pc = uae_regs.pc + 128; */ - _68k_mspreg = restore_u32 (); - /* uae_regs.isp = */ restore_u32 (); - _68k_sreg = restore_u16 (); - l = restore_u32(); - if (l & CPUMODE_HALT) { - M68KCONTEXT.execinfo|=0x0080; - mispcflags=SPCFLAG_STOP; - } else { - M68KCONTEXT.execinfo&=~0x0080; - mispcflags=0; - } - write_log ("CPU %d%s%03d, PC=%08.8X\n", - model/1000, flags & 1 ? "EC" : "", model % 1000, _68k_getpc()); - - return src; -} - - -uae_u8 *save_cpu (int *len) -{ - uae_u8 *dstbak,*dst; - int model,i; - - dstbak = dst = (uae_u8 *)malloc(4+4+15*4+4+4+4+4+2+4+4+4+4+4+4+4); - model = 68000; - save_u32 (model); /* MODEL */ - save_u32 (1); //currprefs.address_space_24 ? 1 : 0); /* FLAGS */ - for(i = 0;i < 8; i++) - save_u32 (_68k_dreg(i)); - for(i = 0;i < 8; i++) - save_u32 (_68k_areg(i)); - save_u32 (_68k_getpc ()); /* PC */ - save_u32 (0); //uae_regs.prefetch); /* prefetch */ - save_u32 (_68k_mspreg); - save_u32 (_68k_areg(7)); - save_u16 (_68k_sreg); /* SR/CCR */ - save_u32 (M68KCONTEXT.execinfo&0x0080 ? CPUMODE_HALT : 0); /* flags */ - *len = dst - dstbak; - return dstbak; } -#endif \ No newline at end of file diff --git a/uae4all_gp2x_0.7.2a/src/m68k/m68k_cmn_intrf.cpp b/uae4all_gp2x_0.7.2a/src/m68k/m68k_cmn_intrf.cpp index 1bd13b2..0bda7f2 100755 --- a/uae4all_gp2x_0.7.2a/src/m68k/m68k_cmn_intrf.cpp +++ b/uae4all_gp2x_0.7.2a/src/m68k/m68k_cmn_intrf.cpp @@ -1,7 +1,3 @@ -#ifdef DREAMCAST -#include -#endif - #define NO_SHORT_EVENTS #define PROTECT_INFINITE @@ -11,14 +7,15 @@ #include "sysconfig.h" #include "sysdeps.h" -#include "debug_uae4all.h" #include "config.h" +#include "debug_uae4all.h" #include "uae.h" #include "options.h" -#include "memory.h" +#include "memory-uae.h" #include "custom.h" #include "autoconf.h" #include "ersatz.h" +#include "debug.h" #include "gui.h" #include "savestate.h" #include "blitter.h" @@ -27,100 +24,22 @@ #include "m68k/debug_m68k.h" -#ifdef FAME_INTERRUPTS_PATCH -int uae4all_go_interrupt=0; -#endif - - -#ifdef DEBUG_UAE4ALL -int DEBUG_AHORA=1; -#endif - -#ifdef DEBUG_UAE4ALL -void carga(void) -{ - unsigned pc,sr,a0,a1,a2,a3,a4,a5,a6,a7,d0,d1,d2,d3,d4,d5,d6,d7; - FILE *f=fopen("/tmp/uae4all_guarda","rb"); - if (f) - { - fread((void *)&pc,sizeof(unsigned),1,f); - fread((void *)&sr,sizeof(unsigned),1,f); - fread((void *)&a0,sizeof(unsigned),1,f); - fread((void *)&a1,sizeof(unsigned),1,f); - fread((void *)&a2,sizeof(unsigned),1,f); - fread((void *)&a3,sizeof(unsigned),1,f); - fread((void *)&a4,sizeof(unsigned),1,f); - fread((void *)&a5,sizeof(unsigned),1,f); - fread((void *)&a6,sizeof(unsigned),1,f); - fread((void *)&a7,sizeof(unsigned),1,f); - fread((void *)&d0,sizeof(unsigned),1,f); - fread((void *)&d1,sizeof(unsigned),1,f); - fread((void *)&d2,sizeof(unsigned),1,f); - fread((void *)&d3,sizeof(unsigned),1,f); - fread((void *)&d4,sizeof(unsigned),1,f); - fread((void *)&d5,sizeof(unsigned),1,f); - fread((void *)&d6,sizeof(unsigned),1,f); - fread((void *)&d7,sizeof(unsigned),1,f); - fread((void *)chipmemory,1,allocated_chipmem,f); - fclose(f); - { - unsigned char *p=(unsigned char *)chipmemory; - unsigned i; - for (i=0;i do_copper"); -#endif do_copper (); } - + /*n_spcinsns++;*/ while ((mispcflags & SPCFLAG_BLTNASTY) && cycles > 0) { int c = blitnasty(); @@ -130,77 +49,14 @@ static int do_specialties (int cycles) cycles = 0; c = 1; } -#ifdef DEBUG_M68K - dbgf("do_specialties -> do_cycles BLTNASTY %i\n",c); -#endif + do_cycles(c * CYCLE_UNIT); if (mispcflags & SPCFLAG_COPPER) - { -#ifdef DEBUG_M68K - dbg("do_specialties -> do_copper BLTNASTY"); -#endif + { do_copper (); - } + } } - -#ifdef DEBUG_M68K - while (M68KCONTEXT.execinfo & 0x0080) { - if (mispcflags & SPCFLAG_BRK) - break; - else - if (M68KCONTEXT.execinfo & 0x0080) - { - int intr = intlev (); - if (intr != -1 && intr > _68k_intmask) - { - M68KCONTEXT.execinfo &= 0xFF7F; - break; - } - } - dbg("CPU STOPPED !"); - do_cycles(4 * CYCLE_UNIT); - if (mispcflags & SPCFLAG_COPPER) - { - dbg("do_specialties -> do_copper STOPPED"); - do_copper (); - } - } - unset_special (SPCFLAG_STOP); -#endif - -#if 0 // !defined(FAME_INTERRUPTS_SECURE_PATCH) && defined(FAME_INTERRUPTS_PATCH) - if (uae4all_go_interrupt) - { - /*if (verb)*/ printf("uae4all_go_interrupt (s): %02x\n", uae4all_go_interrupt); - M68KCONTEXT.interrupts[0]=uae4all_go_interrupt; - M68KCONTEXT.execinfo&=0xFF67; - uae4all_go_interrupt=0; - m68k_irq_update(0); - } -#endif - -#ifdef SPECIAL_DEBUG_INTERRUPTS - if ((mispcflags & SPCFLAG_DOINT)&&(!(mispcflags & SPCFLAG_INT))) { - int intr = intlev (); -#ifdef DEBUG_INTERRUPTS_EXTRA - dbgf("DOINT : intr = %i, intmask=%i\n", intr, _68k_intmask); -#endif - unset_special (SPCFLAG_DOINT); - if (intr != -1 && intr > _68k_intmask) { - M68KCONTEXT.execinfo&=0xFF6F; - m68k_raise_irq(intr,M68K_AUTOVECTORED_IRQ); -// m68k_emulate(0); - } - } - if (mispcflags & SPCFLAG_INT) { -#ifdef DEBUG_INTERRUPTS_EXTRA - dbg("ESTAMOS EN INT -> PASAMOS A DOINT"); -#endif - unset_special (SPCFLAG_INT); - set_special (SPCFLAG_DOINT); - } -#endif - + if (mispcflags & SPCFLAG_BRK) { unset_special (SPCFLAG_BRK); return 1; @@ -208,132 +64,75 @@ static int do_specialties (int cycles) return 0; } -#define DEBUG_CPU -#ifdef DEBUG_CPU -extern int do_debug; -extern int do_disa; -#endif - static void uae4all_reset(void) { int i; -#if !defined(USE_CYCLONE_CORE) && !defined(USE_FAME_CORE_ARM2) - m68k_set_context(&micontexto); -#endif + + /*int new_table = (prefs_cpu_model != changed_prefs.cpu_level) ? 1 : 0; + prefs_cpu_model = changed_prefs.cpu_level; + if(new_table) + m68k_init(1);*/ // CPU model changed -> rebuild jump table m68k_reset(); for(i=1;i<8;i++) -#if defined(DEBUG_INTERRUPTS) - M68KCONTEXT.interrupts[i]=0xFF; -#else M68KCONTEXT.interrupts[i]=0x18+i; -#endif M68KCONTEXT.interrupts[0]=0; - m68k_irq_update(0); mispcflags=0; _68k_areg(7) = get_long (0x00f80000); _68k_setpc(get_long (0x00f80004)); //_68k_sreg = 0x2700; // already done by m68k_reset() mispcflags=0; -#ifdef DEBUG_FRAMERATE - uae4all_update_time(); -#endif } static void m68k_run (void) { - - // uae4all_reset (); - unsigned cycles, cycles_actual=M68KCONTEXT.cycles_counter; - for (;;) { -#ifdef DEBUG_M68K - dbg_cycle(m68k_fetch(m68k_get_pc(),0)); - m68k_emulate(1); - -#else - uae4all_prof_start(0); - - cycles = nextevent - currcycle; - switch (timeslice_mode) { - case 3: cycles>>=6; break; - case 2: cycles>>=7; break; - case 1: cycles=(cycles>>8)+(cycles>>9); break; - default: cycles>>=8; break; - } - -#define NDEBUG_CYCLES -#ifdef DEBUG_CYCLES - static unsigned next_cycles = 60000000; - if (M68KCONTEXT.cycles_counter > next_cycles) { - next_cycles += 100000; - printf("cycles=%9d|%03i|%03i, pc=%.6x\n", M68KCONTEXT.cycles_counter, cycles, IO_CYCLE, _68k_getpc()); - } - - if (M68KCONTEXT.cycles_counter > 80000000) { - // exit(0); - } - - if (M68KCONTEXT.cycles_counter >= 500000000) { - // do_debug = 1; - } - -#endif - -#if defined(FAME_INTERRUPTS_SECURE_PATCH) && defined(FAME_INTERRUPTS_PATCH) - if (uae4all_go_interrupt) - m68k_emulate(FAME_INTERRUPTS_PATCH); - else -#endif - - m68k_emulate(1); - //m68k_emulate(cycles); + unsigned long cycles; + unsigned int cycles_actual = M68KCONTEXT.cycles_counter; + unsigned long last_currcycle = currcycle; - uae4all_prof_end(0); -#endif -#if 0 // def FAME_INTERRUPTS_PATCH - if (uae4all_go_interrupt) + for (;;) + { + // Using last_currcycle instead of currcycle gives the CPU the cycles which + // may taken in do_specialties() (see below) + cycles = nextevent - last_currcycle; + cycles >>= 8; + + last_currcycle = currcycle; + m68k_emulate(cycles); + + cycles = (M68KCONTEXT.cycles_counter - cycles_actual) << 8; + // In m68k_emulate, calls to cia_wait() may occur and some cycles are added to currcycle. + if(cycles > currcycle - last_currcycle) + { + cycles = cycles - (currcycle - last_currcycle); + do_cycles(cycles); + last_currcycle = currcycle; + + if (mispcflags) + if (do_specialties (cycles)) // Perhaps some cycles in do_specialties are done... + return; + } + else + last_currcycle = currcycle; + + unsigned cuentalo = 0; + while((nextevent - currcycle) <= 2048) { - /*if (verb)*/ printf("uae4all_go_interrupt: %02x\n", uae4all_go_interrupt); - M68KCONTEXT.interrupts[0]=uae4all_go_interrupt; - M68KCONTEXT.execinfo&=0xFF67; - uae4all_go_interrupt=0; - m68k_irq_update(0); - } -#endif - - uae4all_prof_start(1); - - cycles=(M68KCONTEXT.cycles_counter-cycles_actual) * cycles_factor; - -#ifdef DEBUG_INTERRUPTS - dbgf("cycles=%i (%i) -> PC=%.6x\n",cycles>>8,nextevent - currcycle, _68k_getpc()); -#endif - - -#ifdef NO_SHORT_EVENTS -#ifdef PROTECT_INFINITE - unsigned cuentalo=0; -#endif - do{ -#endif + cycles = 2048; // 2048 are four cycles... + do_cycles(cycles); if (mispcflags) - if (do_specialties (cycles)) + if (do_specialties (cycles)) // Perhaps some cycles in do_specialties are done... return; -#ifndef DEBUG_M68K -#ifdef NO_SHORT_EVENTS - cycles=2048; -#ifdef PROTECT_INFINITE + cuentalo++; - if (cuentalo>1024) { - g_emulator.quit_program=RunStateReset; + if (cuentalo>1024) + { + g_emulator.quit_program = RunStateReset; return; } -#endif - } while((nextevent - currcycle)<=2048); -#endif - cycles_actual=M68KCONTEXT.cycles_counter; -#endif - uae4all_prof_end(1); + } + + cycles_actual = M68KCONTEXT.cycles_counter; } } @@ -341,123 +140,102 @@ static void m68k_run (void) void m68k_go (int may_quit) { gui_purge_events(); -#if !defined(DREAMCAST) || defined(DEBUG_UAE4ALL) + if (in_m68k_go || !may_quit) { -#ifdef DEBUG_UAE4ALL - puts("Bug! m68k_go is not reentrant.\n"); -#endif return; } - + in_m68k_go++; -#endif g_emulator.quit_program = RunStateReset; for (;;) { - if (g_emulator.quit_program > RunStateNormal) { + if (g_emulator.quit_program > 0) { if (g_emulator.quit_program == RunStateExit) break; - - g_emulator.quit_program = RunStateNormal; - bool restoring = false; + g_emulator.quit_program = RunStateNormal; + if (savestate_state == STATE_RESTORE) { restore_state (savestate_filename); mispcflags = 0; - restoring = true; - // _m68k_setpc(M68KCONTEXT.pc); } - g_emulator.reset_all_systems (); - customreset (); - - if (!restoring) { - check_prefs_changed_cpu (); - sound_default_evtime (); - } - /* We may have been restoring state, but we're done now. */ - handle_active_events (); - if (mispcflags) - do_specialties (0); + g_emulator.reset_all_systems (); + customreset (); + sound_default_evtime (); + /* We may have been restoring state, but we're done now. */ + handle_active_events (); + if (mispcflags) + do_specialties (0); } - - if (!savestate_state) - uae4all_reset (); - savestate_restore_finish (); - - g_emulator.running = true; + + if(!savestate_state) + uae4all_reset(); + savestate_restore_finish(); m68k_run(); - g_emulator.running = false; } -#if !defined(DREAMCAST) || defined(DEBUG_UAE4ALL) in_m68k_go--; -#endif -#ifdef DEBUG_UAE4ALL - puts("BYE?"); -#endif } -void check_prefs_changed_cpu (void) -{ - int i; +/* CPU save/restore code */ - for(i=0;i<512;i++) - next_vpos[i]=i+1; +#define CPUMODE_HALT 1 - switch(m68k_speed) - { - case 6: - cycles_factor=(unsigned)(1.86*256); - if (!(beamcon0 & 0x20)) break; - for(i=0;i<4;i++) - next_vpos[i]=4; - next_vpos[4]=5; - for(i=5;i<20;i++) - next_vpos[i]=20; - for(i=20;i<280;i++) - next_vpos[i]=i+1; - for(i=280;i<306;i++) - next_vpos[i]=306; - for(i=306;i<311;i++) - next_vpos[i]=i+1; - for(i=311;i<512;i++) - next_vpos[i]=510; - break; - case 5: - case 4: - cycles_factor=(unsigned)(4.0/3.0*256); - if (!(beamcon0 & 0x20)) break; - for(i=0;i<4;i++) - next_vpos[i]=4; - next_vpos[4]=5; - for(i=5;i<40;i++) - next_vpos[i]=40; - for(i=40;i<280;i++) - next_vpos[i]=i+1; - for(i=280;i<312;i++) - next_vpos[i]=510; - break; - case 3: - case 2: - cycles_factor=(unsigned)(7.0/6.0*256); - if (!(beamcon0 & 0x20)) break; - for(i=0;i<4;i++) - next_vpos[i]=4; - next_vpos[4]=5; - for(i=5;i<20;i++) - next_vpos[i]=20; - for(i=20;i<280;i++) - next_vpos[i]=i+1; - for(i=280;i<306;i++) - next_vpos[i]=306; - for(i=306;i<311;i++) - next_vpos[i]=i+1; - for(i=311;i<512;i++) - next_vpos[i]=510; - break; - case 1: - default: - cycles_factor=1*256; - break; +uae_u8 *restore_cpu (uae_u8 *src) +{ + int i,model,flags; + uae_u32 l; + + prefs_cpu_model = restore_u32(); + //model=2; + flags = restore_u32(); + for (i = 0; i < 8; i++) + _68k_dreg(i)=restore_u32 (); + for (i = 0; i < 8; i++) + _68k_areg(i)=restore_u32 (); + _68k_setpc(restore_u32 ()); + /* We don't actually use this - we deliberately set prefetch_pc to a + zero so that prefetch isn't used for the first insn after a state + restore. */ + /* uae_regs.prefetch = */ restore_u32 (); + /* uae_regs.prefetch_pc = uae_regs.pc + 128; */ + + // in new FAME_C, mspreg is always 0, uspreg is now the important one... + _68k_mspreg = 0; + _68k_uspreg = restore_u32 (); + /* uae_regs.isp = */ restore_u32 (); + _68k_sreg = restore_u16 (); + l = restore_u32(); + if (l & CPUMODE_HALT) { + M68KCONTEXT.execinfo|=0x0080; + mispcflags=SPCFLAG_STOP; + } else { + M68KCONTEXT.execinfo&=~0x0080; + mispcflags=0; + } + + return src; +} - } - next_vpos[511]=0; +uae_u8 *save_cpu (int *len) +{ + uae_u8 *dstbak,*dst; + int model,i; + + dstbak = dst = (uae_u8 *)malloc(4+4+15*4+4+4+4+4+2+4+4+4+4+4+4+4); + save_u32 (prefs_cpu_model); /* MODEL */ + save_u32 (1); //currprefs.address_space_24 ? 1 : 0); /* FLAGS */ + for(i = 0;i < 8; i++) + save_u32 (_68k_dreg(i)); + for(i = 0;i < 8; i++) + save_u32 (_68k_areg(i)); + save_u32 (m68k_get_pc()); /* PC */ + save_u32 (0); //uae_regs.prefetch); /* prefetch */ + + // in new FAME_C, mspreg is always 0, uspreg is now the important one... + //save_u32 (_68k_mspreg); + save_u32 (_68k_uspreg); + save_u32 (_68k_areg(7)); + save_u16 (_68k_sreg); /* SR/CCR */ + save_u32 (M68KCONTEXT.execinfo&0x0080 ? CPUMODE_HALT : 0); /* flags */ + *len = dst - dstbak; + return dstbak; } diff --git a/uae4all_gp2x_0.7.2a/src/m68k/m68k_intrf.h b/uae4all_gp2x_0.7.2a/src/m68k/m68k_intrf.h index 7aea358..37aa4ac 100644 --- a/uae4all_gp2x_0.7.2a/src/m68k/m68k_intrf.h +++ b/uae4all_gp2x_0.7.2a/src/m68k/m68k_intrf.h @@ -1,10 +1,9 @@ -#ifndef _M68K_INTRF -#define _M68K_INTRF +#ifndef M68KIntrfH +#define M68KIntrfH -//#if defined(USE_FAME_CORE) +//#include "menu_config.h" /* defined in m68k_cmn_intrf.cpp */ -extern int uae4all_go_interrupt; extern unsigned mispcflags; void init_memmaps(addrbank* banco); @@ -12,53 +11,29 @@ void map_zone(unsigned addr, addrbank* banco, unsigned realstart); void m68k_go(int may_quit); void init_m68k(void); -#define _68k_spcflags mispcflags +#define M68KCONTEXT m68kcontext + #define fill_prefetch_0() #define dump_counts() #define flush_icache(X) -//#endif +#define m68k_irq_update() m68kcontext.more_cycles_to_do=m68kcontext.io_cycle_counter; m68kcontext.io_cycle_counter=0; -#if defined(USE_FAME_CORE) && !defined(USE_CYCLONE_CORE) && !defined(USE_FAME_CORE_ARM2) - -#if defined(DREAMCAST) || defined(USE_FAME_CORE_C) -#define M68KCONTEXT m68kcontext -#else -#define M68KCONTEXT _m68kcontext -#endif -#if defined(DREAMCAST) || defined(USE_FAME_CORE_C) -#define IO_CYCLE io_cycle_counter -#else -#define IO_CYCLE __io_cycle_counter -#endif -extern int IO_CYCLE; -#define m68k_irq_update(end_timeslice) \ - if ((end_timeslice) && IO_CYCLE > 0) { \ - M68KCONTEXT.cycles_counter += 24 - IO_CYCLE; \ - IO_CYCLE = 24; \ - } - - -#include "fame.h" +#include "m68k/fame/fame.h" #include "memory.h" -extern struct M68K_CONTEXT M68KCONTEXT; +extern M68K_CONTEXT M68KCONTEXT; -#define _68k_dreg(num) (M68KCONTEXT.dreg[(num)]) -#define _68k_areg(num) (M68KCONTEXT.areg[(num)]) +#define _68k_dreg(num) (M68KCONTEXT.dreg[(num)].D) +#define _68k_areg(num) (M68KCONTEXT.areg[(num)].D) #define _68k_sreg M68KCONTEXT.sr -#define _68k_ispreg M68KCONTEXT.areg[7] -#define _68k_mspreg M68KCONTEXT.asp -#define _68k_uspreg M68KCONTEXT.asp +#define _68k_ispreg M68KCONTEXT.isp +#define _68k_mspreg M68KCONTEXT.msp +#define _68k_uspreg M68KCONTEXT.usp #define _68k_intmask ((M68KCONTEXT.sr >> 8) & 7) -#define _68k_incpc(o) (M68KCONTEXT.pc += (o)) +#define _68k_spcflags mispcflags -static __inline__ unsigned _68k_getpc(void) -{ -// return M68KCONTEXT.pc; - return m68k_get_pc(); -} static __inline__ void _68k_setpc(unsigned mipc) { M68KCONTEXT.pc=mipc; @@ -75,277 +50,13 @@ static __inline__ void unset_special (uae_u32 x) _68k_spcflags &= ~x; } -/* -static __inline__ uae_u8 *restore_cpu (uae_u8 *src) -{ - return src; -} - -static __inline__ uae_u8 *save_cpu (int *len) -{ - return (uae_u8 *)len; -}*/ - -#elif defined(USE_CYCLONE_CORE) - -#include "m68k/cyclone/cyclone.h" - -extern struct Cyclone m68k_context; - -// FAME interface -void m68k_release_timeslice(void); -int m68k_raise_irq(int level, int vector); -int m68k_lower_irq(int level); -int m68k_reset(void); -//int m68k_emulate(int cycles); -//void m68k_irq_update(int end_timeslice); -#define M68K_AUTOVECTORED_IRQ 0 // not going to use vector number - - -typedef struct -{ - uae_u8 interrupts[8]; // only interrupts[0] is used - uae_u32 cycles_counter; - uae_u16 execinfo; // will really only use bit7 (HALTED) -} M68KCONTEXT_t; - -extern M68KCONTEXT_t M68KCONTEXT; - -#define m68k_emulate(cycles) \ -{ \ - m68k_context.cycles = (cycles) - 1; \ - CycloneRun(&m68k_context); \ - M68KCONTEXT.cycles_counter += (cycles) - 1 - m68k_context.cycles; \ -} - -/* -#define m68k_irq_update(end_timeslice) \ - if ((end_timeslice) && m68k_context.cycles > 0) { \ - M68KCONTEXT.cycles_counter += 24 - m68k_context.cycles; \ - m68k_context.cycles = 24; \ - } -*/ - -#define m68k_irq_update(end_timeslice) \ -{ \ - int level, ints = M68KCONTEXT.interrupts[0]; \ - for (level = 7; level && !(ints & (1 << level)); level--); \ - m68k_context.irq = level; \ -\ - if ((end_timeslice) && m68k_context.cycles >= 0 && !(m68k_context.state_flags & 1)) \ - { \ - M68KCONTEXT.cycles_counter += 24 - 1 - m68k_context.cycles; \ - m68k_context.cycles = 24 - 1; \ - } \ -} - -#define IO_CYCLE m68k_context.cycles - -// this is only set in one place, .srh is ok in that situation -#define _68k_sreg m68k_context.srh - -#define _68k_dreg(num) m68k_context.d[num] -#define _68k_areg(num) m68k_context.a[num] -#define _68k_ispreg m68k_context.a[7] -#define _68k_mspreg m68k_context.osp -#define _68k_uspreg m68k_context.osp -#define _68k_intmask (m68k_context.srh & 7) - -#define _68k_getpc() (m68k_context.pc - m68k_context.membase) -#define set_special(x) _68k_spcflags |= x -#define unset_special(x) _68k_spcflags &= ~x - -static __inline__ void _68k_setpc(unsigned mipc) -{ - // this will only work if we are not in CycloneRun - // (which always appears to be the case as far as I checked - // (except exception handlers, which should properly reload PC)) - m68k_context.membase = 0; - m68k_context.pc = m68k_context.checkpc(mipc); -} - -static __inline__ void _68k_set_flags(unsigned short val) { - m68k_context.flags = (val & 0x0c); // NZ - m68k_context.flags |= ((val & 0x01) << 1); // C - m68k_context.flags |= ((val & 0x02) >> 1); // V - m68k_context.xc = (val & 0x10) << 25; // X -} - -static __inline__ unsigned short _68k_get_flags() { - unsigned short flags = m68k_context.flags; - unsigned short result = (flags & 0x0c); // NZ - result |= ((flags & 0x02) >> 1); // C - result |= ((flags & 0x01) << 1); // V - result |= (m68k_context.xc & 0x20000000) ? 0x10 : 0x00; // X - return result; -} - -static __inline__ unsigned short _68k_get_sr() { - return _68k_get_flags() | m68k_context.srh << 8; -} - -static __inline__ void _68k_set_sr(unsigned short val) { - _68k_set_flags((unsigned short)val); - m68k_context.srh = val >> 8; -} - -/* -static __inline__ uae_u8 *restore_cpu (uae_u8 *src) -{ - return src; -} - -static __inline__ uae_u8 *save_cpu (int *len) -{ - return (uae_u8 *)len; -} */ - -#elif defined(USE_FAME_CORE_ARM2) - -#import "fame_arm.h" - -#if defined(M68KCONTEXT) -#undef M68KCONTEXT -#endif - -#define m68k_irq_update(end_timeslice) \ - if ((end_timeslice) && m68k_context.cycles > 0) { \ - M68KCONTEXT.cycles_counter += 24 - m68k_context.cycles; \ - m68k_context.cycles = 24; \ - } -/* -#define m68k_irq_update(end_timeslice) \ -{ \ - int level, ints = M68KCONTEXT.interrupts[0]; \ - for (level = 7; level && !(ints & (1 << level)); level--); \ - m68k_context.irq = level; \ -\ - if ((end_timeslice) && m68k_context.cycles >= 0 && !(M68KCONTEXT.execinfo & 0x80)) \ - { \ - M68KCONTEXT.cycles_counter += 24 - 1 - m68k_context.cycles; \ - m68k_context.cycles = 24 - 1; \ - } \ -} -*/ - -#define IO_CYCLE m68k_context.cycles - -// this is only set in one place, .srh is ok in that situation -#define _68k_sreg _68k_get_sr() - -#define _68k_dreg(num) m68k_context.d[num].D -#define _68k_dregs8(num) m68k_context.d[num].SB -#define _68k_dregu8(num) m68k_context.d[num].B -#define _68k_dregs16(num) m68k_context.d[num].SW -#define _68k_dregu16(num) m68k_context.d[num].W - -#define _68k_areg(num) m68k_context.a[num].D -#define _68k_aregu16(num) m68k_context.a[num].W - -#define _68k_ispreg m68k_context.a[7].D -#define _68k_mspreg m68k_context.osp -#define _68k_uspreg m68k_context.osp -//#define _68k_intmask (m68k_context.srh & 7) -#define _68k_intmask (m68k_context.irq & 7) - -// flags -#define flag_all (_68k_get_flags()) -#define flag_c (m68k_context.flags & 0x02) -#define flag_v (m68k_context.flags & 0x01) -#define flag_z (m68k_context.flags & 0x04) -#define flag_n (m68k_context.flags & 0x08) -#define flag_x (m68k_context.xc & 0x20000000) - -#define SET_flag_X (m68k_context.xc = 0x20000000) -#define CLR_flag_X (m68k_context.xc = 0) +/* PocketUAE */ +/* UAE redefine */ +#define m68k_dreg(r,num) (m68kcontext.dreg[num].D) +#define m68k_areg(r,num) (m68kcontext.areg[num].D) -#define n_xor_v ((flag_n >> 3) ^ (flag_v)) - -// condition codes -#define cond_true (!flag_z) -#define cond_false ( flag_z) -#define cond_hi (!flag_c && !flag_z) -#define cond_ls (flag_c || flag_z) -#define cond_cc (!flag_c) -#define cond_cs (flag_c) -#define cond_ne (!flag_z) -#define cond_eq ( flag_z) -#define cond_vc (!flag_v) -#define cond_vs (flag_v) -#define cond_pl (!flag_n) -#define cond_mi (flag_n) -#define cond_ge !(n_xor_v) -#define cond_lt n_xor_v -#define cond_gt (!flag_z && !n_xor_v) -#define cond_le (flag_z || n_xor_v) - -// cycle counter -#define _68k_cycles (M68KCONTEXT.cycles_counter) - -//#define _68k_getpc (m68k_context.pc - m68k_context.membase) -#define set_special(x) _68k_spcflags |= x -#define unset_special(x) _68k_spcflags &= ~x - -static __inline__ unsigned _68k_getpc() { - return (unsigned)(m68k_context.pc - m68k_context.membase); -} - -static __inline__ void _68k_setpc(unsigned mipc) { - // this will only work if we are not in CycloneRun - // (which always appears to be the case as far as I checked - // (except exception handlers, which should properly reload PC)) - m68k_context.membase = 0; - m68k_context.pc = m68k_context.checkpc(mipc); -} - -static __inline__ void _68k_set_flags(unsigned short val) { - m68k_context.flags = (val & 0x0c); // NZ - m68k_context.flags |= ((val & 0x01) << 1); // C - m68k_context.flags |= ((val & 0x02) >> 1); // V - m68k_context.xc = (val & 0x10) << 25; // X -} - -static __inline__ unsigned short _68k_get_flags() { - unsigned short flags = m68k_context.flags; - unsigned short result = (flags & 0x0c); // NZ - result |= ((flags & 0x02) >> 1); // C - result |= ((flags & 0x01) << 1); // V - result |= (m68k_context.xc & 0x20000000) ? 0x10 : 0x00; // X - return result; -} - - -static __inline__ unsigned short _68k_get_sr() { - return _68k_get_flags() | m68k_context.srh << 8; -} - -static __inline__ void _68k_set_sr(unsigned short val) { - _68k_set_flags((u8)val); - m68k_context.srh = val >> 8; -} - -#define EXECINFO M68KCONTEXT.execinfo - -#else - -#define _68k_getpc m68k_getpc -#define _68k_setpc m68k_setpc -#define _68k_areg m68k_areg -#define _68k_dreg m68k_dreg -#define _68k_incp m68k_incp -#define _68k_sreg uae_regs.s -#define _68k_ispreg uae_regs.isp -#define _68k_mspreg uae_regs.msp -#define _68k_uspreg uae_regs.usp -#define _68k_intmask uae_regs.intmask -#define _68k_incpc(o) m68k_incpc(o) -#define _68k_spcflags uae_regs.spcflags - -#include "custom.h" -#include "m68k/uae/newcpu.h" +/***************/ #endif - -#endif \ No newline at end of file diff --git a/uae4all_gp2x_0.7.2a/src/sound.cpp b/uae4all_gp2x_0.7.2a/src/sound.cpp index 0f42fe9..a80205f 100755 --- a/uae4all_gp2x_0.7.2a/src/sound.cpp +++ b/uae4all_gp2x_0.7.2a/src/sound.cpp @@ -356,7 +356,7 @@ static int open_sound (void) have_sound = 1; // sound_default_evtime(0); - scaled_sample_evtime_ok = 1; + scaled_sample_evtime = 1; sound_available = 1; write_log ("SDL sound driver found and configured for %d bits at %d Hz, buffer is %d samples\n", diff --git a/uae4all_gp2x_0.7.2a/src/uae.cpp b/uae4all_gp2x_0.7.2a/src/uae.cpp index 62ed977..8026f42 100644 --- a/uae4all_gp2x_0.7.2a/src/uae.cpp +++ b/uae4all_gp2x_0.7.2a/src/uae.cpp @@ -50,7 +50,7 @@ int cloanto_rom = 0; struct gui_info gui_data; -extern int timeslice_mode; +//extern int timeslice_mode; void uae::default_prefs () { #ifdef NO_SOUND @@ -92,12 +92,12 @@ void uae::default_prefs () { // 1 = 75% // 2 = 50% // 3 = 25% - timeslice_mode = 1; + //timeslice_mode = 0; // 0 = 100% // 2 = 83% // 4 = 75% - m68k_speed = 2; + m68k_speed = 0; } void uae::uae_reset (void) { @@ -211,7 +211,7 @@ void uae::real_main () { custom_init (); /* Must come after memory_init */ DISK_init (); - init_m68k(); + m68k_init(0); gui_update (); if (graphics_init ()) {